Showing preview only (895K chars total). Download the full file or copy to clipboard to get everything.
Repository: steinbergmedia/bravura
Branch: master
Commit: 02e8ed29a291
Files: 14
Total size: 870.8 KB
Directory structure:
gitextract_a63pdkue/
├── .gitignore
├── LICENSE.txt
├── README.md
├── installers/
│ ├── mac/
│ │ ├── Bravura Font Family.pkgproj
│ │ └── readme.md
│ └── windows/
│ ├── bravura-installer.iss
│ └── readme.md
└── redist/
├── FONTLOG.txt
├── OFL-FAQ.txt
├── OFL.txt
├── bravura-text.md
├── bravura_metadata.json
└── otf/
├── Bravura.otf
└── BravuraText.otf
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
.DS_Store
================================================
FILE: LICENSE.txt
================================================
Copyright © 2019, Steinberg Media Technologies GmbH (http://www.steinberg.net/),
with Reserved Font Name "Bravura".
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION AND CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
================================================
FILE: README.md
================================================
# Bravura music font
Bravura is an OpenType music font developed for Steinberg's [Dorico](https://www.steinberg.net/dorico) music notation and composition software.
It is also the reference font for [Standard Music Font Layout (SMuFL)](https://w3c.github.io/smufl/gitbook/), which provides a standard way of mapping the thousands of musical symbols required by conventional music notation into the Private Use Area in Unicode’s Basic Multilingual Plane for a single (format-independent) font.
================================================
FILE: installers/mac/Bravura Font Family.pkgproj
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PACKAGES</key>
<array>
<dict>
<key>PACKAGE_FILES</key>
<dict>
<key>DEFAULT_INSTALL_LOCATION</key>
<string>/</string>
<key>HIERARCHY</key>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Utilities</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Applications</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>../../redist/bravura-text.md</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>../../redist/bravura_metadata.json</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>../../redist/FONTLOG.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>../../redist/OFL-FAQ.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>../../redist/OFL.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Bravura</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Fonts</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>SMuFL</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Application Support</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Automator</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Documentation</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Filesystems</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../../redist/otf/Bravura.otf</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../../redist/otf/BravuraText.otf</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>420</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Fonts</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>2</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Frameworks</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Input Methods</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Internet Plug-Ins</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>LaunchAgents</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>LaunchDaemons</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>PreferencePanes</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Preferences</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Printers</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>PrivilegedHelperTools</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>QuickLook</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>QuickTime</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Screen Savers</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Scripts</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Services</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Widgets</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Library</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Extensions</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Library</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>System</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<dict>
<key>CHILDREN</key>
<array>
<dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>Shared</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>1023</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>80</integer>
<key>PATH</key>
<string>Users</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>/</string>
<key>PATH_TYPE</key>
<integer>0</integer>
<key>PERMISSIONS</key>
<integer>493</integer>
<key>TYPE</key>
<integer>1</integer>
<key>UID</key>
<integer>0</integer>
</dict>
<key>PAYLOAD_TYPE</key>
<integer>0</integer>
<key>VERSION</key>
<integer>3</integer>
</dict>
<key>PACKAGE_SCRIPTS</key>
<dict>
<key>RESOURCES</key>
<array/>
</dict>
<key>PACKAGE_SETTINGS</key>
<dict>
<key>AUTHENTICATION</key>
<integer>1</integer>
<key>CONCLUSION_ACTION</key>
<integer>0</integer>
<key>IDENTIFIER</key>
<string>com.steinberg.pkg.BravuraFontFamily</string>
<key>NAME</key>
<string>Bravura Font Family</string>
<key>OVERWRITE_PERMISSIONS</key>
<false/>
<key>VERSION</key>
<string>1.17</string>
</dict>
<key>UUID</key>
<string>F1AF24E0-6F51-4D82-A025-A0EA0E72053B</string>
</dict>
</array>
<key>PROJECT</key>
<dict>
<key>PROJECT_COMMENTS</key>
<dict>
<key>NOTES</key>
<data>
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1M
IDQuMDEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQv
c3RyaWN0LmR0ZCI+CjxodG1sPgo8aGVhZD4KPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLTgiPgo8bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVN0eWxlLVR5cGUiIGNvbnRlbnQ9InRleHQvY3NzIj4KPHRp
dGxlPjwvdGl0bGU+CjxtZXRhIG5hbWU9IkdlbmVyYXRvciIgY29u
dGVudD0iQ29jb2EgSFRNTCBXcml0ZXIiPgo8bWV0YSBuYW1lPSJD
b2NvYVZlcnNpb24iIGNvbnRlbnQ9IjEzNDcuNTciPgo8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5
Pgo8L2JvZHk+CjwvaHRtbD4K
</data>
</dict>
<key>PROJECT_PRESENTATION</key>
<dict>
<key>INSTALLATION_STEPS</key>
<array>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewIntroductionController</string>
<key>INSTALLER_PLUGIN</key>
<string>Introduction</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewReadMeController</string>
<key>INSTALLER_PLUGIN</key>
<string>ReadMe</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewLicenseController</string>
<key>INSTALLER_PLUGIN</key>
<string>License</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewDestinationSelectController</string>
<key>INSTALLER_PLUGIN</key>
<string>TargetSelect</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewInstallationTypeController</string>
<key>INSTALLER_PLUGIN</key>
<string>PackageSelection</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewInstallationController</string>
<key>INSTALLER_PLUGIN</key>
<string>Install</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
<dict>
<key>ICPRESENTATION_CHAPTER_VIEW_CONTROLLER_CLASS</key>
<string>ICPresentationViewSummaryController</string>
<key>INSTALLER_PLUGIN</key>
<string>Summary</string>
<key>LIST_TITLE_KEY</key>
<string>InstallerSectionTitle</string>
</dict>
</array>
<key>INTRODUCTION</key>
<dict>
<key>LOCALIZATIONS</key>
<array/>
</dict>
<key>LICENSE</key>
<dict>
<key>KEYWORDS</key>
<dict/>
<key>LOCALIZATIONS</key>
<array>
<dict>
<key>LANGUAGE</key>
<string>English</string>
<key>VALUE</key>
<dict>
<key>PATH</key>
<string>../../redist/OFL.txt</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
</dict>
</array>
<key>MODE</key>
<integer>0</integer>
</dict>
<key>TITLE</key>
<dict>
<key>LOCALIZATIONS</key>
<array>
<dict>
<key>LANGUAGE</key>
<string>English</string>
<key>VALUE</key>
<string>Bravura Font Family</string>
</dict>
</array>
</dict>
</dict>
<key>PROJECT_REQUIREMENTS</key>
<dict>
<key>LIST</key>
<array/>
<key>POSTINSTALL_PATH</key>
<dict/>
<key>PREINSTALL_PATH</key>
<dict/>
<key>RESOURCES</key>
<array/>
<key>ROOT_VOLUME_ONLY</key>
<true/>
</dict>
<key>PROJECT_SETTINGS</key>
<dict>
<key>ADVANCED_OPTIONS</key>
<dict/>
<key>BUILD_FORMAT</key>
<integer>0</integer>
<key>BUILD_PATH</key>
<dict>
<key>PATH</key>
<string>build</string>
<key>PATH_TYPE</key>
<integer>1</integer>
</dict>
<key>EXCLUDED_FILES</key>
<array>
<dict>
<key>PATTERNS_ARRAY</key>
<array>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.DS_Store</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
</array>
<key>PROTECTED</key>
<true/>
<key>PROXY_NAME</key>
<string>Remove .DS_Store files</string>
<key>PROXY_TOOLTIP</key>
<string>Remove ".DS_Store" files created by the Finder.</string>
<key>STATE</key>
<true/>
</dict>
<dict>
<key>PATTERNS_ARRAY</key>
<array>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.pbdevelopment</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
</array>
<key>PROTECTED</key>
<true/>
<key>PROXY_NAME</key>
<string>Remove .pbdevelopment files</string>
<key>PROXY_TOOLTIP</key>
<string>Remove ".pbdevelopment" files created by ProjectBuilder or Xcode.</string>
<key>STATE</key>
<true/>
</dict>
<dict>
<key>PATTERNS_ARRAY</key>
<array>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>CVS</string>
<key>TYPE</key>
<integer>1</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.cvsignore</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.cvspass</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.svn</string>
<key>TYPE</key>
<integer>1</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.git</string>
<key>TYPE</key>
<integer>1</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>.gitignore</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
</array>
<key>PROTECTED</key>
<true/>
<key>PROXY_NAME</key>
<string>Remove SCM metadata</string>
<key>PROXY_TOOLTIP</key>
<string>Remove helper files and folders used by the CVS, SVN or Git Source Code Management systems.</string>
<key>STATE</key>
<true/>
</dict>
<dict>
<key>PATTERNS_ARRAY</key>
<array>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>classes.nib</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>designable.db</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>info.nib</string>
<key>TYPE</key>
<integer>0</integer>
</dict>
</array>
<key>PROTECTED</key>
<true/>
<key>PROXY_NAME</key>
<string>Optimize nib files</string>
<key>PROXY_TOOLTIP</key>
<string>Remove "classes.nib", "info.nib" and "designable.nib" files within .nib bundles.</string>
<key>STATE</key>
<true/>
</dict>
<dict>
<key>PATTERNS_ARRAY</key>
<array>
<dict>
<key>REGULAR_EXPRESSION</key>
<false/>
<key>STRING</key>
<string>Resources Disabled</string>
<key>TYPE</key>
<integer>1</integer>
</dict>
</array>
<key>PROTECTED</key>
<true/>
<key>PROXY_NAME</key>
<string>Remove Resources Disabled folders</string>
<key>PROXY_TOOLTIP</key>
<string>Remove "Resources Disabled" folders.</string>
<key>STATE</key>
<true/>
</dict>
<dict>
<key>SEPARATOR</key>
<true/>
</dict>
</array>
<key>NAME</key>
<string>Bravura Font Family</string>
<key>REFERENCE_FOLDER_PATH</key>
<string>/Users/DSpreadbury/git/bravura/redist</string>
</dict>
</dict>
<key>TYPE</key>
<integer>0</integer>
<key>VERSION</key>
<integer>2</integer>
</dict>
</plist>
================================================
FILE: installers/mac/readme.md
================================================
# Packages installer project
This is a simple OS X installer script to install Bravura and Bravura Text, which:
* Installs the OpenType versions of Bravura and Bravura Text into the system font folder (`/Library/Fonts`).
* Installs the font-specific JSON metadata files into `/Library/Application Support/SMuFL/Fonts/Bravura/`
* Installs the OFL license, OFL FAQ, font log, and documentation for Bravura Text into the same folder.
This project can be modified to install other SMuFL-compliant fonts.
[Packages](http://s.sudre.free.fr/Software/Packages/about.html) is free to use for commercial and non-commercial purposes.
================================================
FILE: installers/windows/bravura-installer.iss
================================================
; Inno Setup script for Bravura and Bravura Text
; http://www.jrsoftware.org/isinfo.php
; This script requires the Inno Setup Preprocessor (ISPP) to be installed.
; Without ISPP installed, these #define statements will not compile.
#define MyAppName "Bravura Font Family"
#define MyAppVersion "1.204"
#define MyAppPublisher "Steinberg Media Technologies GmbH"
#define MyAppURL "http://www.steinberg.net/"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{B8D22191-0E50-477B-9508-76D45CED9DB6}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={cf}/SMuFL/Fonts/Bravura
DisableDirPage=yes
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile=Z:\git\bravura\redist\OFL.txt
OutputBaseFilename=InstallBravura-{#MyAppVersion}
Compression=lzma
SolidCompression=yes
UsePreviousAppDir=no
ArchitecturesInstallIn64BitMode=x64
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Files]
Source: "..\..\redist\bravura_metadata.json"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\redist\bravura-text.md"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\redist\FONTLOG.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\redist\OFL.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\redist\OFL-FAQ.txt"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\redist\otf\Bravura.otf"; DestDir: "{fonts}"; FontInstall: "Bravura"; Flags: uninsneveruninstall fontisnttruetype
Source: "..\..\redist\otf\BravuraText.otf"; DestDir: "{fonts}"; FontInstall: "Bravura Text"; Flags: uninsneveruninstall fontisnttruetype
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
================================================
FILE: installers/windows/readme.md
================================================
# Inno Setup installer script
This is a simple Windows installer script to install Bravura and Bravura Text, which:
* Installs the OpenType versions of Bravura and Bravura Text into the system font folder; it will only overwrite existing copies of these fonts if they are older than the versions included in the installer.
* Installs the font-specific JSON metadata files into `%COMMONPROGRAMFILES%\SMuFL\Fonts\Bravura\`
* Installs the OFL license, OFL FAQ, font log, and documentation for Bravura Text into the same folder.
This script can be trivially modified to install other SMuFL-compliant fonts. Be sure you use **Tools** > **Generate GUID** to generate a new GUID in the Inno Setup IDE to ensure it does not collide with the GUID used by the Bravura installer.
[Inno Setup](http://www.jrsoftware.org/isinfo.php) is free to use for commercial and non-commercial purposes.
================================================
FILE: redist/FONTLOG.txt
================================================
FONTLOG for the Bravura font
============================
This file provides detailed information on the Bravura Font Software. This information should be distributed along with the Bravura fonts and any derivative works.
The Bravura Font Software is a family consisting of two fonts, Bravura and Bravura Text.
Basic font information
----------------------
Bravura is a Unicode typeface designed by Steinberg for its in-development music notation and scoring application.
It is compliant with version 1.2 of the Standard Music Font Layout (SMuFL), a community-driven standard for how music symbols should be laid out in the Unicode Private Use Area (PUA) in the Basic Multilingual Plane (BMP) for compatibility between different scoring applications.
More information about Steinberg's scoring application can be found at:
http://www.steinberg.net/
The latest version of the SMuFL specification can be found at:
https://w3c.github.io/smufl/gitbook/
Note for developers
-------------------
If you are intending to use Bravura as part of your own software application, please refer to the SMuFL specification for useful information about Bravura's metrics and how glyphs are registered:
https://w3c.github.io/smufl/gitbook/specification/index.html
Changelog
---------
22 May 2013 (Daniel Spreadbury) Bravura version 0.1
- Initial pre-release to coincide with 2013 Music Encoding Conference
5 July 2013 (Daniel Spreadbury) Bravura version 0.2
- Bravura 0.2 is designed to be compatible with SMuFL 0.5
- Thanks to Mark Johnson and Emil Wojtacki for contributing a number of glyphs to the font
- Many existing code points have been changed, as a result of hundreds of new glyphs being added, plus a number of new ranges.
- Added long (U+E008) and very long (U+E009) system dividers for very large scores.
- Added heavy (U+E034), double heavy (U+E035) and dotted (U+E037) barlines.
- Added square coda (U+E047) and small repeat signs for repeats within bars (U+E04A, U+E04B).
- Added recommended stylistic alternates for segno (U+E045) and coda (U+E046) for the appearance preferred by Japanese publishers.
- Added quindicesima bassa G clef (U+E061) and F clef (U+E070), G clef combined with C clef (U+E066), G clefs designed to be ligated with numbers below and above to show the transposition of an instrument (U+E067, U+E068), plus recommended ligatures for G and F clefs with numbers above and below; also added G, C and F clefs with arrows up and down, which may be used either as alternatives for octave clefs or to represent the extremes of register on an instrument (U+E069, U+E06A, U+E06C, U+E06D, U+E074, U+E075), and semi-pitched percussion clefs (U+E078, U+E079), plus a bridge clef (U+E085).
- Removed “tall” versions of 6- and 4-string tab clefs, and instead made them recommended stylistic alternates, together with versions that use letterforms with serifs.
- Added +, -, X (multiply), comma, parentheses glyphs for time signatures (U+E09C–U+E0A6), plus basic fractions (U+E0A7–U+E0AB), and Penderecki-style open time signature (U+E0AD).
- Added specific noteheads for double whole note (U+E100) and whole note (U+E101) to the noteheads range rather than relying on the glyphs in the pre-composed notes range.
- Added shaped noteheads for specific note values (double whole note, whole note, half note, and quarter note and shorter); also added large up- and down-pointing triangles for highest/lowest notes played by an instrument (U+E102–U+E109).
- Added large slashed circular noteheads (U+E136–U+E139) as used by Stockhausen for notating gong/tam-tam hits.
- Added combining glyphs for note clusters of specific note values (U+E154–U+E171).
- Added noteheads with solfège and chromatic note names embedded within them, as seen in “EZ-Play” educational scores (U+E180–U+E1D9).
- Added specific range of noteheads for sacred harp shape note singing (U+E1E0–U+E1EF).
- Added pre-composed 1024th notes (U+E214–U+E215), tails (U+E28E–U+E28F) and rest (U+E52C).
- Added range for typing simple beamed groups of notes in text-based applications, (U+E220–U+E233). Designed to be used in conjunction with pre-composed notes (U+E200–U+E216), and allowing beamed groups with rhythmic values between 8th notes and 64th notes, plus ties and triplets.
- Added combining stems for multiphonics, damp, sussurando, Saunders vibrato pulse accent (U+E248–U+E24D).
- Added four- and five-stroke tremolos (U+E263–U+E264, U+E268–U+E269) plus Wieniawski-style unmeasured tremolo glyphs (U+E26C–U+26D).
- Added stylistic alternates for flags (U+E280–U+E28F): straight flags; and shorter stem-up flags to avoid collisions with augmentation dots.
- Separated accidentals into several discrete ranges based around the various accidental systems, including 12-edo, 24-edo, the system of up- and down-pointing arrows favoured by Gould, Stein-Zimmermann (also known as Tartini-Couper), Maneri-Sims, Ben Johnston, Marc Sabat and Wolfgang von Schweinitz’s Extended Helmholtz-Ellis Just Intonation Pitch Notation. A range has also been reserved for George Secor and Dave Keenan’s Sagittal system of accidentals (U+E360–U+E47F).
- Added accidentals used in Turkish folk music (U+E4C8–U+E4CF).
- Added Persian accidentals (U+E4D0–U+E4D1).
- Added staccatissimo wedge (U+E4E5–U+E4E6) and stroke (U+E4E7–U+E4E8) glyphs.
- Added very short (U+E502–U+E503) and very long (U+E508–U+E509) fermatas, plus short caesura (U+E50D).
- Added left and right halves of multirest H-bars (U+E52E–U+E52F) and old-style quarter rest as seen in e.g. Novello editions (U+E530).
- Added ventiduesima (three octaves, “22”) glyphs to octaves range (U+E557–U+E559).
- Added precomposed glyphs for common dynamics (U+E567–U+E57B) and niente circle for hairpins (U+E57E).
- Added schleifer (long mordent, U+E5AA) and Haydn ornament (U+E5D1).
- Added additional brass techniques, including short, medium and long versions of lift, doit, lip fall, smooth fall, rough fall, plus jazz turn (U+E5E0–U+E5FB).
- Added range of glyphs for embouchure tightness (U+E61B–U+E623), reed position (U+E624–U+E626), multiphonics (U+E627–U+E629), and stylistic alternates for double- and triple-tonguing with no slurs.
- Added further overpressure glyphs (U+E64B–U+E64D), plus jété, fouetté, Rebecca Saunders’s “vibrato pulse” accent and thumb position (U+E64E–U+E652) to string techniques range.
- Added plectrum pictogram (U+E669) and combining damp glyph for note stems (U+E66A) to plucked techniques range.
- Added arrows for breathing and intonation, plus combining sussurando glyph for note stems (U+E687–U+E68B), to vocal techniques range.
- Added pedal pictograms, sostenuto pedal symbols, and half-pedal marks (U+E6A5–U+E6AC) to keyboard techniques range.
- Added pictograms for metal rod (U+E6CF) and tuning key (U+E6D0) to harp techniques range.
- Added Smith Brindle’s pictograms for tuned percussion instruments (U+E6E5–U+E6E8).
- Added pictogram for Indian table (U+E720), plus stylistic alternate for tambourine (U+E718) as used by Stockhausen.
- Added pictogram for football rattle (U+E735), plus Smith Brindle’s pictogram for castanets (U+E738) as a stylistic alternate.
- Added pictogram for handbell (U+E765), plus stylistic alternates for cow bell (from Berio) and sleigh bell (from Smith Brindle).
- Added pictogram for Chinese cymbal (U+E776).
- Added pictogram for tam-tam with beater from Smith Brindle (U+E791).
- Added pictogram for maracas (U+E7A2), rainstick (U+E7A7), plus stylistic alternate for maraca from Smith Brindle (U+E7A1).
- Added pictogram for megaphone (U+E7B9).
- Added soft and hard glockenspiel beaters (U+E7F0–U+E7F7), superball beaters (U+E81C–U+E81F), wound beaters with hard and soft cores (U+E821–U+E828), plus soft, medium and hard gum beaters (U+E829–U+E834).
- Added pluck lift (U+E887) to handbells range.
- Added “Theme” indicators to analytics range (U+E8E4–U+E8E9).
- Added minor (minus sign) glyph (U+E904) to chord symbols range.
- Added mensural proportion glyphs (U+E9DB–U+E9DF).
- Added combining raise and lower glyphs (U+EA2C–U+EA2D) to figured bass range.
- Added repetition, angle brackets, and prefix + and ring glyphs to function symbols range (U+EA63–U+EA68).
- Added new range for multi-segment lines, including moving all of the various “wiggle” glyphs (for trill, glissando, arpeggiando, vibrato, etc.) plus the 11 ornament strokes from the Unicode Musical Symbols range into this range, and adding further glyphs for variable speed trills, alternate arpeggiato ending glyphs, wavy lines, squaretooth and sawtooth lines, group glissando, circular motion, and variable speed and intensity of vibrato (U+EA80–U+EAD0).
- Added new range of pictograms for electronic music, including microphone, loudspeaker, transport controls, volume level and MIDI controller level (U+EAE0–U+EAF5).
- Added new “do not copy” glyphs (U+EB02–U+EB03), eyeglasses (U+EB04) and choral divide arrows (U+EB05–U+EB07) glyphs to the miscellaneous symbols range.
29 July 2013 (Daniel Spreadbury) Bravura version 0.3
- Bravura 0.3 is designed to be compatible with SMuFL 0.6
- Bravura now incorporates glyphs from the Sagittal font by George Secor and Dave Keenan (U+E360–U+E47F). For more information about the Sagittal system of accidentals and to download the stand-alone Sagittal font, see http://sagittal.org.
- Changed registration of many glyphs in the font to match the interim guidelines for font metrics and glyph registration in SMuFL 0.6.
- Added complete set of dynamics to liga table, and duplicated these entries in the ccmp table.
- Added opening parenthesis and closing parenthesis for noteheads (U+E10A–U+E10B), circled slash notehead, heavy X and heavy X with hat noteheads, as used in Dante Agostini's drum method (U+E10C–U+E10E).
- Added muted slash noteheads (U+E125–U+E127).
- Added "si" note name noteheads for French solfège (U+E187, U+E18F, U+E197), and H sharp note name noteheads for German (U+E1AE, U+E1C5, U+E1DC).
- Fixed the vertical position of U+E227 and U+E228 (continuing beams for 8th notes with short and long stems), and made the stem thickness of beamed groups of notes consistent with those of individual notes.
- Added combining rim shot stem (U+E24E).
- Added "sharp sharp" accidental for compatibility with MusicXML (U+E2A9).
- Added extended Stein-Zimmermann accidentals with arrows (U+E2F8–U+E304).
- Adjusted size and registration of Sims microtonal accidentals (U+E308–U+E30D).
- Added one-third-tone sharp and two-third-tones sharp accidentals as used by Xenakis (U+E4B0–U+E4B1).
- Significant revision to the ornaments range, including splitting into separate ranges (common ornaments, other baroque ornaments, combining strokes for trills/mordents, precomposed trills/mordents). A small number of glyphs from previous versions of SMuFL have been removed to make way for symbols drawn from Frederick Neumann’s authoritative book on baroque ornamentation.
- The turn symbol and its derivates (U+E594 et al) have been redrawn to have a more open appearance, for better reproduction at small staff sizes or when read at a distance.
- Added thumb pizzicato (U+E654).
- Added recommended stylistic alternates for Bartok pizzicato above/below (U+E660–U+E661).
- Added recommended stylistic alternates for 'Ped.' (U+E6A0) and 'Sost.' (U+E6A5) that do not include terminal dots.
- Added choke cymbal glyph (U+E875) from Weinberg.
- Added open, half-open and closed wah/volume pedals, left- and right-hand tapping glyphs for guitar (U+E8AD–U+E8B1).
- Added new range for arrows and arrowheads (U+EB00–U+EB1F), including moving the up/down/right/left arrows from the vocal techniques range (previously U+E687–U+E68A) into this new range.
- Redesigned 'do not copy' glyph (U+E833) to be a bit more aggressive.
27 November 2013 (Daniel Spreadbury) Bravura version 0.7
- Bravura 0.7 is designed to be compliant with SMuFL 0.7; its version number has been bumped such that it matches the version number of SMuFL it implements
- Bravura now defines three stylistic sets: ss01 is for glyphs for use on small staves (i.e. different optical size); ss02 is for short up-stem flags to avoid augmentation dots; ss03 is for straight flags
- The Bravura distribution now includes a JSON metadata file describing various recommended metrics and engraving defaults for applications that wish to use Bravura; the specification for this metadata file is documented in the main SMuFL specification
- Significantly expanded the repertoire of glyphs for Medieval and Renaissance notation, with new ranges for clefs, accidentals and ligatures, plus considerable reworking of the notes and prolations ranges.
- Significantly expanded the repertoire of glyphs for plainchant notation, with new ranges for staves, divisions, clefs and articulations, and a wider range of neumes.
- Added range for Daseian notation, as found in the ninth century treatises Musica enchiriadis and Scolica enchiriadis.
- Added new range of control characters for adjusting the staff position of staff-relative glyphs; no ligatures using these control characters are yet defined in Bravura, however.
- Added control characters for time signature digits to allow digits to be stacked vertically, and ligatures for numerator and denominator digits.
- Added narrow and wide staff line glyphs, intended for fonts designed for text-based applications.
- Added C clef ottava bassa, and recommended stylistic alternate for G clef ottava bassa with parentheses around the 8.
- Added square double whole note (breve) notehead.
- Added new combining harp string noise for stem glyph, and corresponding precomposed stem glyph.
- Added four further quarter-tone accidental symbols to "other microtonal accidentals" group.
- Added some percussion playing technique symbols from Dante Agostini’s method books.
- Added a golpe (tap the pick guard) glyph from Claude Worm’s flamenco guitar method book.
- Added short and long fermata glyphs as used by Henze.
- Added combining glyphs for accordion couplers, allowing the creation of any coupler diagram not explicitly encoded.
- Added 'pf' dynamic.
3 February 2014 (Daniel Spreadbury) Bravura version 0.80
- Many minor changes to glyph outlines following corrections suggested by the Adobe FDK checkOutlines tool
- Corrected JSON metadata for stem connection points on flag glyphs (e.g. flag8thDown, flag16thUp, etc.)
- Changed glyph registration of left and right parentheses for noteheads (noteheadParenthesisLeft, noteheadParenthesisRight)
- Changed font name settings in accordance with FontLab's OpenType PS font name guidelines (http://forum.fontlab.com/index.php?topic=313.0).
- Added Ivan Wyschnegradsky’s system of 72-EDO accidentals.
- Added Bosanquet’s comma up/down.
- Added left/right parentheses for accidentals.
- Added new ranges for Renaissance lute tablature, covering French/English, Italian/Spanish and German conventions.
- Added Britten’s curlew sign for a pause of an indeterminate length.
- Added push/pull signs for accordion.
- Added slashed sharp/flat accidentals used by John Tavener in his Byzantine-inspired choral works.
- Added separate noteheads for white mensural notation.
- Added inverted signum congruentiae.
- Added combined tenuto-accent articulation.
- Added quasi-random wiggly lines (wiggleRandom1, wiggleRandom2, wiggleRandom3, wiggleRandom4) to multi-segment lines range.
- Added flipped and large versions of constant circular motion (wiggleCircularConstantFlipped, wiggleCircularConstantLarge, wiggleCircularConstantFlippedLarge) to multi-segment lines range.
- Added combining top/middle/bottom segments for black and white rectangular note clusters.
- Added 2, 3, 4 and 6-dot divisi indicators for measured tremolos (tremoloDivisiDots2, tremoloDivisiDots3, etc.) to tremolos range.
- Added clavichord bebung glyphs for 2, 3, and 4 finger movements (keyboardBebung2DotsAbove, keyboardBebung3DotsBelow, etc.) to the keyboard techniques range.
- Added double-height parentheses and brackets (csymParensLeftTall, csymParensRightTall, csymBracketLeftTall, csymBracketRightTall) to the chord symbols range.
- Added stylistic alternates for time signature digits 0–9 suitable for use as large time signatures shown above/between staves (timeSig0Large through timeSig9Large).
– Added 'sfzp' (sforzato-piano) dynamic and ligature.
– Added Penderecki's quarter-flat and Busotti's three-quarter sharp accidentals.
– Added six further accordion coupler diagrams for right-hand 3 rank accordions, and accordion ricochet glyphs.
9 March 2014 (Daniel Spreadbury) Bravura version 0.85
– Updated glyph registration for articulations, such that articulations above the note are positioned sitting on the baseline, and articulations below the note are positioned hanging from the baseline.
– Added whole and half rests with leger lines, i.e. as if displayed outside the staff.
– Added clef for diatonic accordion.
– Added recommended stylistic alternates for C and F clef forms used in 18th century French music, and for an F clef form used in 19th century music across Europe.
– Added half-brackets for keyboard notation to show notes that should be played by the other hand.
– Many code point changes, including moving the staff divide arrows, percussion swish arrow, and quite a few of the microtonal accidentals; refer to the SMuFL documentation for further details.
– Further revisions to the plainchant ranges, including adding reversed virga, smaller version of punctum inclinatum, moving the punctum mora to the plainchant articulations range, and eliminating the precomposed podatus and clivis glyphs in favour of individual components that provide the means to construct these easily for any interval.
– Added new range for Kievian square notation, as used for liturgical chant in the Russian Orthodox Church.
– Added new glyphs for tabling one handbell and tabling a pair of handbells.
– Added alternative pedal heel glyph and pedal heel or toe glyph.
– Added recommended stylistic alternates for braces designed for use across different sizes of gaps, designed to be scaled uniformly rather than simply stretched vertically.
– Added many new electronic music pictograms, including speaker configurations, more transport controls, additional hardware devices, and so on.
– Added guitar fade in, fade out and swell glyphs.
– Added the glyphs used by the Corpus Monodicum project for modern transcription of plainchant.
17 April 2014 (Daniel Spreadbury) Bravura version 0.9
– Distribution now includes Bravura Text font, intended for use in text-based applications.
– Added new range for Kodály solfège hand signs.
– Added new range for Peter Hayes George’s Simplified Music Notation.
– Added narrow and wide versions of the sine wave, square wave and sawtooth wavy lines.
– Added wide versions of the black and white diamond noteheads, as used in some handbells music.
– Added turned (i.e. inverted) versions of up bow and down bow marks.
– Added oriscus liquescens and strophicus liquescens (for intervals of a second up to a fifth).
– Added oblique ligature forms for mensural notes describing intervals of a second up to a fifth for black, void, black and void, and white noteheads.
– Added single glyph for right and left repeat barlines, and a stylistic alternate using thick-thick rather than thin-thick-thin barlines.
– Added reversed versions of brackets to denote play with right/left hand, to allow the demarcation of the end of a passage to be played with the other hand.
– Extended stylistic set 01 (ss01) with new glyphs redesigned for display on smaller staff sizes: time signature digits; G, C and F clef; black, half, whole and double whole noteheads; standard articulations; dynamics letter forms; flags.
– Added recommended ligatures for standard noteheads and accidentals in parentheses.
– Improved registration of ornamentMiddleVerticalStroke.
– Added open arrowheads and arrows.
– Added Kievan half note on space, and Kievan beam.
– Added new percussion pictograms from the books by Sevsay and Peinkofer/Tannigel, plus new combining glyphs for stems showing the "crush" rudiment, "dead" notes, and to instruct the performer to turn the instrument.
– Added five further mensural proportion signs, from Apel's book.
– Added 12 new precomposed trills and mordents, based on Bach's ornamentation chart and ornaments found in Emmentaler.
– Added restHBarMiddle glyph, for text-based applications to construct H-bar multirests of variable width.
– Added noteheadWholeFilled and noteheadHalfFilled, for modern transcriptions of coloration in Medieval and Renaissance music.
– Consolidated breath marks into a single range, and added a new upbow-like breath mark (as used in music from Russia).
– Added range of glyphs for lyrics, including three lengths of elision undertie, and baseline hyphen (as used in music from Russia).
– Added a wider slash notehead, for whole note (semibreve) duration.
– Added more shape note noteheads to support the 7-shape conventions of Joseph Funk and William Walker.
– Added maxima rest, and double whole (breve) rest with leger lines above and below.
– Added curved caesura.
– Added separate glyphs for the 'e', 'd' and dot in keyboard Ped. marks, plus a curved hyphen to be used along with the 'P' to show start/end pedal in some editions.
– Added new mensural C clef, plus variations of the Petrucci C clef for different staff positions.
– Added different custos for different staff positions.
– Added stylistic alternates for the Medieval and Renaissance "soft b" flat accidental.
– Added dedicated glyphs for C, G, and F clef changes, plus new combining clef change character to produce other clef change glyphs by way of glyph substitution (other clef change glyphs not currently implemented in Bravura).
– Added one- and two-third tones sharp and flat accidentals as used by Brian Ferneyhough.
– Added "just air" open diamond notehead as used by Brian Ferneyhough.
– Added white and wide white diamond noteheads.
– Added a range of glyphs for denoting accel./rit. beam lines above the staff.
– Added normal, wide and narrow leger line glyphs.
2 June 2014 (Daniel Spreadbury) Bravura version 0.99
– Added '8' and '15' digits scaled correctly for positioning on G and F clefs
– Added stylistic alternates for common time, cut time and + intended for use as large time signatures printed above the staff; and added an additional stylistic set (ss04) for time signature digits intended for use outside the staff
– Added a set of noteheads enclosed in large circles, used by some drummers
– Added an ornate X notehead contained within an ellipse
– Added Couperin's pincé and tremblement appuyé ornaments
– Redesigned the thumb position string technique glyph to more closely resemble a zero digit, and added a turned version
– Added a zero-width rectangle intended to enclose single percussion beaters inside a box
– Added strum direction arrows for guitar, and a stylistic alternate for the golpe glyph as used by Antonis Vounelakos
– Added an additional raised 7 digit for figured bass
– Added left- and right-pointing arrows for use in metric modulations
– Reduced the width of stems throughout Bravura (from 0.16 spaces to 0.12 spaces); this is also reflected in the 'stemThickness' value in the 'engravingDefaults' structure in the JSON metadata
– Redesigned the half note noteheads containing note names to improve stem connections
– Added hundreds of new kerning pairs for beamed notes in text, percussion beaters (for overlapping tilted beaters, and overprinting of parentheses, dashed circle and rectangular outline for up/down beaters), ligated time signature digits (for positioning as numerator and denominator)
– Fixed registration for stem decorations (e.g. tremolos, buzz roll, etc.) such that these glyphs are correctly visually centered around x = 0 and y = 0
– Fixed registration of stylistic alternates for tablature clefs
– Added ligatures for Johnston accidentals in various combinations
– Removed 407 wind fingering chart glyphs; these glyphs are no longer part of the SMuFL standard, and will be released as a separate font in due course
16 June 2014 (Daniel Spreadbury) Bravura 1.0
– Redesigned the bracket top and bottom glyphs to better abut with the vertical line of the bracket
– Added punctum deminutum (chantPunctumDeminutum)
17 June 2014 (Daniel Spreadbury) Bravura 1.01
– Corrected the duration of stem-up notes in the 'Individual notes' range (64th note was missing, and 1024th note was duplicated)
23 June 2014 (Daniel Spreadbury) Bravura 1.02
– Corrected the accidentalSims12Down glyph, which had inadvertently been replaced with the accidentalSims6Down glyph
22 July 2014 (Daniel Spreadbury) Bravura 1.03
– Reduced the size of the augmentationDot glyph (now 2/5 spaces in diameter rather than 1/2 space), and likewise reduced the size of the staccato articulations (now 1/3 space in diameter rather than 1/2 space)
25 July 2014 (Daniel Spreadbury) Bravura 1.05
– Corrected the side-bearings of the timeSigParensLeft, timeSigParensRight, timeSigParensLeftSmall and timeSigParensRightSmall glyphs; also made the curvature of the small parentheses less extreme
– Added new timeSigBracketLeft, timeSigBracketRight, timeSigBracketLeftSmall, timeSigBracketRightSmall and timeSigSlash glyphs, in a new range at U+EC80 (the first new range of recommended glyphs to be added after SMuFL version 1.0)
26 August 2014 (Daniel Spreadbury) Bravura 1.06
– Corrected the registration of flag64thDownStraight.
– Corrected the appearance of U+1D1A9 in the Unicode Musical Symbols Range: it should have been equivalent to csymHalfDiminished, but it was incorrectly mapped to csymDiminished.
16 October 2014 (Daniel Spreadbury) Bravura 1.07
– Corrected the appearance of articMarcatoBelow, which was incorrectly flipped horizontally.
– Updated flag8thUp, flag8thDown, flag16thUp, and flag16thDown to be 3¼ spaces in length (previously 2¾ spaces), in keeping with the recommendations for flag length in Gould and Ross.
– Updated the glyphs in the 'Individual notes' (U+E1D0–U+E1EF) and 'Beamed groups of notes' (U+E1F0–U+E20F) such that notes have stem lengths of 2¾ spaces in length (previously 3½ for 'Individual notes', and inconsistently around 2¾ spaces in length for 'Beamed groups of notes'). These glyphs are intended to be used in close proximity to text set in other fonts, and the shorter stems provide a more harmonious appearance with typical text fonts.
5 November 2014 (Daniel Spreadbury) Bravura 1.08
– Improved versions of G, F, and C clefs, and all their variants, including the forms with ligated numbers; thanks to Tucker Meyers.
– Improved versions of the octave markers (8, 8va, 8vb, et al); thanks to Tucker Meyers.
– Improved versions of the tuplet digits (0–9, plus colon); thanks to Tucker Meyers.
11 December 2014 (Daniel Spreadbury) Bravura 1.10
– Reworked the octave markers, so that the glyphs for raising and lowering by one, two, and three octaves use the correct abbreviations with appropriate placement (superscript for pitches to be raised, at the baseline for pitches to be lowered); added new '8vb', '15mb' and '22mb' glyphs, even though these abbreviations for lowering by one, two, and three octaves are incorrect; added 'loco' and 'basso' glyphs.
7 January 2015 (Daniel Spreadbury) Bravura 1.12
– Added Hauptrhythmus (RH) and Choralmelodie (CH) glyphs, plus stylistic alternate for Hauptrhythmus(R), as used by Alban Berg.
– Added short, medium, and long smooth brass lifts.
– Added Salzedo's symbols for ascending and descending Aeolian chords.
– Added right-pointing black and white triangles for down-stem sharp notes in Simplified Music Notation.
– Added 'cut 2' time signature, used by Bach as alternative to cut C.
– Added new ligatures for common time signatures (2/4, 2/2, 3/2, 3/4, 3/8, 4/4, 5/4, 5/8, 6/4, 6/8, 7/8, 9/8, 12/8) for Bravura Text. To produce e.g. the 3/4 ligature, the string "timeSigCombNumerator timeSig3 timeSigCombDenominator timeSig4" should be used. These ligatures provide correct alignment of the numerator and denominator digits relative to each other.
– Improved metadata for flat-like accidentals, adding 'cutOutSE' points for more of them.
– Added new 'noteheadOrigin' point to metadata to assist in the alignment of noteheads of different rhythmic values, e.g. the double whole note (breve) with two vertical lines to either side of the oval notehead.
– Added new 'opticalCenter' point to metadata for dynamics glyphs, to assist in their correct alignment with noteheads and stems.
26 February 2015 (Daniel Spreadbury) Bravura 1.15
– Improved U+EB2A (elecPowerOnOff) so that it more closely matches the standard appearance of the IEEE 5009 symbol.
– Improved consistency of registration of U+EB2E–U+EB33 (elecVolumeLevel...) glyphs.
– Corrected typo in metadata for dynamicSforzadoFF glyph.
– Improved U+E26A (accidentalParensLeft) and U+E26B (accidentalParensRight).
– Fixed contour direction for many glyphs; this may have resulted in incorrect appearance of some glyphs in some display contexts, and when printed on some printers.
– Resized all notehead glyphs, except for those in the 'Note name noteheads' (U+E150–U+E1AF), 'Individual notes' (U+E1D0–U+E1EF), and 'Beamed groups of notes' (U+E1F0–U+E20F) ranges, such that they are exactly 0.25 em (equivalent to one staff space) in height; previously, many of the notehead glyphs had been optically sized and were taller.
– Added a new stylistic set (ss05) containing optically-sized versions of the most common noteheads (double whole, square double whole, whole, half, and black). These glyphs are oversized, and are designed to be the largest possible noteheads that will work with staff lines of the thickness recommended in the Bravura font-specific metadata.
– Many glyphs have small improvements to outline quality (via 'checkOutlines -i -e' from the Adobe FDK).
14 April 2015 (Daniel Spreadbury) Bravura 1.16
– Improved versions of bold dynamics characters; thanks to Tucker Meyers.
– Improved versions of keyboard pedalling characters; thanks to Tucker Meyers.
– Improved versions of trill, turn etc. characters; thanks to Tucker Meyers.
– Improved symmetry of the whole note name noteheads; removed counters from noteWholeEmpty and noteHalfEmpty, since these are designed to be printed in white underneath note name noteheads, so that stave lines and ledger lines are blanked out, making the note names in the counters of the note name noteheads clearer to read.
– Corrected side-bearings on Sagittal accidentals.
– Corrected registration of glyphs designed to be combined with stems (descriptions ending '...for stem'), now consistently visually centered around both x=0 and y=0.
– Corrected vertical registration of precomposed square (U+E120, U+E121), round (U+E122, U+E123), and diamond (U+E138–U+E13B) cluster noteheads, so they are consistent with the cluster notehead components in the same range.
29 April 2015 (Daniel Spreadbury) Bravura 1.17
– Added new 'Metronome marks' for notes with 2.75sp stems to balance with text.
– Reverted notes in 'Individual notes' range to have 3.5sp stems.
– Added separate glyphs for v, b, a, m, both superscript and on the baseline, to 'Octaves supplement' range.
– Added marcato-tenuto above and below to 'Articulations' range.
– Added 6 with slashed stem (figbass6Raised2) to 'Figured bass' range.
18 May 2015 (Daniel Spreadbury) Bravura 1.18
– Added side-bearings to figured bass digits, function symbols, and tuplet digits.
– Corrected triangular clefs at U+E06F–U+E072 to match the actual usage by the Polish composer Schäffer.
– Added z-style quarter (crotchet) rest.
25 April 2016 (Daniel Spreadbury) Bravura 1.20
– Added double whole note slash notehead (U+E10A)
– Added double-slashed black and white round noteheads, often used to denote striking piano strings (U+E11C, U+E11D)
– Added irregular tremolo mark, used by Stockhausen (U+E232)
– Added square brackets for editorial accidentals (U+E26C, U+E26D)
– Added equal-tempered quarter-tone flat and quarter-tone sharp, combining glyphs to raise and lower by a 53-limit comma, and tilde and equals characters to indicate enharmonic equivalence, to the 'Extended Helmholtz-Ellis (Just Intonation) accidentals' range (U+E2F5-U+E2FB)
– Added quarter-tone sharp and flat accidentals, used by Ferneyhough (U+E48E, U+E48F)
– Added parentheses and brackets for hairpins (U+E542–U+E545)
– Added hyphen, colon, and space separators for use in combined dynamics, e.g. p-mp (U+E546–U+E548)
– Added brass valve trill to 'Brass techniques' range (U+E5EF)
– Added wind mouthpiece pop and rim only to 'Wind techniques' range (U+E60A, U+E60B)
– Added bow behind bridge on one, two, three, or four strings to 'String techniques' range (U+E627–U+E62A)
– Added nasal voice, tongue click, finger click, and tongue and finger click (as used by Stockhausen) to 'Voical techniques' range (U+E648–U+E64A)
– Added L and reversed-L hooks used instead of Ped. to start and stop sustain pedal indications to 'Keyboard techniques' range (U+E672, U+E673)
– Added pedal-to-heel and heel-to-pedal transitions to 'Keyboard techniques' range (U+E674, U+E675)
– Added damp low strings, damp with both hands, damp below, damp above, metallic sounds on a single string, isolated sounds, and snare drum techniques as used by Salzedo to 'Harp techniques' range (U+E697–U+E69D)
– Added clockwise variant of scrape around rim to 'Percussion playing technique pictograms' range (U+E80E)
- Added full barré and half-barré to 'Guitar' range (U+E848, U+E849), plus recommended stylistic alternate with horizontal fraction slash for half-barré
– Added unconducted/free passages to 'Conductor symbols' range (U+E89A)
– Added upper case F, I, K, L, and lower case i, k, l, glyphs to existing 'Function theory symbols' range (U+EA99–U+EA9F), plus a new 'Function theory symbols supplement' range including upper case M and N, and lower case m and r (U+ED00–U+ED03)
– Added "cut 3" to 'Time signature supplement' range (U+EC86)
– Added diminished 7 to new 'Figured bass supplement' range (U+ECC0)
– Added new 'Shape note noteheads supplement' range containing double whole note versions of all of the different notehead shapes in the existing 'Shape note noteheads' range (U+ECD0–U+ECDD)
– Added turned time signature digits, common time and cut common time (U+ECE0–U+ECEB)
– Added reversed time signature digits, common time and cut common time (U+ECF0–U+ECFB)
– Added new 'Fingering' range, containing digits bold 0–5 suitable for keyboard fingering, and a variety of symbols used in guitar fingering (U+ED10–U+ED23)
– Added new 'Arabic accidentals' range (U+ED30–U+ED38)
– Added new 'Articulation supplement' range containing so-called "soft accent", plus combinations with staccato and tenuto (U+ED40–U+ED47)
– Added new 'Stockhausen accidentals (24-EDO)' range (U+ED50–U+ED5E)
– Added stylistic alternates for cClef and cClefChange in the style of 20th century French publishers
– Added stylistic alternates for 15/22 octave markings using 16/24, as used by some 20th century French publishers
– Added stylistic alternates for wiggleArpeggiatoUpSwash and wiggleArpeggiatoDownSwash based on Couperin's 'L'Art de Toucher Le Clavecin'
– Changed the appearance of clefBridge (U+E078) to match the design used by Lachenmann in "...zwei Gefühle..." and added a stylistic alternate with the previous design
– Fixed the appearance of figBassRaised5 to have a forward slash rather than a backward slash, the correct appearance for a diminished fifth (U+EA5A)
27 January 2017 (Daniel Spreadbury) Bravura 1.211
– Added dynamicCombinedSeparatorSlash (U+E549)
– Added stylistic alternates for tuplet digits in lighter weight
– Improved the tessellation of multi-segment lines, particularly the various wiggles for trills at different speeds.
– Fixed timesig9denominator and timesig9numerator ligatures
11 February 2017 (Daniel Spreadbury) Bravura 1.212
– Added keyboardPedalParensLeft (U+E676) and keyboardPedalParensRight (U+E677)
– Added vulgar fractions for 1/8 (U+215B), 1/4 (U+00BC), 1/2 (U+00BD), 3/4 (U+00BE)
18 February 2017 (Daniel Spreadbury) Bravura 1.213
– Decreased the width of the space character (U+0020) to 100du
27 May 2017 (Daniel Spreadbury) Bravura 1.214
– Improved the appearance of the glyphs in the 'Chord symbols' range (U+E870–U+E87F)
– Added new 'Chord symbol accidentals' range (U+ED60-U+ED66)
– BEWARE: Renumbered the optional glyphs from U+F400 upwards; many optional glyphs have moved
31 May 2017 (Daniel Spreadbury) Bravura 1.215
– Added optical variants for some chord symbols glyphs, e.g. +/- for augmented/diminished chord quality
3 June 2017 (Daniel Spreadbury) Bravura 1.216
– Added optical variants for chord symbol accidentals shown at smaller sizes
18 July 2017 (Daniel Spreadbury) Bravura 1.217
– Improved the shape and stem connection data of glyphs in the 'Shape note noteheads' range (U+E1B0–U+E1CF)
9 August 2017 (Daniel Spreadbury) Bravura 1.218
– Added new glyphs to the 'Fingering' range, with digits between 6 and 9, parentheses, brackets, and middle dot separator
10 August 2017 (Daniel Spreadbury) Bravura 1.219
– Improved the shape and stem connection data of glyphs in the 'Shape note noteheads' range (U+E1B0–U+E1CF)
16 August 2017 (Daniel Spreadbury) Bravura 1.220
– Increased the size of black and half noteheads in 'Shape note noteheads' range (U+E1B0–U+E1CF)
25 October 2017 (Daniel Spreadbury) Bravura 1.250
– Added new 'Kahnotation' range, with thanks to Matthew Dougherty, Sam Katz and Sam Weber (U+EDA0–U+EDF1)
– Added new 'German organ tablature' range, with thanks to John McKean (U+EE00–U+EE3F)
– Added new 'Clefs supplement' range, including new universal Indian drum notation clef (U+ED70)
– Added new 'Fingering supplement' range, with italic fingering digits, parentheses and brackets (U+ED80-U+ED8D)
– Added more separators for brass fingering (U+ED2D–U+ED2E) to 'Fingering' range
– Added pictBeaterMalletDown (U+E7EC), pictBeaterBrassMalletsRight (U+E7ED), pictBeaterBrassMalletsLeft (U+E7EE), pictTriangleBeaterPlain (U+E7EF) to 'Beaters pictograms' range
– Added vocalHalbGesungen (semi-sprechgesang) to 'Vocal techniques' range (U+E64B)
– Added separate glyphs for upper dot, lower dot and central slash (U+E503–U+E505) to 'Bar repeats' range, to allow construction of bar repeats for arbitrary number of bars
– Added lyricsTextRepeat glyph (U+E555) to 'Lyrics' range
– Added one-handed roll (U+E233) and double lateral roll (U+E234) for mallet percussion, popularised by Leigh Howard Stevens, to 'Tremolos' range
7 November 2017 (Daniel Spreadbury) Bravura 1.251
– Resized csymAugmented and csymMinor
– Adjusted the side bearings of noteheads whose stem attachment points should be offset from the edge of the glyph's bounding box
14 November 2017 (Daniel Spreadbury) Bravura Text 1.252
– Corrected scaling for chord symbols glyphs in Bravura Text
11 December 2017 (Daniel Spreadbury) Bravura 1.260
– Added new stylistic set (ss08) for oversized versions of the 'Slash notehead' range
16 December 2017 (Daniel Spreadbury) Bravura Text 1.261
– Corrected scaling for chord symbols standard accidentals glyphs in Bravura Text
23 February 2018 (Daniel Spreadbury) Bravura 1.270
– Expanded 'Large, narrow sans serif time signatures' stylistic set (ss04) to complete 'Time signatures' and 'Time signatures supplement' ranges
– Added new 'Large, narrow bold serif time signatures' stylistic set (ss09)
26 February 2018 (Daniel Spreadbury) Bravura 1.271
– Resized 'Large, narrow sans serif time signatures' stylistic set (ss04) glyphs to give them the same scale factor as the other time signatures glyphs
29 April 2018 (Daniel Spreadbury) Bravura 1.272
– Improved 'Large, narrow sans serif time signatures' stylistic set (ss04) glyphs to make the forms more condensed
29 January 2019 (Daniel Spreadbury) Bravura 1.276 / Bravura Text 1.277
– Fixed the scale factor for optical variants for chord symbol accidentals
31 August 2019 (Daniel Spreadbury) Bravura 1.31 / Bravura Text 1.31
– New fingeringQLower (U+ED8E) and fingeringSLower (U+ED8F) glyphs in the 'Fingering supplement' range
6 December 2019 (Daniel Spreadbury) Bravura 1.32
– Reduced height of accidentalBracketLeft (U+E26C) and accidentalBracketRight (U+E26D)
– Corrected registration of a number of glyphs in the 'Extended Helmholtz-Ellis Just Intonation accidentals' range (U+E2DF, U+E2E6, U+E2E7, U+E2E8, U+E2E9, U+E2F7, U+E2F8, U+E2EB).
18 March 2020 (Daniel Spreadbury) Bravura 1.34
– Swapped direction of wiggleArpeggiatoDownArrow (U+EAAE) and wiggleArpeggiatoDownSwash (U+EAAC)
27 March 2020 (Daniel Spreadbury) Bravura 1.35
– Added figbassTripleFlat (U+ECC1) and figbassTripleSharp (U+ECC2)
1 April 2020 (Daniel Spreadbury) Bravura 1.36
– Reduced size of accidentals in 'Figured bass' and 'Figured bass supplement' range to match published editions more closely
3 May 2020 (Daniel Spreadbury) Bravura 1.37
– Improved shape of accidentals in 'Figured bass' and 'Figured bass supplement' range, reducing the length of ascenders and descenders and increasing the size of the counters
– Improved the design of figBass4Raised (U+EA56) to make the vertical stroke more prominent, aiding legibility at small sizes
25 June 2020 (Daniel Spreadbury) Bravura 1.38
– Added new stylistic set (ss10) for accidentals for figured bass with longer ascenders and descenders
– Improved the shape of the tips of each of the up- and down-stem flags in the 'Flags' range (U+E240–U+E251)
– Improved the shape of ornamentTrill (U+E566) and ornamentShortTrill (U+E56C)
30 June 2020 (Daniel Spreadbury) Bravura 1.39
– Reduced size of accidentals in stylistic set ss10 to match published editions more closely
29 January 2021 (Daniel Spreadbury) Bravura 1.392
– Added headless notes (U+E204–U+E20A) to 'Beamed groups of notes' range
– Added glyphs to new 'Scale degrees' range (U+EF00–U+EF07)
– Added glyphs in new 'Note name noteheads supplement' range (U+EEE0–U+EEFF)
– Added mensuralWhiteSemibrevis (U+E962) to 'Medieval and Renaissance individual notes' range
– Added guitar10, guitar11, guitar12, guitar13 (U+E84A–U+E84D) to 'Guitar' range
– Added glyphs in 'Medieval and Renaissance prolations supplement' (U+EE90–U+EE94)
– Added Cowell's noteheads for irrational durations (U+EEA1–U+EEB5) to 'Noteheads supplement' range
– Added noteheadNancarrowSine (U+EEA0) in 'Noteheads supplement' range
– Added arpeggiato (U+E63C) to 'Plucked techniques' range
– Add caesuraSingleStroke (U+E4D7) to the 'Holds and pauses' range
– Added Alois Hába's set of accidentals for 24-EDO quarter-tones (U+EE63–U+EE69) to the 'Other accidentals supplement' range
– Added 'Chop (percussive bowing) notation' range (U+EE80–U+EE8F)
– Added swissRudimentsNoteheadBlackFlam (U+EE70), swissRudimentsNoteheadHalfFlam (U+EE71), swissRudimentsNoteheadBlackDouble (U+EE72), swissRudimentsNoteheadHalfDouble (U+EE73) to the new 'Techniques noteheads' range
– Changed registration of fretboardFilledCircle (U+E858), fretboardX (U+E859) and fretboardO (U+E85A) so that they are centred vertically and horizontally around the origin
– Added ups and downs accidentals (U+EE60–U+EE63) to new 'Other accidentals supplement' range
– Added stylistic alternates for U+E4A0 and U+E4A1, Rossini accent above and below
– Added 'Extended Helmholtz-Ellis accidentals (just intonation) supplement' range (U+EE50–U+EE5F); revised appearance of accidentalCombiningLower31Schisma (U+E2EC) and accidentalCombiningRaise31Schisma (U+E2ED)
– Replaced Sagittal outlines with those optimized by Douglas Blumeyer for design space of 1000 fu per em. Changed side bearings of accSagittalShaftUp (U+E3F0) and accSagittalShaftDown (U+E3F1)
– Add kerning pairs for new Sagittal glyphs (U+E3F4–U+E40B)
– Added glyphs to the 'Olympian Sagittal extension (extreme precision) accidental diacritics' (U+E3F4–U+E3F7) and 'Magrathean Sagittal extension (insane precision) accidental diacritics' (U+E3F8–U+E41F) ranges of Sagittal accidentals.
9 February 2021 (Daniel Spreadbury) Bravura Text 1.393
– Corrected style name of Bravura Text to 'Regular' from incorrect 'Normal'
================================================
FILE: redist/OFL-FAQ.txt
================================================
OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL)
Version 1.1-update6 - December 2020
The OFL FAQ is copyright (c) 2005-2020 SIL International.
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
(See http://scripts.sil.org/OFL for updates)
CONTENTS OF THIS FAQ
1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
2 USING OFL FONTS FOR WEB PAGES AND ONLINE WEB FONT SERVICES
3 MODIFYING OFL-LICENSED FONTS
4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL
5 CHOOSING RESERVED FONT NAMES
6 ABOUT THE FONTLOG
7 MAKING CONTRIBUTIONS TO OFL PROJECTS
8 ABOUT THE LICENSE ITSELF
9 ABOUT SIL INTERNATIONAL
APPENDIX A - FONTLOG EXAMPLE
1 USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
1.1 Can I use the fonts for a book or other print publication, to create logos or other graphics or even to manufacture objects based on their outlines?
Yes. You are very welcome to do so. Authors of fonts released under the OFL allow you to use their font software as such for any kind of design work. No additional license or permission is required, unlike with some other licenses. Some examples of these uses are: logos, posters, business cards, stationery, video titling, signage, t-shirts, personalised fabric, 3D-printed/laser-cut shapes, sculptures, rubber stamps, cookie cutters and lead type.
1.1.1 Does that restrict the license or distribution of that artwork?
No. You remain the author and copyright holder of that newly derived graphic or object. You are simply using an open font in the design process. It is only when you redistribute, bundle or modify the font itself that other conditions of the license have to be respected (see below for more details).
1.1.2 Is any kind of acknowledgement required?
No. Font authors may appreciate being mentioned in your artwork's acknowledgements alongside the name of the font, possibly with a link to their website, but that is not required.
1.2 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions and repositories?
Yes! Fonts licensed under the OFL can be freely included alongside other software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are typically aggregated with, not merged into, existing software, there is little need to be concerned about incompatibility with existing software licenses. You may also repackage the fonts and the accompanying components in a .rpm or .deb package (or other similar package formats or installers) and include them in distribution CD/DVDs and online repositories. (Also see section 5.9 about rebuilding from source.)
1.3 I want to distribute the fonts with my program. Does this mean my program also has to be Free/Libre and Open Source Software?
No. Only the portions based on the Font Software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well.
1.4 Can I sell a software package that includes these fonts?
Yes, you can do this with both the Original Version and a Modified Version of the fonts. Examples of bundling made possible by the OFL would include: word processors, design and publishing applications, training and educational software, games and entertainment software, mobile device applications, etc.
1.5 Can I include the fonts on a CD of freeware or commercial fonts?
Yes, as long some other font or software is also on the disk, so the OFL font is not sold by itself.
1.6 Why won't the OFL let me sell the fonts alone?
The intent is to keep people from making money by simply redistributing the fonts. The only people who ought to profit directly from the fonts should be the original authors, and those authors have kindly given up potential direct income to distribute their fonts under the OFL. Please honour and respect their contribution!
1.7 What about sharing OFL fonts with friends on a CD, DVD or USB stick?
You are very welcome to share open fonts with friends, family and colleagues through removable media. Just remember to include the full font package, including any copyright notices and licensing information as available in OFL.txt. In the case where you sell the font, it has to come bundled with software.
1.8 Can I host the fonts on a web site for others to use?
Yes, as long as you make the full font package available. In most cases it may be best to point users to the main site that distributes the Original Version so they always get the most recent stable and complete version. See also discussion of web fonts in Section 2.
1.9 Can I host the fonts on a server for use over our internal network?
Yes. If the fonts are transferred from the server to the client computer by means that allow them to be used even if the computer is no longer attached to the network, the full package (copyright notices, licensing information, etc.) should be included.
1.10 Does the full OFL license text always need to accompany the font?
The only situation in which an OFL font can be distributed without the text of the OFL (either in a separate file or in font metadata), is when a font is embedded in a document or bundled within a program. In the case of metadata included within a font, it is legally sufficient to include only a link to the text of the OFL on http://scripts.sil.org/OFL, but we strongly recommend against this. Most modern font formats include metadata fields that will accept the full OFL text, and full inclusion increases the likelihood that users will understand and properly apply the license.
1.11 What do you mean by 'embedding'? How does that differ from other means of distribution?
By 'embedding' we mean inclusion of the font in a document or file in a way that makes extraction (and redistribution) difficult or clearly discouraged. In many cases the names of embedded fonts might also not be obvious to those reading the document, the font data format might be altered, and only a subset of the font - only the glyphs required for the text - might be included. Any other means of delivering a font to another person is considered 'distribution', and needs to be accompanied by any copyright notices and licensing information available in OFL.txt.
1.12 So can I embed OFL fonts in my document?
Yes, either in full or a subset. The restrictions regarding font modification and redistribution do not apply, as the font is not intended for use outside the document.
1.13 Does embedding alter the license of the document itself?
No. Referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL.
1.14 If OFL fonts are extracted from a document in which they are embedded (such as a PDF file), what can be done with them? Is this a risk to author(s)?
The few utilities that can extract fonts embedded in a PDF will typically output limited amounts of outlines - not a complete font. To create a working font from this method is much more difficult and time consuming than finding the source of the original OFL font. So there is little chance that an OFL font would be extracted and redistributed inappropriately through this method. Even so, copyright laws address any misrepresentation of authorship. All Font Software released under the OFL and marked as such by the author(s) is intended to remain under this license regardless of the distribution method, and cannot be redistributed under any other license. We strongly discourage any font extraction - we recommend directly using the font sources instead - but if you extract font outlines from a document, please be considerate: respect the work of the author(s) and the licensing model.
1.15 What about distributing fonts with a document? Within a compressed folder structure? Is it distribution, bundling or embedding?
Certain document formats may allow the inclusion of an unmodified font within their file structure which may consist of a compressed folder containing the various resources forming the document (such as pictures and thumbnails). Including fonts within such a structure is understood as being different from embedding but rather similar to bundling (or mere aggregation) which the license explicitly allows. In this case the font is conveyed unchanged whereas embedding a font usually transforms it from the original format. The OFL does not allow anyone to extract the font from such a structure to then redistribute it under another license. The explicit permission to redistribute and embed does not cancel the requirement for the Font Software to remain under the license chosen by its author(s). Even if the font travels inside the document as one of its assets, it should not lose its authorship information and licensing.
1.16 What about ebooks shipping with open fonts?
The requirements differ depending on whether the fonts are linked, embedded or distributed (bundled or aggregated). Some ebook formats use web technologies to do font linking via @font-face, others are designed for font embedding, some use fonts distributed with the document or reading software, and a few rely solely on the fonts already present on the target system. The license requirements depend on the type of inclusion as discussed in 1.15.
1.17 Can Font Software released under the OFL be subject to URL-based access restrictions methods or DRM (Digital Rights Management) mechanisms?
Yes, but these issues are out-of-scope for the OFL. The license itself neither encourages their use nor prohibits them since such mechanisms are not implemented in the components of the Font Software but through external software. Such restrictions are put in place for many different purposes corresponding to various usage scenarios. One common example is to limit potentially dangerous cross-site scripting attacks. However, in the spirit of libre/open fonts and unrestricted writing systems, we strongly encourage open sharing and reuse of OFL fonts, and the establishment of an environment where such restrictions are unnecessary. Note that whether you wish to use such mechanisms or you prefer not to, you must still abide by the rules set forth by the OFL when using fonts released by their authors under this license. Derivative fonts must be licensed under the OFL, even if they are part of a service for which you charge fees and/or for which access to source code is restricted. You may not sell the fonts on their own - they must be part of a larger software package, bundle or subscription plan. For example, even if the OFL font is distributed in a software package or via an online service using a DRM mechanism, the user would still have the right to extract that font, use, study, modify and redistribute it under the OFL.
1.18 I've come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions?
Consult the copyright statement(s) in the license for ways to contact the original authors. Consult the FONTLOG (see section 6 for more details and examples) for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgement section. Please consider using the Original Versions of the fonts whenever possible.
1.19 What do you mean in condition 4 of the OFL's permissions and conditions? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement?
The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying "designed by ...". However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a grey area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not.
1.20 I'm writing a small app for mobile platforms, do I need to include the whole package?
If you bundle a font under the OFL with your mobile app you must comply with the terms of the license. At a minimum you must include the copyright statement, the license notice and the license text. A mention of this information in your About box or Changelog, with a link to where the font package is from, is good practice, and the extra space needed to carry these items is very small. You do not, however, need to include the full contents of the font package - only the fonts you use and the copyright and license that apply to them. For example, if you only use the regular weight in your app, you do not need to include the italic and bold versions.
1.21 What about including OFL fonts by default in my firmware or dedicated operating system?
Many such systems are restricted and turned into appliances so that users cannot study or modify them. Using open fonts to increase quality and language coverage is a great idea, but you need to be aware that if there is a way for users to extract fonts you cannot legally prevent them from doing that. The fonts themselves, including any changes you make to them, must be distributed under the OFL even if your firmware has a more restrictive license. If you do transform the fonts and change their formats when you include them in your firmware you must respect any names reserved by the font authors via the RFN mechanism and pick your own font name. Alternatively if you directly add a font under the OFL to the font folder of your firmware without modifying or optimizing it you are simply bundling the font like with any other software collection, and do not need to make any further changes.
1.22 Can I make and publish CMS themes or templates that use OFL fonts? Can I include the fonts themselves in the themes or templates? Can I sell the whole package?
Yes, you are very welcome to integrate open fonts into themes and templates for your preferred CMS and make them more widely available. Remember that you can only sell the fonts and your CMS add-on as part of a software bundle. (See 1.4 for details and examples about selling bundles).
1.23 Can OFL fonts be included in services that deliver fonts to the desktop from remote repositories? Even if they contain both OFL and non-OFL fonts?
Yes. Some foundries have set up services to deliver fonts to subscribers directly to desktops from their online repositories; similarly, plugins are available to preview and use fonts directly in your design tool or publishing suite. These services may mix open and restricted fonts in the same channel, however they should make a clear distinction between them to users. These services should also not hinder users (such as through DRM or obfuscation mechanisms) from extracting and using the OFL fonts in other environments, or continuing to use OFL fonts after subscription terms have ended, as those uses are specifically allowed by the OFL.
1.24 Can services that provide or distribute OFL fonts restrict my use of them?
No. The terms of use of such services cannot replace or restrict the terms of the OFL, as that would be the same as distributing the fonts under a different license, which is not allowed. You are still entitled to use, modify and redistribute them as the original authors have intended outside of the sole control of that particular distribution channel. Note, however, that the fonts provided by these services may differ from the Original Versions.
2 USING OFL FONTS FOR WEBPAGES AND ONLINE WEB FONT SERVICES
NOTE: This section often refers to a separate paper on 'Web Fonts & RFNs'. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs
2.1 Can I make webpages using these fonts?
Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended. Your three best options are:
- referring directly in your stylesheet to open fonts which may be available on the user's system
- providing links to download the full package of the font - either from your own website or from elsewhere - so users can install it themselves
- using @font-face to distribute the font directly to browsers. This is recommended and explicitly allowed by the licensing model because it is distribution. The font file itself is distributed with other components of the webpage. It is not embedded in the webpage but referenced through a web address which will cause the browser to retrieve and use the corresponding font to render the webpage (see 1.11 and 1.15 for details related to embedding fonts into documents). As you take advantage of the @font-face cross-platform standard, be aware that web fonts are often tuned for a web environment and not intended for installation and use outside a browser. The reasons in favour of using web fonts are to allow design of dynamic text elements instead of static graphics, to make it easier for content to be localized and translated, indexed and searched, and all this with cross-platform open standards without depending on restricted extensions or plugins. You should check the CSS cascade (the order in which fonts are being called or delivered to your users) when testing.
2.2 Can I make and use WOFF (Web Open Font Format) versions of OFL fonts?
Yes, but you need to be careful. A change in font format normally is considered modification, and Reserved Font Names (RFNs) cannot be used. Because of the design of the WOFF format, however, it is possible to create a WOFF version that is not considered modification, and so would not require a name change. You are allowed to create, use and distribute a WOFF version of an OFL font without changing the font name, but only if:
- the original font data remains unchanged except for WOFF compression, and
- WOFF-specific metadata is either omitted altogether or present and includes, unaltered, the contents of all equivalent metadata in the original font.
If the original font data or metadata is changed, or the WOFF-specific metadata is incomplete, the font must be considered a Modified Version, the OFL restrictions would apply and the name of the font must be changed: any RFNs cannot be used and copyright notices and licensing information must be included and cannot be deleted or modified. You must come up with a unique name - we recommend one corresponding to your domain or your particular web application. Be aware that only the original author(s) can use RFNs. This is to prevent collisions between a derivative tuned to your audience and the original upstream version and so to reduce confusion.
Please note that most WOFF conversion tools and online services do not meet the two requirements listed above, and so their output must be considered a Modified Version. So be very careful and check to be sure that the tool or service you're using is compressing unchanged data and completely and accurately reflecting the original font metadata.
2.3 What about other web font formats such as EOT/EOTLite/CWT/etc.?
In most cases these formats alter the original font data more than WOFF, and do not completely support appropriate metadata, so their use must be considered modification and RFNs may not be used. However, there may be certain formats or usage scenarios that may allow the use of RFNs. See http://scripts.sil.org/OFL_web_fonts_and_RFNs
2.4 Can I make OFL fonts available through web font online services?
Yes, you are welcome to include OFL fonts in online web font services as long as you properly meet all the conditions of the license. The origin and open status of the font should be clear among the other fonts you are hosting. Authorship, copyright notices and license information must be sufficiently visible to your users or subscribers so they know where the font comes from and the rights granted by the author(s). Make sure the font file contains the needed copyright notice(s) and licensing information in its metadata. Please double-check the accuracy of every field to prevent contradictory information. Other font formats, including EOT/EOTLite/CWT and superior alternatives like WOFF, already provide fields for this information. Remember that if you modify the font within your library or convert it to another format for any reason the OFL restrictions apply and you need to change the names accordingly. Please respect the author's wishes as expressed in the OFL and do not misrepresent original designers and their work. Don't lump quality open fonts together with dubious freeware or public domain fonts. Consider how you can best work with the original designers and foundries, support their efforts and generate goodwill that will benefit your service. (See 1.17 for details related to URL-based access restrictions methods or DRM mechanisms).
2.5 Some web font formats and services provide ways of "optimizing" the font for a particular website or web application; is that allowed?
Yes, it is permitted, but remember that these optimized versions are Modified Versions and so must follow OFL requirements like appropriate renaming. Also you need to bear in mind the other important parameters beyond compression, speed and responsiveness: you need to consider the audience of your particular website or web application, as choosing some optimization parameters may turn out to be less than ideal for them. Subsetting by removing certain glyphs or features may seriously limit functionality of the font in various languages that your users expect. It may also introduce degradation of quality in the rendering or specific bugs on the various target platforms compared to the original font from upstream. In other words, remember that one person's optimized font may be another person's missing feature. Various advanced typographic features (OpenType, Graphite or AAT) are also available through CSS and may provide the desired effects without the need to modify the font.
2.6 Is subsetting a web font considered modification?
Yes. Removing any parts of the font when delivering a web font to a browser, including unused glyphs and smart font code, is considered modification. This is permitted by the OFL but would not normally allow the use of RFNs. Some newer subsetting technologies may be able to subset in a way that allows users to effectively have access to the complete font, including smart font behaviour. See 2.8 and http://scripts.sil.org/OFL_web_fonts_and_RFNs
2.7 Are there any situations in which a modified web font could use RFNs?
Yes. If a web font is optimized only in ways that preserve Functional Equivalence (see 2.8), then it may use RFNs, as it reasonably represents the Original Version and respects the intentions of the author(s) and the main purposes of the RFN mechanism (avoids collisions, protects authors, minimizes support, encourages derivatives). However this is technically very difficult and often impractical, so a much better scenario is for the web font service or provider to sign a separate agreement with the author(s) that allows the use of RFNs for Modified Versions.
2.8 How do you know if an optimization to a web font preserves Functional Equivalence?
Functional Equivalence is described in full in the 'Web fonts and RFNs' paper at http://scripts.sil.org/OFL_web_fonts_and_RFNs, in general, an optimized font is deemed to be Functionally Equivalent (FE) to the Original Version if it:
- Supports the same full character inventory. If a character can be properly displayed using the Original Version, then that same character, encoded correctly on a web page, will display properly.
- Provides the same smart font behavior. Any dynamic shaping behavior that works with the Original Version should work when optimized, unless the browser or environment does not support it. There does not need to be guaranteed support in the client, but there should be no forced degradation of smart font or shaping behavior, such as the removal or obfuscation of OpenType, Graphite or AAT tables.
- Presents text with no obvious degradation in visual quality. The lettershapes should be equally (or more) readable, within limits of the rendering platform.
- Preserves original author, project and license metadata. At a minimum, this should include: Copyright and authorship; The license as stated in the Original Version, whether that is the full text of the OFL or a link to the web version; Any RFN declarations; Information already present in the font or documentation that points back to the Original Version, such as a link to the project or the author's website.
If an optimized font meets these requirements, and so is considered to be FE, then it's very likely that the original author would feel that the optimized font is a good and reasonable equivalent. If it falls short of any of these requirements, the optimized font does not reasonably represent the Original Version, and so should be considered to be a Modified Version. Like other Modified Versions, it would not be allowed to use any RFNs and you simply need to pick your own font name.
2.9 Isn't use of web fonts another form of embedding?
No. Unlike embedded fonts in a PDF, web fonts are not an integrated part of the document itself. They are not specific to a single document and are often applied to thousands of documents around the world. The font data is not stored alongside the document data and often originates from a different location. The ease by which the web fonts used by a document may be identified and downloaded for desktop use demonstrates that they are philosophically and technically separate from the web pages that specify them. See http://scripts.sil.org/OFL_web_fonts_and_RFNs
2.10 So would it be better to not use RFNs at all if you want your font to be distributed by a web fonts service?
No. Although the OFL does not require authors to use RFNs, the RFN mechanism is an important part of the OFL model and completely compatible with web font services. If that web font service modifies the fonts, then the best solution is to sign a separate agreement for the use of any RFNs. It is perfectly valid for an author to not declare any RFNs, but before they do so they need to fully understand the benefits they are giving up, and the overall negative effect of allowing many different versions bearing the same name to be widely distributed. As a result, we don't generally recommend it.
2.11 What should an agreement for the use of RFNs say? Are there any examples?
There is no prescribed format for this agreement, as legal systems vary, and no recommended examples. Authors may wish to add specific clauses to further restrict use, require author review of Modified Versions, establish user support mechanisms or provide terms for ending the agreement. Such agreements are usually not public, and apply only to the main parties. However, it would be very beneficial for web font services to clearly state when they have established such agreements, so that the public understands clearly that their service is operating appropriately.
See the separate paper on 'Web Fonts & RFNs' for in-depth discussion of issues related to the use of RFNs for web fonts. This is available at http://scripts.sil.org/OFL_web_fonts_and_RFNs
3 MODIFYING OFL-LICENSED FONTS
3.1 Can I change the fonts? Are there any limitations to what things I can and cannot change?
You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could put additional information into it that covers your contribution. See the placeholders in the OFL header template for recommendations on where to add your own statements. (Remember that, when authors have reserved names via the RFN mechanism, you need to change the internal names of the font to your own font name when making your modified version even if it is just a small change.)
3.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine?
Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license.
3.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs or OpenType/Graphite/AAT code, can I sell the enhanced font?
Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package.
3.4 Can I pay someone to enhance the fonts for my use and distribution?
Yes. This is a good way to fund the further development of the fonts. Keep in mind, however, that if the font is distributed to others it must be under the OFL. You won't be able to recover your investment by exclusively selling the font, but you will be making a valuable contribution to the community. Please remember how you have benefited from the contributions of others.
3.5 I need to make substantial revisions to the font to make it work with my program. It will be a lot of work, and a big investment, and I want to be sure that it can only be distributed with my program. Can I restrict its use?
No. If you redistribute a Modified Version of the font it must be under the OFL. You may not restrict it in any way beyond what the OFL permits and requires. This is intended to ensure that all released improvements to the fonts become available to everyone. But you will likely get an edge over competitors by being the first to distribute a bundle with the enhancements. Again, please remember how you have benefited from the contributions of others.
3.6 Do I have to make any derivative fonts (including extended source files, build scripts, documentation, etc.) publicly available?
No, but please consider sharing your improvements with others. You may find that you receive in return more than what you gave.
3.7 If a trademark is claimed in the OFL font, does that trademark need to remain in modified fonts?
Yes. Any trademark notices must remain in any derivative fonts to respect trademark laws, but you may add any additional trademarks you claim, officially registered or not. For example if an OFL font called "Foo" contains a notice that "Foo is a trademark of Acme", then if you rename the font to "Bar" when creating a Modified Version, the new trademark notice could say "Foo is a trademark of Acme Inc. - Bar is a trademark of Roadrunner Technologies Ltd.". Trademarks work alongside the OFL and are not subject to the terms of the licensing agreement. The OFL does not grant any rights under trademark law. Bear in mind that trademark law varies from country to country and that there are no international trademark conventions as there are for copyright. You may need to significantly invest in registering and defending a trademark for it to remain valid in the countries you are interested in. This may be costly for an individual independent designer.
3.8 If I commit changes to a font (or publish a branch in a DVCS) as part of a public open source software project, do I have to change the internal font names?
Only if there are declared RFNs. Making a public commit or publishing a public branch is effectively redistributing your modifications, so any change to the font will require that you do not use the RFNs. Even if there are no RFNs, it may be useful to change the name or add a suffix indicating that a particular version of the font is still in development and not released yet. This will clearly indicate to users and fellow designers that this particular font is not ready for release yet. See section 5 for more details.
4 LICENSING YOUR ORIGINAL FONTS UNDER THE OFL
4.1 Can I use the SIL OFL for my own fonts?
Yes! We heartily encourage everyone to use the OFL to distribute their own original fonts. It is a carefully constructed license that allows great freedom along with enough artistic integrity protection for the work of the authors as well as clear rules for other contributors and those who redistribute the fonts. The licensing model is used successfully by various organisations, both for-profit and not-for-profit, to release fonts of varying levels of scope and complexity.
4.2 What do I have to do to apply the OFL to my font?
If you want to release your fonts under the OFL, we recommend you do the following:
4.2.1 Put your copyright and Reserved Font Names information at the beginning of the main OFL.txt file in place of the dedicated placeholders (marked with the <> characters). Include this file in your release package.
4.2.2 Put your copyright and the OFL text with your chosen Reserved Font Name(s) into your font files (the copyright and license fields). A link to the OFL text on the OFL web site is an acceptable (but not recommended) alternative. Also add this information to any other components (build scripts, glyph databases, documentation, test files, etc). Accurate metadata in your font files is beneficial to you as an increasing number of applications are exposing this information to the user. For example, clickable links can bring users back to your website and let them know about other work you have done or services you provide. Depending on the format of your fonts and sources, you can use template human-readable headers or machine-readable metadata. You should also double-check that there is no conflicting metadata in the font itself contradicting the license, such as the fstype bits in the os2 table or fields in the name table.
4.2.3 Write an initial FONTLOG.txt for your font and include it in the release package (see Section 6 and Appendix A for details including a template).
4.2.4 Include the relevant practical documentation on the license by adding the current OFL-FAQ.txt file in your package.
4.2.5 If you wish you can use the OFL graphics (http://scripts.sil.org/OFL_logo) on your website.
4.3 Will you make my font OFL for me?
We won't do the work for you. We can, however, try to answer your questions, unfortunately we do not have the resources to review and check your font packages for correct use of the OFL. We recommend you turn to designers, foundries or consulting companies with experience in doing open font design to provide this service to you.
4.4 Will you distribute my OFL font for me?
No, although if the font is of sufficient quality and general interest we may include a link to it on our partial list of OFL fonts on the OFL web site. You may wish to consider other open font catalogs or hosting services, such as the Unifont Font Guide (http://unifont.org/fontguide), The League of Movable Type (http://theleagueofmovabletype.com) or the Open Font Library (http://openfontlibrary.org/), which despite the name has no direct relationship to the OFL or SIL. We do not endorse any particular catalog or hosting service - it is your responsibility to determine if the service is right for you and if it treats authors with fairness.
4.5 Why should I use the OFL for my fonts?
- to meet needs for fonts that can be modified to support lesser-known languages
- to provide a legal and clear way for people to respect your work but still use it (and reduce piracy)
- to involve others in your font project
- to enable your fonts to be expanded with new weights and improved writing system/language support
- to allow more technical font developers to add features to your design (such as OpenType, Graphite or AAT support)
- to renew the life of an old font lying on your hard drive with no business model
- to allow your font to be included in Libre Software operating systems like Ubuntu
- to give your font world status and wide, unrestricted distribution
- to educate students about quality typeface and font design
- to expand your test base and get more useful feedback
- to extend your reach to new markets when users see your metadata and go to your website
- to get your font more easily into one of the web font online services
- to attract attention for your commercial fonts
- to make money through web font services
- to make money by bundling fonts with applications
- to make money adjusting and extending existing open fonts
- to get a better chance that foundations/NGOs/charities/companies who commission fonts will pick you
- to be part of a sharing design and development community
- to give back and contribute to a growing body of font sources
5 CHOOSING RESERVED FONT NAMES
5.1 What are Reserved Font Names?
These are font names, or portions of font names, that the author has chosen to reserve for use only with the Original Version of the font, or for Modified Version(s) created by the original author.
5.2 Why can't I use the Reserved Font Names in my derivative font names? I'd like people to know where the design came from.
The best way to acknowledge the source of the design is to thank the original authors and any other contributors in the files that are distributed with your revised font (although no acknowledgement is required). The FONTLOG is a natural place to do this. Reserved Font Names ensure that the only fonts that have the original names are the unmodified Original Versions. This allows designers to maintain artistic integrity while allowing collaboration to happen. It eliminates potential confusion and name conflicts. When choosing a name, be creative and avoid names that reuse almost all the same letters in the same order or sound like the original. It will help everyone if Original Versions and Modified Versions can easily be distinguished from one another and from other derivatives. Any substitution and matching mechanism is outside the scope of the license.
5.3 What do you mean by "primary name as presented to the user"? Are you referring to the font menu name?
Yes, this applies to the font menu name and other mechanisms that specify a font in a document. It would be fine, however, to keep a text reference to the original fonts in the description field, in your modified source file or in documentation provided alongside your derivative as long as no one could be confused that your modified source is the original. But you cannot use the Reserved Font Names in any way to identify the font to the user (unless the Copyright Holder(s) allow(s) it through a separate agreement). Users who install derivatives (Modified Versions) on their systems should not see any of the original Reserved Font Names in their font menus, for example. Again, this is to ensure that users are not confused and do not mistake one font for another and so expect features only another derivative or the Original Version can actually offer.
5.4 Am I not allowed to use any part of the Reserved Font Names?
You may not use individual words from the Reserved Font Names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if "Foobar" was a Reserved Font Name, you would be allowed to use "Foo" or "bar", although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute.
5.5 So what should I, as an author, identify as Reserved Font Names?
Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called "Foobar Sans" would declare "Foobar" as a Reserved Font Name, but not "Sans", as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words for simplicity and legibility. A font called "Flowing River" should have Reserved Font Names "Flowing" and "River", not "Flowing River". You also need to be very careful about reserving font names which are already linked to trademarks (whether registered or not) which you do not own.
5.6 Do I, as an author, have to identify any Reserved Font Names?
No. RFNs are optional and not required, but we encourage you to use them. This is primarily to avoid confusion between your work and Modified Versions. As an author you can release a font under the OFL and not declare any Reserved Font Names. There may be situations where you find that using no RFNs and letting your font be changed and modified - including any kind of modification - without having to change the original name is desirable. However you need to be fully aware of the consequences. There will be no direct way for end-users and other designers to distinguish your Original Version from many Modified Versions that may be created. You have to trust whoever is making the changes and the optimizations to not introduce problematic changes. The RFNs you choose for your own creation have value to you as an author because they allow you to maintain artistic integrity and keep some control over the distribution channel to your end-users. For discussion of RFNs and web fonts see section 2.
5.7 Are any names (such as the main font name) reserved by default?
No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement(s).
5.8 Is there any situation in which I can use Reserved Font Names for a Modified Version?
The Copyright Holder(s) can give certain trusted parties the right to use any of the Reserved Font Names through separate written agreements. For example, even if "Foobar" is a RFN, you could write up an agreement to give company "XYZ" the right to distribute a modified version with a name that includes "Foobar". This allows for freedom without confusion. The existence of such an agreement should be made as clear as possible to downstream users and designers in the distribution package and the relevant documentation. They need to know if they are a party to the agreement or not and what they are practically allowed to do or not even if all the details of the agreement are not public.
5.9 Do font rebuilds require a name change? Do I have to change the name of the font when my packaging workflow includes a full rebuild from source?
Yes, all rebuilds which change the font data and the smart code are Modified Versions and the requirements of the OFL apply: you need to respect what the Author(s) have chosen in terms of Reserved Font Names. However if a package (or installer) is simply a wrapper or a compressed structure around the final font - leaving them intact on the inside - then no name change is required. Please get in touch with the author(s) and copyright holder(s) to inquire about the presence of font sources beyond the final font file(s) and the recommended build path. That build path may very well be non-trivial and hard to reproduce accurately by the maintainer. If a full font build path is made available by the upstream author(s) please be aware that any regressions and changes you may introduce when doing a rebuild for packaging purposes is your own responsibility as a package maintainer since you are effectively creating a separate branch. You should make it very clear to your users that your rebuilt version is not the canonical one from upstream.
5.10 Can I add other Reserved Font Names when making a derivative font?
Yes. List your additional Reserved Font Names after your additional copyright statement, as indicated with example placeholders at the top of the OFL.txt file. Be sure you do not remove any existing RFNs but only add your own. RFN statements should be placed next to the copyright statement of the relevant author as indicated in the OFL.txt template to make them visible to designers wishing to make their separate version.
6 ABOUT THE FONTLOG
6.1 What is this FONTLOG thing exactly?
It has three purposes: 1) to provide basic information on the font to users and other designers and developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge authors and other contributors. Please use it!
6.2 Is the FONTLOG required?
It is not a requirement of the license, but we strongly recommend you have one.
6.3 Am I required to update the FONTLOG when making Modified Versions?
No, but users, designers and other developers might get very frustrated with you if you don't. People need to know how derivative fonts differ from the original, and how to take advantage of the changes, or build on them. There are utilities that can help create and maintain a FONTLOG, such as the FONTLOG support in FontForge.
6.4 What should the FONTLOG look like?
It is typically a separate text file (FONTLOG.txt), but can take other formats. It commonly includes these four sections:
- brief header describing the FONTLOG itself and name of the font family
- Basic Font Information - description of the font family, purpose and breadth
- ChangeLog - chronological listing of changes
- Acknowledgements - list of authors and contributors with contact information
It could also include other sections, such as: where to find documentation, how to make contributions, information on contributing organizations, source code details, and a short design guide. See Appendix A for an example FONTLOG.
7 MAKING CONTRIBUTIONS TO OFL PROJECTS
7.1 Can I contribute work to OFL projects?
In many cases, yes. It is common for OFL fonts to be developed by a team of people who welcome contributions from the wider community. Contact the original authors for specific information on how to participate in their projects.
7.2 Why should I contribute my changes back to the original authors?
It would benefit many people if you contributed back in response to what you've received. Your contributions and improvements to the fonts and other components could be a tremendous help and would encourage others to contribute as well and 'give back'. You will then benefit from other people's contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute.
7.3 I've made some very nice improvements to the font. Will you consider adopting them and putting them into future Original Versions?
Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes - the use of smart source revision control systems like subversion, mercurial, git or bzr is a good idea. Please follow the recommendations given by the author(s) in terms of preferred source formats and configuration parameters for sending contributions. If this is not indicated in a FONTLOG or other documentation of the font, consider asking them directly. Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting. Keep in mind that some kinds of changes (esp. hinting) may be technically difficult to integrate.
7.4 How can I financially support the development of OFL fonts?
It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version.
8 ABOUT THE LICENSE ITSELF
8.1 I see that this is version 1.1 of the license. Will there be later changes?
Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL.
8.2 Does this license restrict the rights of the Copyright Holder(s)?
No. The Copyright Holder(s) still retain(s) all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a 'basic' version of their font under the OFL, but sell a restricted 'enhanced' version under a different license. They may also choose to release the same font under both the OFL and some other license. Only the Copyright Holder(s) can do this, and doing so does not change the terms of the OFL as it applies to that font.
8.3 Is the OFL a contract or a license?
The OFL is a worldwide license based on international copyright agreements and conventions. It is not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license.
8.4 I really like the terms of the OFL, but want to change it a little. Am I allowed to take ideas and actual wording from the OFL and put them into my own custom license for distributing my fonts?
We strongly recommend against creating your very own unique open licensing model. Using a modified or derivative license will likely cut you off - along with the font(s) under that license - from the community of designers using the OFL, potentially expose you and your users to legal liabilities, and possibly put your work and rights at risk. The OFL went though a community and legal review process that took years of effort, and that review is only applicable to an unmodified OFL. The text of the OFL has been written by SIL (with review and consultation from the community) and is copyright (c) 2005-2017 SIL International. You may re-use the ideas and wording (in part, not in whole) in another non-proprietary license provided that you call your license by another unambiguous name, that you do not use the preamble, that you do not mention SIL and that you clearly present your license as different from the OFL so as not to cause confusion by being too similar to the original. If you feel the OFL does not meet your needs for an open license, please contact us.
8.5 Can I quote from the OFL FAQ?
Yes, SIL gives permission to quote from the OFL FAQ (OFL-FAQ.txt), in whole or in part, provided that the quoted text is:
- unmodified,
- used to help explain the intent of the OFL, rather than cause misunderstanding, and
- accompanied with the following attribution: "From the OFL FAQ (OFL-FAQ.txt), copyright (c) 2005-2020 SIL International. Used by permission. http://scripts.sil.org/OFL-FAQ_web".
8.6 Can I translate the license and the FAQ into other languages?
SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and its use. Making the license very clear and readable has been a key goal for the OFL, but we know that people understand their own language best.
If you are an experienced translator, you are very welcome to translate the OFL and OFL-FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translation ambiguities could be abused and create problems.
SIL gives permission to publish unofficial translations into other languages provided that they comply with the following guidelines:
- Put the following disclaimer in both English and the target language stating clearly that the translation is unofficial:
"This is an unofficial translation of the SIL Open Font License into <language_name>. It was not published by SIL International, and does not legally state the distribution terms for fonts that use the OFL. A release under the OFL is only valid when using the original English text. However, we recognize that this unofficial translation will help users and designers not familiar with English to better understand and use the OFL. We encourage designers who consider releasing their creation under the OFL to read the OFL-FAQ in their own language if it is available. Please go to http://scripts.sil.org/OFL for the official version of the license and the accompanying OFL-FAQ."
- Keep your unofficial translation current and update it at our request if needed, for example if there is any ambiguity which could lead to confusion.
If you start such a unofficial translation effort of the OFL and OFL-FAQ please let us know.
8.7 Does the OFL have an explicit expiration term?
No, the implicit intent of the OFL is that the permissions granted are perpetual and irrevocable.
9 ABOUT SIL INTERNATIONAL
9.1 Who is SIL International and what do they do?
SIL serves language communities worldwide, building their capacity for sustainable language development, by means of research, translation, training and materials development. SIL makes its services available to all without regard to religious belief, political ideology, gender, race, or ethnic background. SIL's members and volunteers share a Christian commitment.
9.2 What does this have to do with font licensing?
The ability to read, write, type and publish in one's own language is one of the most critical needs for millions of people around the world. This requires fonts that are widely available and support lesser-known languages. SIL develops - and encourages others to develop - a complete stack of writing systems implementation components available under open licenses. This open stack includes input methods, smart fonts, smart rendering libraries and smart applications. There has been a need for a common open license that is specifically applicable to fonts and related software (a crucial component of this stack), so SIL developed the SIL Open Font License with the help of the Free/Libre and Open Source Software community.
9.3 How can I contact SIL?
Our main web site is: http://www.sil.org/
Our site about complex scripts is: http://scripts.sil.org/
Information about this license (and contact information) is at: http://scripts.sil.org/OFL
APPENDIX A - FONTLOG EXAMPLE
Here is an example of the recommended format for a FONTLOG, although other formats are allowed.
-----
FONTLOG for the GlobalFontFamily fonts
This file provides detailed information on the GlobalFontFamily Font Software. This information should be distributed along with the GlobalFontFamily fonts and any derivative works.
Basic Font Information
GlobalFontFamily is a Unicode typeface family that supports all languages that use the Latin script and its variants, and could be expanded to support other scripts.
NewWorldFontFamily is based on the GlobalFontFamily and also supports Greek, Hebrew, Cyrillic and Armenian.
More specifically, this release supports the following Unicode ranges...
This release contains...
Documentation can be found at...
To contribute to the project...
ChangeLog
10 December 2010 (Fred Foobar) GlobalFontFamily-devel version 1.4
- fix new build and testing system (bug #123456)
1 August 2008 (Tom Parker) GlobalFontFamily version 1.2.1
- Tweaked the smart font code (Branch merged with trunk version)
- Provided improved build and debugging environment for smart behaviours
7 February 2007 (Pat Johnson) NewWorldFontFamily Version 1.3
- Added Greek and Cyrillic glyphs
7 March 2006 (Fred Foobar) NewWorldFontFamily Version 1.2
- Tweaked contextual behaviours
1 Feb 2005 (Jane Doe) NewWorldFontFamily Version 1.1
- Improved build script performance and verbosity
- Extended the smart code documentation
- Corrected minor typos in the documentation
- Fixed position of combining inverted breve below (U+032F)
- Added OpenType/Graphite smart code for Armenian
- Added Armenian glyphs (U+0531 -> U+0587)
- Released as "NewWorldFontFamily"
1 Jan 2005 (Joe Smith) GlobalFontFamily Version 1.0
- Initial release
Acknowledgements
If you make modifications be sure to add your name (N), email (E), web-address (if you have one) (W) and description (D). This list is in alphabetical order.
N: Jane Doe
E: jane@university.edu
W: http://art.university.edu/projects/fonts
D: Contributor - Armenian glyphs and code
N: Fred Foobar
E: fred@foobar.org
W: http://foobar.org
D: Contributor - misc Graphite fixes
N: Pat Johnson
E: pat@fontstudio.org
W: http://pat.fontstudio.org
D: Designer - Greek & Cyrillic glyphs based on Roman design
N: Tom Parker
E: tom@company.com
W: http://www.company.com/tom/projects/fonts
D: Engineer - original smart font code
N: Joe Smith
E: joe@fontstudio.org
W: http://joe.fontstudio.org
D: Designer - original Roman glyphs
Fontstudio.org is an not-for-profit design group whose purpose is...
Foobar.org is a distributed community of developers...
Company.com is a small business who likes to support community designers...
University.edu is a renowned educational institution with a strong design department...
-----
================================================
FILE: redist/OFL.txt
================================================
Copyright © 2015, Steinberg Media Technologies GmbH (http://www.steinberg.net/),
with Reserved Font Name "Bravura".
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
================================================
FILE: redist/bravura-text.md
================================================
# An introduction to using Bravura Text
*Version 1.1, 30 October 2015*
Bravura Text is a [SMuFL-compliant] [1] font containing musical symbols intended for use in text-based applications such as word processors, text editors, desktop publishers, and it can also be used on the web.
Bravura Text is licensed under the [SIL Open Font License] [2], which means it is free to use, redistribute, and modify, but please do respect the conditions set out in the license.
## Glyph repertoire
Bravura Text is a reference implementation for SMuFL, the Standard Music Font Layout, and as such contains all of the symbols defined in the SMuFL specification. [Download the SMuFL specification] [3] for a complete list of the symbols in Bravura Text, including a description and code point.
SMuFL uses the Private Use Area of Unicode's Basic Multilingual Plane (U+E000 through U+FFFF) to encode all of the included symbols. This means that the symbols cannot be typed by using the alphanumeric keys on your computer's keyboard on their own.
## Setting up for Unicode input
Detailed instructions for how to enable Unicode input on all operating systems are beyond the scope of this document. SIL provides [an excellent page] [4] with links to information and tools for Windows, OS X and Linux. In this document some basic instructions are included, but you may need to refer to other resources for help with your operating system and application of choice.
### Windows
There are multiple ways to type Unicode characters on Windows. Here are three methods you can try:
#### Method 1: hexadecimal input followed by `Alt`
On Windows, some applications, such as Microsoft Word (part of the Microsoft Office suite) and WordPad (included with every Windows installation), have support for converting a typed alphanumeric sequence into a single Unicode character.
The Unicode code point for a G (treble) clef in Bravura Text is U+E050, which is a hexadecimal number (57424 in decimal). To enter this character in Word or WordPad, type `E050` followed by `Alt+X` (hold the `Alt` key and then hit the `X` key). The typed characters **E050** will be replaced by a single character, which may display as an empty rectangle or a rectangle containing **?**. Select this character and change the font to Bravura Text, and the G clef appears.
Although Unicode code points are normally written in the form U+E050, you can ignore the "U+" part when entering the code point in this and the following method.
#### Method 2: `Alt` + hexadecimal input
If the application you are using does not support the kind of conversion described above, you can enable Unicode input by holding `Alt`, then typing `+` **on the numeric keypad**, then typing the hexadecimal number on the numeric keypad, before finally releasing `Alt`. For example, to type the G clef (U+E050), hold `Alt`, type keypad `+`, then `E050`, then release `Alt`. Again, if Bravura Text is not the selected font, you may see an empty rectangle or a rectangle containing **?**. Select this character and change the font to Bravura Text, and the G clef appears.
#### Method 3: Character Map
The built-in Character Map application can copy any Unicode character to the system clipboard so that it can be pasted into another application. To run Character Map, click the `Start` button or hit the `Windows` key on your keyboard, then type `charmap` and hit `Return`. Character Map will run.
In Character Map, choose **Bravura Text** from the **Font** menu at the top of the window. Switch on the **Advanced view** checkbox at the bottom of the window, which makes extra options appear. Choose **Unicode** from the **Character set** menu, then choose **Unicode Subrange** from the bottom of the **Group by** menu. A further pop-up window appears, captioned **Group By**, showing a list of Unicode subranges; choose **Private Use Characters** from the bottom of the list. (You can then close the **Group By** window if you wish.)
The grid that occupies the main part of the Character Map window now displays all of the symbols in Bravura Text (unfortunately, it is not possible to enlarge the display, so they are rather small). Once you have located the character you require, either select it with the mouse and click **Select** or double-click it, and it is added to the **Characters to copy** edit control. Click **Copy** to copy the contents of **Characters to copy** to the clipboard, then switch to the application into which you want to paste the text, and choose `Edit` ▸ `Paste`, or type `Ctrl+V`.
#### Other methods
You may wish to experiment with third-party utilities that can assist with locating and inserting Unicode characters. No recommendation or warranty is implied by listing these free utilities, which you may try at your own risk:
* [CatchChar] [5] allows you to add commonly-used Unicode characters to a menu that can be triggered from within any application via a keyboard shortcut.
* [BabelMap] [6] is an advanced alternative to Windows's built-in Character Map application.
Other commercial (non-free) utilities are also available, including [PopChar] [7].
### OS X
For Mac computers running OS X, the simplest method to insert arbitrary Unicode characters is using the provided Unicode Hex Input input method. To enable it:
* In System Preferences, choose **Keyboard**.
* On the **Keyboard** tab, switch on **Show Keyboard & Character Viewers in menu bar**. When switched on, you will see a national flag corresponding to your computer keyboard's normal language and/or layout appear in the menu bar to the left of the Spotlight icon.
* On the **Input Sources** tab, click **+**, and in the sheet that appears, select **Others** in the left-hand list, then select **Unicode Hex Input** in the right-hand list, then click **Add** to close the sheet.
* Ensure **Show Input menu in menu bar** is switched on, then close System Preferences.
The Unicode Hex Input input method works in the majority of OS X applications. To try it out, for example, open a new text document in TextEdit. Bravura Text does not appear by default in the font menu in TextEdit's toolbar, because it is not an English-language font, so to choose Bravura Text you must show the Fonts panel by choosing `Format` ▸ `Font` ▸ `Show Fonts` or typing `⌘T`. In the Fonts panel, choose **All fonts** under **Collection**, then choose **Bravura Text** under **Family**, then close the Fonts panel (type `⌘T` again).
Bravura Text is now the chosen font (and will now appear in the font menu in TextEdit's toolbar for this document). To type a G (treble) clef, which has the code point U+E050, first choose the **Unicode Hex Input** input method from the input menu in the menu bar. Now hold down `Alt` and type `E050` (do not type the "U+" prefix), then release `Alt`.
If you want to switch between your normal language input method and the Unicode Hex Input method quickly, you can assign a system keyboard shortcut in the **Keyboard** pane of System Preferences. Choose the **Shortcuts** tab, then in the left-hand list choose **Input Sources**. Switch on the checkbox for either or both of **Select the previous input source** and **Select the next input source**, and assign a keyboard shortcut. The default shortcut suggested by OS X is used for Spotlight by default, so you may wish to assign another shortcut, e.g. `^Space` (`^` is the symbol that corresponds to the `Ctrl` key).
## Usage notes for Bravura Text
### Scale factor
Bravura Text is scaled such that the height of a five-line staff (e.g. U+E014) is approximately the same as the height of an upper case letter in a regular text font at the same point size. It is designed to be used both in-line, i.e. in the middle of a run of text at the same point size, and on its own, typically at a larger point size. As such, all symbols in Bravura Text are scaled appropriately to be drawn at the correct size on a five-line staff.
One exception to this is for the bold italic letters used for dynamics, which are scaled such that they are approximately the same size as a lower case letter in a regular text font at the same point size.
### Zero-width characters
Symbols depicting staves and staff lines in Bravura Text have zero width. This is to allow other musical symbols to be printed on top of them.
Staff line symbols are provided in three widths: narrow (one space wide); normal (two spaces wide); and wide (three spaces wide).
The space is the normal unit of measurement when working with printed music notation. One space is the vertical distance between the middle of one staff line and the middle of the staff line above; as such a five-line staff is four spaces tall.
Time signature digits also have zero width, to allow them to be positioned above one another. Leger line glyphs similarly have zero width.
All other glyphs have zero side-bearings, i.e. the advance width of each glyph is exactly equal to the bounding box of its symbol.
### Space characters
In order to insert space between symbols, use the following keys:
* Typing `Space` advances the input position by half a space.
* Typing `-` (hyphen) advances the input position by one space.
* Typing `=` (equals) advances the input position by two spaces.
### Default vertical positioning
Many glyphs in Bravura Text are provided at multiple vertical positions, so that they can appear at different staff positions. With the exception of common clefs, all glyphs that can be drawn at different vertical positions are positioned by default such that they will appear on the middle line of a five-line staff glyph (e.g. U+E014). The common clefs are positioned by default as follows:
* G clef (e.g. U+E050): as for a treble clef, i.e. the bottom of the lower loop aligned with the bottom staff line
* F clef (e.g. U+E061): as for a bass clef, i.e. the two dots positioned either side of the second-highest staff line
* C clef (e.g. U+E058): as for an alto clef, i.e. the center of the clef positioned on the middle staff line
The following ranges of glyphs (as defined in the SMuFL specification) can be moved to different vertical positions on the staff:
* Leger lines (within the **Staves** range)
* All noteheads (within the **Noteheads**, **Slash noteheads**, **Round and square noteheads**, **Note clusters**, **Note name noteheads ranges**)
* Precomposed notes with stems and flags (within the **Individual notes** and **Beamed groups of notes** ranges)
* Precomposed stems (within the **Stems** range)
* Flags for notes (within the **Flags** range)
* All accidentals (within the **Standard accidentals**, **Gould arrow quarter-tone accidentals**, **Stein-Zimmermann accidentals**, **Extended Stein-Zimmermann accidentals**, **Sims accidentals**, **Johnston accidentals for Just Intonation**, **Extended Helmholtz-Ellis JI accidentals**, all Sagittal ranges, **Wyschnegradsky accidentals**, **Arel-Ezgi-Uzdilek (AEU) accidentals**, **Turkish folk music accidentals**, **Persian accidentals**, **Other accidentals** ranges)
* Articulations (within the **Articulations** range)
* Fermatas, caesuras, breathmarks (within the **Holds and pauses** range)
* Rests (within the **Rests** range)
* 1-, 2- and 4-bar repeat indicators (within the **Bar repeats** range)
* Medieval and Renaissance clefs, prolation and mensuration signs, noteheads and stems, individual notes, plainchant single- and multi-note forms, plainchant articulations, and accidentals (within the **Medieval and Renaissance...** ranges)
* **Kievan square notation**
### Altering vertical position
Bravura Text uses OpenType ligatures to modify the default vertical position of symbols. In OpenType fonts, ligatures are a kind of glyph substitution, where two or more glyphs are replaced with another single glyph. This is commonly used in text fonts to produce an elegant appearance for particular combinations of letters, such as "fi" or "fl".
In Bravura Text, ligatures are used to adjust the vertical position of individual symbols. First, you enter the code point corresponding to the amount by which you want to change the vertical position, and then you enter the code point for the symbol itself. Provided the application you are using supports OpenType ligatures, you should see the symbol appear at the desired vertical position.
The code points to use to raise or lower the position of symbols are as follows (the pitch names shown in parentheses correspond to a five-line staff with a treble clef; the default vertical position for movable symbols is therefore B4):
* Raise by one staff position (C5): U+EB90
* Raise by two staff positions (D5): U+EB91
* Raise by three staff positions (E5): U+EB92
* Raise by four staff positions (F5): U+EB93
* Raise by five staff positions (G5): U+EB94
* Raise by six staff positions (A5): U+EB95
* Raise by seven staff positions (B5): U+EB96
* Raise by eight staff positions (C6): U+EB97
* Lower by one staff position (A4): U+EB98
* Lower by two staff positions (G4): U+EB99
* Lower by three staff positions (F4): U+EB9A
* Lower by four staff positions (E4): U+EB9B
* Lower by five staff positions (D4): U+EB9C
* Lower by six staff positions (C4): U+EB9D
* Lower by seven staff positions (B3): U+EB9E
* Lower by eight staff positions (A3): U+EB9F
So to position, say, a black notehead at the G4 staff position, you would first enter U+EB99 (lower by two staff positions) followed immediately by U+E0A4 (the black notehead).
Noteheads positioned outside the staff (i.e. raised or lowered by six or more staff positions) will not automatically show leger lines, so those must be added separately *before* the notehead (since they have zero width), and raised or lowered by the same number of staff positions.
Special code points are provided to shift time signature digits to the correct vertical position:
* Position as numerator (top number): U+E09E
* Position as denominator (bottom number): U+E09F
To enter the time signature 4/4, you would first enter U+E09E (position as numerator), followed immediately by U+E084 (time signature 4), then U+E09F (position as denominator), followed by U+E084 again. Finally, advance the input position by inputting one or more spaces.
### Further information
Detailed technical support is not available for the use of Bravura Text, but if you encounter any problems using this font, please use the [**smufl-discuss** mailing list] [8] to contact the SMuFL community about your problem.
[1]: http://www.smufl.org/ "SMuFL"
[2]: http://scripts.sil.org/ "SIL Open Font License"
[3]: http://www.smufl.org/files/smufl-0.9.pdf "SMuFL 0.9"
[4]: http://scripts.sil.org/cms/scripts/page.php?item_id=inputtoollinks "SIL Unicode input resources"
[5]: http://helpingthings.com/index.php/insert-unicode-characters "CatchChar"
[6]: http://www.babelstone.co.uk/Software/BabelMap.html "BabelMap"
[7]: http://www.ergonis.com/products/popcharwin/
[8]: http://www.smufl.org/discuss "SMuFL mailing lists"
================================================
FILE: redist/bravura_metadata.json
================================================
{
"fontName":"Bravura",
"fontVersion":1.392,
"engravingDefaults":{
"arrowShaftThickness":0.16,
"barlineSeparation":0.4,
"beamSpacing":0.25,
"beamThickness":0.5,
"bracketThickness":0.5,
"dashedBarlineDashLength":0.5,
"dashedBarlineGapLength":0.25,
"dashedBarlineThickness":0.16,
"hBarThickness":1.0,
"hairpinThickness":0.16,
"legerLineExtension":0.4,
"legerLineThickness":0.16,
"lyricLineThickness":0.16,
"octaveLineThickness":0.16,
"pedalLineThickness":0.16,
"repeatBarlineDotSeparation":0.16,
"repeatEndingLineThickness":0.16,
"slurEndpointThickness":0.1,
"slurMidpointThickness":0.22,
"staffLineThickness":0.13,
"stemThickness":0.12,
"subBracketThickness":0.16,
"textEnclosureThickness":0.16,
"textFontFamily":[
"Academico",
"Century Schoolbook",
"Edwin",
"serif"
],
"thickBarlineThickness":0.5,
"thinBarlineThickness":0.16,
"tieEndpointThickness":0.1,
"tieMidpointThickness":0.22,
"tupletBracketThickness":0.16
},
"glyphAdvanceWidths":{
"4stringTabClef":1.084,
"4stringTabClefSerif":1.296,
"4stringTabClefTall":1.272,
"6stringTabClef":1.636,
"6stringTabClefSerif":1.948,
"6stringTabClefTall":2.064,
"accSagittal11LargeDiesisDown":1.376,
"accSagittal11LargeDiesisUp":1.376,
"accSagittal11MediumDiesisDown":1.376,
"accSagittal11MediumDiesisUp":1.376,
"accSagittal11v19LargeDiesisDown":1.248,
"accSagittal11v19LargeDiesisUp":1.248,
"accSagittal11v19MediumDiesisDown":1.376,
"accSagittal11v19MediumDiesisUp":1.376,
"accSagittal11v49CommaDown":0.748,
"accSagittal11v49CommaUp":0.748,
"accSagittal143CommaDown":0.624,
"accSagittal143CommaUp":0.624,
"accSagittal17CommaDown":1.128,
"accSagittal17CommaUp":1.124,
"accSagittal17KleismaDown":0.624,
"accSagittal17KleismaUp":0.624,
"accSagittal19CommaDown":1.128,
"accSagittal19CommaUp":1.124,
"accSagittal19SchismaDown":0.5,
"accSagittal19SchismaUp":0.5,
"accSagittal1MinaDown":0.744,
"accSagittal1MinaUp":0.744,
"accSagittal1TinaDown":1.12,
"accSagittal1TinaUp":1.12,
"accSagittal23CommaDown":0.748,
"accSagittal23CommaUp":0.748,
"accSagittal23SmallDiesisDown":1.376,
"accSagittal23SmallDiesisUp":1.376,
"accSagittal25SmallDiesisDown":1.0,
"accSagittal25SmallDiesisUp":1.0,
"accSagittal2MinasDown":0.62,
"accSagittal2MinasUp":0.62,
"accSagittal2TinasDown":0.624,
"accSagittal2TinasUp":0.624,
"accSagittal35LargeDiesisDown":1.5,
"accSagittal35LargeDiesisUp":1.5,
"accSagittal35MediumDiesisDown":1.124,
"accSagittal35MediumDiesisUp":1.124,
"accSagittal3TinasDown":0.744,
"accSagittal3TinasUp":0.744,
"accSagittal49LargeDiesisDown":1.124,
"accSagittal49LargeDiesisUp":1.124,
"accSagittal49MediumDiesisDown":1.0,
"accSagittal49MediumDiesisUp":1.0,
"accSagittal49SmallDiesisDown":1.124,
"accSagittal49SmallDiesisUp":1.124,
"accSagittal4TinasDown":0.996,
"accSagittal4TinasUp":0.996,
"accSagittal55CommaDown":0.876,
"accSagittal55CommaUp":0.876,
"accSagittal5CommaDown":0.624,
"accSagittal5CommaUp":0.624,
"accSagittal5TinasDown":1.12,
"accSagittal5TinasUp":1.12,
"accSagittal5v11SmallDiesisDown":1.252,
"accSagittal5v11SmallDiesisUp":1.248,
"accSagittal5v13LargeDiesisDown":1.752,
"accSagittal5v13LargeDiesisUp":1.748,
"accSagittal5v13MediumDiesisDown":1.0,
"accSagittal5v13MediumDiesisUp":1.0,
"accSagittal5v19CommaDown":0.624,
"accSagittal5v19CommaUp":0.624,
"accSagittal5v23SmallDiesisDown":1.248,
"accSagittal5v23SmallDiesisUp":1.248,
"accSagittal5v49MediumDiesisDown":1.376,
"accSagittal5v49MediumDiesisUp":1.376,
"accSagittal5v7KleismaDown":0.628,
"accSagittal5v7KleismaUp":0.624,
"accSagittal6TinasDown":1.12,
"accSagittal6TinasUp":1.12,
"accSagittal7CommaDown":0.624,
"accSagittal7CommaUp":0.624,
"accSagittal7TinasDown":1.372,
"accSagittal7TinasUp":1.372,
"accSagittal7v11CommaDown":0.748,
"accSagittal7v11CommaUp":0.748,
"accSagittal7v11KleismaDown":0.88,
"accSagittal7v11KleismaUp":0.876,
"accSagittal7v19CommaDown":1.0,
"accSagittal7v19CommaUp":1.0,
"accSagittal8TinasDown":1.496,
"accSagittal8TinasUp":1.496,
"accSagittal9TinasDown":1.496,
"accSagittal9TinasUp":1.496,
"accSagittalAcute":0.748,
"accSagittalDoubleFlat":1.876,
"accSagittalDoubleFlat11v49CUp":1.624,
"accSagittalDoubleFlat143CUp":1.876,
"accSagittalDoubleFlat17CUp":1.748,
"accSagittalDoubleFlat17kUp":1.748,
"accSagittalDoubleFlat19CUp":1.624,
"accSagittalDoubleFlat19sUp":1.748,
"accSagittalDoubleFlat23CUp":1.624,
"accSagittalDoubleFlat23SUp":1.5,
"accSagittalDoubleFlat25SUp":1.62,
"accSagittalDoubleFlat49SUp":1.5,
"accSagittalDoubleFlat55CUp":1.5,
"accSagittalDoubleFlat5CUp":1.624,
"accSagittalDoubleFlat5v11SUp":1.624,
"accSagittalDoubleFlat5v19CUp":1.5,
"accSagittalDoubleFlat5v23SUp":1.624,
"accSagittalDoubleFlat5v7kUp":1.624,
"accSagittalDoubleFlat7CUp":1.5,
"accSagittalDoubleFlat7v11CUp":1.5,
"accSagittalDoubleFlat7v11kUp":1.748,
"accSagittalDoubleFlat7v19CUp":1.5,
"accSagittalDoubleSharp":1.876,
"accSagittalDoubleSharp11v49CDown":1.624,
"accSagittalDoubleSharp143CDown":1.876,
"accSagittalDoubleSharp17CDown":1.748,
"accSagittalDoubleSharp17kDown":1.748,
"accSagittalDoubleSharp19CDown":1.624,
"accSagittalDoubleSharp19sDown":1.748,
"accSagittalDoubleSharp23CDown":1.624,
"accSagittalDoubleSharp23SDown":1.5,
"accSagittalDoubleSharp25SDown":1.624,
"accSagittalDoubleSharp49SDown":1.5,
"accSagittalDoubleSharp55CDown":1.5,
"accSagittalDoubleSharp5CDown":1.624,
"accSagittalDoubleSharp5v11SDown":1.624,
"accSagittalDoubleSharp5v19CDown":1.5,
"accSagittalDoubleSharp5v23SDown":1.624,
"accSagittalDoubleSharp5v7kDown":1.624,
"accSagittalDoubleSharp7CDown":1.5,
"accSagittalDoubleSharp7v11CDown":1.5,
"accSagittalDoubleSharp7v11kDown":1.748,
"accSagittalDoubleSharp7v19CDown":1.5,
"accSagittalFlat":1.624,
"accSagittalFlat11LDown":1.876,
"accSagittalFlat11MDown":1.876,
"accSagittalFlat11v19LDown":1.748,
"accSagittalFlat11v19MDown":1.748,
"accSagittalFlat11v49CDown":1.248,
"accSagittalFlat11v49CUp":1.376,
"accSagittalFlat143CDown":1.248,
"accSagittalFlat143CUp":1.624,
"accSagittalFlat17CDown":1.624,
"accSagittalFlat17CUp":1.5,
"accSagittalFlat17kDown":1.248,
"accSagittalFlat17kUp":1.248,
"accSagittalFlat19CDown":1.5,
"accSagittalFlat19CUp":1.124,
"accSagittalFlat19sDown":1.128,
"accSagittalFlat19sUp":1.624,
"accSagittalFlat23CDown":1.376,
"accSagittalFlat23CUp":1.5,
"accSagittalFlat23SDown":1.876,
"accSagittalFlat23SUp":1.0,
"accSagittalFlat25SDown":1.5,
"accSagittalFlat25SUp":1.38,
"accSagittalFlat35LDown":2.0,
"accSagittalFlat35MDown":1.624,
"accSagittalFlat49LDown":1.624,
"accSagittalFlat49MDown":1.5,
"accSagittalFlat49SDown":1.624,
"accSagittalFlat49SUp":1.0,
"accSagittalFlat55CDown":1.376,
"accSagittalFlat55CUp":1.0,
"accSagittalFlat5CDown":1.248,
"accSagittalFlat5CUp":1.124,
"accSagittalFlat5v11SDown":1.748,
"accSagittalFlat5v11SUp":1.376,
"accSagittalFlat5v13LDown":2.0,
"accSagittalFlat5v13MDown":1.5,
"accSagittalFlat5v19CDown":1.248,
"accSagittalFlat5v19CUp":1.252,
"accSagittalFlat5v23SDown":1.624,
"accSagittalFlat5v23SUp":1.124,
"accSagittalFlat5v49MDown":1.876,
"accSagittalFlat5v7kDown":1.248,
"accSagittalFlat5v7kUp":1.376,
"accSagittalFlat7CDown":1.248,
"accSagittalFlat7CUp":1.0,
"accSagittalFlat7v11CDown":1.376,
"accSagittalFlat7v11CUp":1.376,
"accSagittalFlat7v11kDown":1.62,
"accSagittalFlat7v11kUp":1.248,
"accSagittalFlat7v19CDown":1.5,
"accSagittalFlat7v19CUp":1.0,
"accSagittalFractionalTinaDown":0.388,
"accSagittalFractionalTinaUp":0.388,
"accSagittalGrave":0.748,
"accSagittalShaftDown":0.124,
"accSagittalShaftUp":0.124,
"accSagittalSharp":1.624,
"accSagittalSharp11LUp":1.876,
"accSagittalSharp11MUp":1.876,
"accSagittalSharp11v19LUp":1.748,
"accSagittalSharp11v19MUp":1.748,
"accSagittalSharp11v49CDown":1.376,
"accSagittalSharp11v49CUp":1.248,
"accSagittalSharp143CDown":1.624,
"accSagittalSharp143CUp":1.248,
"accSagittalSharp17CDown":1.5,
"accSagittalSharp17CUp":1.624,
"accSagittalSharp17kDown":1.248,
"accSagittalSharp17kUp":1.248,
"accSagittalSharp19CDown":1.128,
"accSagittalSharp19CUp":1.5,
"accSagittalSharp19sDown":1.624,
"accSagittalSharp19sUp":1.124,
"accSagittalSharp23CDown":1.5,
"accSagittalSharp23CUp":1.376,
"accSagittalSharp23SDown":1.0,
"accSagittalSharp23SUp":1.876,
"accSagittalSharp25SDown":1.376,
"accSagittalSharp25SUp":1.5,
"accSagittalSharp35LUp":2.0,
"accSagittalSharp35MUp":1.624,
"accSagittalSharp49LUp":1.624,
"accSagittalSharp49MUp":1.5,
"accSagittalSharp49SDown":1.0,
"accSagittalSharp49SUp":1.624,
"accSagittalSharp55CDown":1.0,
"accSagittalSharp55CUp":1.376,
"accSagittalSharp5CDown":1.124,
"accSagittalSharp5CUp":1.248,
"accSagittalSharp5v11SDown":1.376,
"accSagittalSharp5v11SUp":1.748,
"accSagittalSharp5v13LUp":2.0,
"accSagittalSharp5v13MUp":1.5,
"accSagittalSharp5v19CDown":1.248,
"accSagittalSharp5v19CUp":1.248,
"accSagittalSharp5v23SDown":1.124,
"accSagittalSharp5v23SUp":1.624,
"accSagittalSharp5v49MUp":1.876,
"accSagittalSharp5v7kDown":1.376,
"accSagittalSharp5v7kUp":1.248,
"accSagittalSharp7CDown":1.0,
"accSagittalSharp7CUp":1.248,
"accSagittalSharp7v11CDown":1.376,
"accSagittalSharp7v11CUp":1.376,
"accSagittalSharp7v11kDown":1.248,
"accSagittalSharp7v11kUp":1.624,
"accSagittalSharp7v19CDown":1.0,
"accSagittalSharp7v19CUp":1.5,
"accdnCombDot":0.496,
"accdnCombLH2RanksEmpty":3.128,
"accdnCombLH3RanksEmptySquare":2.552,
"accdnCombRH3RanksEmpty":3.128,
"accdnCombRH4RanksEmpty":3.128,
"accdnDiatonicClef":1.136,
"accdnLH2Ranks16Round":3.132,
"accdnLH2Ranks8Plus16Round":3.14,
"accdnLH2Ranks8Round":3.124,
"accdnLH2RanksFullMasterRound":3.128,
"accdnLH2RanksMasterPlus16Round":3.128,
"accdnLH2RanksMasterRound":3.124,
"accdnLH3Ranks2Plus8Square":2.568,
"accdnLH3Ranks2Square":2.568,
"accdnLH3Ranks8Square":2.556,
"accdnLH3RanksDouble8Square":2.568,
"accdnLH3RanksTuttiSquare":2.568,
"accdnPull":0.92,
"accdnPush":0.92,
"accdnPushAlt":0.776,
"accdnRH3RanksAccordion":3.124,
"accdnRH3RanksAuthenticMusette":3.124,
"accdnRH3RanksBandoneon":3.124,
"accdnRH3RanksBassoon":3.124,
"accdnRH3RanksClarinet":3.124,
"accdnRH3RanksDoubleTremoloLower8ve":3.128,
"accdnRH3RanksDoubleTremoloUpper8ve":3.128,
"accdnRH3RanksFullFactory":3.128,
"accdnRH3RanksHarmonium":3.136,
"accdnRH3RanksImitationMusette":3.124,
"accdnRH3RanksLowerTremolo8":3.136,
"accdnRH3RanksMaster":3.124,
"accdnRH3RanksOboe":3.136,
"accdnRH3RanksOrgan":3.136,
"accdnRH3RanksPiccolo":3.124,
"accdnRH3RanksTremoloLower8ve":3.128,
"accdnRH3RanksTremoloUpper8ve":3.128,
"accdnRH3RanksTwoChoirs":3.124,
"accdnRH3RanksUpperTremolo8":3.136,
"accdnRH3RanksViolin":3.136,
"accdnRH4RanksAlto":3.136,
"accdnRH4RanksBassAlto":3.164,
"accdnRH4RanksMaster":3.128,
"accdnRH4RanksSoftBass":3.128,
"accdnRH4RanksSoftTenor":3.124,
"accdnRH4RanksSoprano":3.124,
"accdnRH4RanksTenor":3.124,
"accdnRicochet2":1.552,
"accdnRicochet3":1.832,
"accdnRicochet4":2.512,
"accdnRicochet5":3.072,
"accdnRicochet6":3.752,
"accdnRicochetStem2":0.752,
"accdnRicochetStem3":0.776,
"accdnRicochetStem4":0.776,
"accdnRicochetStem5":0.776,
"accdnRicochetStem6":0.768,
"accidental1CommaFlat":1.008,
"accidental1CommaSharp":1.536,
"accidental2CommaFlat":1.284,
"accidental2CommaSharp":1.812,
"accidental3CommaFlat":1.208,
"accidental3CommaSharp":1.736,
"accidental4CommaFlat":1.284,
"accidental5CommaSharp":1.788,
"accidentalArrowDown":0.74,
"accidentalArrowUp":0.74,
"accidentalBakiyeFlat":1.148,
"accidentalBakiyeSharp":1.0,
"accidentalBracketLeft":0.308,
"accidentalBracketRight":0.308,
"accidentalBuyukMucennebFlat":1.148,
"accidentalBuyukMucennebSharp":1.372,
"accidentalCombiningCloseCurlyBrace":0.552,
"accidentalCombiningLower17Schisma":0.796,
"accidentalCombiningLower19Schisma":0.796,
"accidentalCombiningLower23Limit29LimitComma":0.98,
"accidentalCombiningLower29LimitComma":1.424,
"accidentalCombiningLower31Schisma":1.168,
"accidentalCombiningLower37Quartertone":1.196,
"accidentalCombiningLower41Comma":1.188,
"accidentalCombiningLower43Comma":1.416,
"accidentalCombiningLower47Quartertone":0.96,
"accidentalCombiningLower53LimitComma":0.792,
"accidentalCombiningOpenCurlyBrace":0.552,
"accidentalCombiningRaise17Schisma":0.796,
"accidentalCombiningRaise19Schisma":0.796,
"accidentalCombiningRaise23Limit29LimitComma":0.98,
"accidentalCombiningRaise29LimitComma":1.424,
"accidentalCombiningRaise31Schisma":1.18,
"accidentalCombiningRaise37Quartertone":1.196,
"accidentalCombiningRaise41Comma":1.188,
"accidentalCombiningRaise43Comma":1.424,
"accidentalCombiningRaise47Quartertone":0.96,
"accidentalCombiningRaise53LimitComma":0.792,
"accidentalCommaSlashDown":1.204,
"accidentalCommaSlashUp":1.204,
"accidentalDoubleFlat":1.652,
"accidentalDoubleFlatArabic":1.652,
"accidentalDoubleFlatEqualTempered":1.664,
"accidentalDoubleFlatJoinedStems":1.644,
"accidentalDoubleFlatOneArrowDown":1.676,
"accidentalDoubleFlatOneArrowUp":1.664,
"accidentalDoubleFlatParens":2.772,
"accidentalDoubleFlatReversed":1.652,
"accidentalDoubleFlatThreeArrowsDown":1.676,
"accidentalDoubleFlatThreeArrowsUp":1.664,
"accidentalDoubleFlatTurned":1.664,
"accidentalDoubleFlatTwoArrowsDown":1.676,
"accidentalDoubleFlatTwoArrowsUp":1.664,
"accidentalDoubleSharp":1.0,
"accidentalDoubleSharpArabic":1.0,
"accidentalDoubleSharpEqualTempered":0.984,
"accidentalDoubleSharpOneArrowDown":0.988,
"accidentalDoubleSharpOneArrowUp":0.992,
"accidentalDoubleSharpParens":1.992,
"accidentalDoubleSharpThreeArrowsDown":0.988,
"accidentalDoubleSharpThreeArrowsUp":0.988,
"accidentalDoubleSharpTwoArrowsDown":0.988,
"accidentalDoubleSharpTwoArrowsUp":0.992,
"accidentalEnharmonicAlmostEqualTo":1.736,
"accidentalEnharmonicEquals":1.796,
"accidentalEnharmonicTilde":1.736,
"accidentalFilledReversedFlatAndFlat":1.46,
"accidentalFilledReversedFlatAndFlatArrowDown":1.46,
"accidentalFilledReversedFlatAndFlatArrowUp":1.46,
"accidentalFilledReversedFlatArrowDown":1.216,
"accidentalFilledReversedFlatArrowUp":1.24,
"accidentalFiveQuarterTonesFlatArrowDown":1.652,
"accidentalFiveQuarterTonesSharpArrowUp":0.992,
"accidentalFlat":0.904,
"accidentalFlatArabic":0.904,
"accidentalFlatEqualTempered":0.904,
"accidentalFlatJohnstonDown":1.192,
"accidentalFlatJohnstonEl":0.908,
"accidentalFlatJohnstonElDown":1.184,
"accidentalFlatJohnstonUp":1.2,
"accidentalFlatJohnstonUpEl":1.184,
"accidentalFlatLoweredStockhausen":0.912,
"accidentalFlatOneArrowDown":0.912,
"accidentalFlatOneArrowUp":0.904,
"accidentalFlatParens":2.024,
"accidentalFlatRaisedStockhausen":0.904,
"accidentalFlatRepeatedLineStockhausen":0.904,
"accidentalFlatRepeatedSpaceStockhausen":0.904,
"accidentalFlatSmall":1.052,
"accidentalFlatThreeArrowsDown":0.912,
"accidentalFlatThreeArrowsUp":0.904,
"accidentalFlatTurned":0.916,
"accidentalFlatTwoArrowsDown":0.912,
"accidentalFlatTwoArrowsUp":0.904,
"accidentalHabaFlatQuarterToneHigher":0.888,
"accidentalHabaFlatThreeQuarterTonesLower":0.892,
"accidentalHabaQuarterToneHigher":0.84,
"accidentalHabaQuarterToneLower":0.892,
"accidentalHabaSharpQuarterToneLower":0.996,
"accidentalHabaSharpThreeQuarterTonesHigher":0.996,
"accidentalHalfSharpArrowDown":0.924,
"accidentalHalfSharpArrowUp":0.928,
"accidentalJohnston13":0.8,
"accidentalJohnston31":0.8,
"accidentalJohnstonDown":0.72,
"accidentalJohnstonDownEl":0.94,
"accidentalJohnstonEl":0.64,
"accidentalJohnstonMinus":0.6,
"accidentalJohnstonPlus":0.6,
"accidentalJohnstonSeven":0.64,
"accidentalJohnstonSevenDown":0.948,
"accidentalJohnstonSevenFlat":1.38,
"accidentalJohnstonSevenFlatDown":1.38,
"accidentalJohnstonSevenFlatUp":1.396,
"accidentalJohnstonSevenSharp":1.32,
"accidentalJohnstonSevenSharpDown":1.32,
"accidentalJohnstonSevenSharpUp":1.412,
"accidentalJohnstonSevenUp":0.94,
"accidentalJohnstonUp":0.72,
"accidentalJohnstonUpEl":0.94,
"accidentalKomaFlat":0.916,
"accidentalKomaSharp":0.924,
"accidentalKoron":1.208,
"accidentalKucukMucennebFlat":0.908,
"accidentalKucukMucennebSharp":1.356,
"accidentalLargeDoubleSharp":1.376,
"accidentalLowerOneSeptimalComma":0.688,
"accidentalLowerOneTridecimalQuartertone":0.86,
"accidentalLowerOneUndecimalQuartertone":0.908,
"accidentalLowerTwoSeptimalCommas":0.688,
"accidentalLoweredStockhausen":0.4,
"accidentalNarrowReversedFlat":0.656,
"accidentalNarrowReversedFlatAndFlat":1.656,
"accidentalNatural":0.672,
"accidentalNaturalArabic":0.672,
"accidentalNaturalEqualTempered":0.672,
"accidentalNaturalFlat":1.836,
"accidentalNaturalLoweredStockhausen":0.676,
"accidentalNaturalOneArrowDown":0.676,
"accidentalNaturalOneArrowUp":0.676,
"accidentalNaturalParens":2.16,
"accidentalNaturalRaisedStockhausen":0.676,
"accidentalNaturalReversed":0.672,
"accidentalNaturalSharp":1.92,
"accidentalNaturalSmall":0.76,
"accidentalNaturalThreeArrowsDown":0.676,
"accidentalNaturalThreeArrowsUp":0.676,
"accidentalNaturalTwoArrowsDown":0.676,
"accidentalNaturalTwoArrowsUp":0.676,
"accidentalOneAndAHalfSharpsArrowDown":1.268,
"accidentalOneAndAHalfSharpsArrowUp":1.476,
"accidentalOneQuarterToneFlatFerneyhough":0.872,
"accidentalOneQuarterToneFlatStockhausen":1.148,
"accidentalOneQuarterToneSharpFerneyhough":0.796,
"accidentalOneQuarterToneSharpStockhausen":0.668,
"accidentalOneThirdToneFlatFerneyhough":0.752,
"accidentalOneThirdToneSharpFerneyhough":0.764,
"accidentalParensLeft":0.564,
"accidentalParensRight":0.564,
"accidentalQuarterFlatEqualTempered":0.904,
"accidentalQuarterSharpEqualTempered":1.08,
"accidentalQuarterToneFlat4":1.672,
"accidentalQuarterToneFlatArabic":1.148,
"accidentalQuarterToneFlatArrowUp":0.992,
"accidentalQuarterToneFlatFilledReversed":0.908,
"accidentalQuarterToneFlatNaturalArrowDown":0.684,
"accidentalQuarterToneFlatPenderecki":0.908,
"accidentalQuarterToneFlatStein":0.908,
"accidentalQuarterToneFlatVanBlankenburg":0.94,
"accidentalQuarterToneSharp4":1.576,
"accidentalQuarterToneSharpArabic":0.652,
"accidentalQuarterToneSharpArrowDown":0.996,
"accidentalQuarterToneSharpBusotti":0.668,
"accidentalQuarterToneSharpNaturalArrowUp":0.848,
"accidentalQuarterToneSharpStein":0.716,
"accidentalQuarterToneSharpWiggle":2.2,
"accidentalRaiseOneSeptimalComma":0.688,
"accidentalRaiseOneTridecimalQuartertone":1.08,
"accidentalRaiseOneUndecimalQuartertone":1.084,
"accidentalRaiseTwoSeptimalCommas":0.688,
"accidentalRaisedStockhausen":0.4,
"accidentalReversedFlatAndFlatArrowDown":1.54,
"accidentalReversedFlatAndFlatArrowUp":1.54,
"accidentalReversedFlatArrowDown":1.22,
"accidentalReversedFlatArrowUp":1.248,
"accidentalSharp":0.996,
"accidentalSharpArabic":0.996,
"accidentalSharpEqualTempered":1.0,
"accidentalSharpJohnstonDown":1.092,
"accidentalSharpJohnstonDownEl":1.412,
"accidentalSharpJohnstonEl":1.328,
"accidentalSharpJohnstonUp":1.092,
"accidentalSharpJohnstonUpEl":1.312,
"accidentalSharpLoweredStockhausen":1.0,
"accidentalSharpOneArrowDown":1.0,
"accidentalSharpOneArrowUp":1.0,
"accidentalSharpOneHorizontalStroke":0.996,
"accidentalSharpParens":2.244,
"accidentalSharpRaisedStockhausen":1.0,
"accidentalSharpRepeatedLineStockhausen":0.996,
"accidentalSharpRepeatedSpaceStockhausen":1.0,
"accidentalSharpReversed":0.996,
"accidentalSharpSharp":2.076,
"accidentalSharpSmall":1.044,
"accidentalSharpThreeArrowsDown":1.0,
"accidentalSharpThreeArrowsUp":1.0,
"accidentalSharpTwoArrowsDown":1.0,
"accidentalSharpTwoArrowsUp":1.0,
"accidentalSims12Down":1.212,
"accidentalSims12Up":1.212,
"accidentalSims4Down":1.284,
"accidentalSims4Up":1.088,
"accidentalSims6Down":1.088,
"accidentalSims6Up":1.088,
"accidentalSori":1.684,
"accidentalTavenerFlat":1.9,
"accidentalTavenerSharp":1.604,
"accidentalThreeQuarterTonesFlatArabic":1.128,
"accidentalThreeQuarterTonesFlatArrowDown":1.004,
"accidentalThreeQuarterTonesFlatArrowUp":1.644,
"accidentalThreeQuarterTonesFlatCouper":1.64,
"accidentalThreeQuarterTonesFlatGrisey":0.9,
"accidentalThreeQuarterTonesFlatTartini":1.376,
"accidentalThreeQuarterTonesFlatZimmermann":1.864,
"accidentalThreeQuarterTonesSharpArabic":1.268,
"accidentalThreeQuarterTonesSharpArrowDown":0.992,
"accidentalThreeQuarterTonesSharpArrowUp":0.996,
"accidentalThreeQuarterTonesSharpBusotti":1.472,
"accidentalThreeQuarterTonesSharpStein":1.268,
"accidentalThreeQuarterTonesSharpStockhausen":0.996,
"accidentalTripleFlat":2.4,
"accidentalTripleFlatJoinedStems":2.384,
"accidentalTripleSharp":2.052,
"accidentalTwoThirdTonesFlatFerneyhough":0.796,
"accidentalTwoThirdTonesSharpFerneyhough":0.772,
"accidentalUpsAndDownsDown":0.964,
"accidentalUpsAndDownsLess":0.836,
"accidentalUpsAndDownsMore":0.82,
"accidentalUpsAndDownsUp":0.972,
"accidentalWilsonMinus":1.124,
"accidentalWilsonPlus":1.124,
"accidentalWyschnegradsky10TwelfthsFlat":1.656,
"accidentalWyschnegradsky10TwelfthsSharp":1.58,
"accidentalWyschnegradsky11TwelfthsFlat":1.656,
"accidentalWyschnegradsky11TwelfthsSharp":1.572,
"accidentalWyschnegradsky1TwelfthsFlat":0.852,
"accidentalWyschnegradsky1TwelfthsSharp":0.648,
"accidentalWyschnegradsky2TwelfthsFlat":0.852,
"accidentalWyschnegradsky2TwelfthsSharp":0.648,
"accidentalWyschnegradsky3TwelfthsFlat":0.852,
"accidentalWyschnegradsky3TwelfthsSharp":0.652,
"accidentalWyschnegradsky4TwelfthsFlat":0.904,
"accidentalWyschnegradsky4TwelfthsSharp":0.904,
"accidentalWyschnegradsky5TwelfthsFlat":0.904,
"accidentalWyschnegradsky5TwelfthsSharp":0.9,
"accidentalWyschnegradsky6TwelfthsFlat":0.908,
"accidentalWyschnegradsky6TwelfthsSharp":1.0,
"accidentalWyschnegradsky7TwelfthsFlat":1.664,
"accidentalWyschnegradsky7TwelfthsSharp":1.324,
"accidentalWyschnegradsky8TwelfthsFlat":1.664,
"accidentalWyschnegradsky8TwelfthsSharp":1.324,
"accidentalWyschnegradsky9TwelfthsFlat":1.664,
"accidentalWyschnegradsky9TwelfthsSharp":1.256,
"accidentalXenakisOneThirdToneSharp":0.984,
"accidentalXenakisTwoThirdTonesSharp":1.224,
"analyticsChoralmelodie":5.008,
"analyticsEndStimme":1.188,
"analyticsHauptrhythmus":5.056,
"analyticsHauptrhythmusR":2.84,
"analyticsHauptstimme":2.824,
"analyticsInversion1":1.7,
"analyticsNebenstimme":2.836,
"analyticsStartStimme":1.188,
"analyticsTheme":2.972,
"analyticsTheme1":1.7,
"analyticsThemeInversion":2.972,
"analyticsThemeRetrograde":2.972,
"analyticsThemeRetrogradeInversion":2.972,
"arpeggiato":0.488,
"arpeggiatoDown":0.912,
"arpeggiatoUp":0.912,
"arrowBlackDown":0.912,
"arrowBlackDownLeft":1.536,
"arrowBlackDownRight":1.536,
"arrowBlackLeft":2.108,
"arrowBlackRight":2.108,
"arrowBlackUp":0.912,
"arrowBlackUpLeft":1.536,
"arrowBlackUpRight":1.536,
"arrowOpenDown":0.836,
"arrowOpenDownLeft":1.544,
"arrowOpenDownRight":1.544,
"arrowOpenLeft":2.112,
"arrowOpenRight":2.112,
"arrowOpenUp":0.836,
"arrowOpenUpLeft":1.544,
"arrowOpenUpRight":1.544,
"arrowWhiteDown":0.912,
"arrowWhiteDownLeft":1.536,
"arrowWhiteDownRight":1.536,
"arrowWhiteLeft":2.104,
"arrowWhiteRight":2.104,
"arrowWhiteUp":0.912,
"arrowWhiteUpLeft":1.536,
"arrowWhiteUpRight":1.536,
"arrowheadBlackDown":0.912,
"arrowheadBlackDownLeft":1.156,
"arrowheadBlackDownRight":1.156,
"arrowheadBlackLeft":1.196,
"arrowheadBlackRight":1.196,
"arrowheadBlackUp":0.912,
"arrowheadBlackUpLeft":1.156,
"arrowheadBlackUpRight":1.156,
"arrowheadOpenDown":0.836,
"arrowheadOpenDownLeft":1.044,
"arrowheadOpenDownRight":1.044,
"arrowheadOpenLeft":1.116,
"arrowheadOpenRight":1.116,
"arrowheadOpenUp":0.836,
"arrowheadOpenUpLeft":1.044,
"arrowheadOpenUpRight":1.044,
"arrowheadWhiteDown":0.912,
"arrowheadWhiteDownLeft":1.152,
"arrowheadWhiteDownRight":1.152,
"arrowheadWhiteLeft":1.196,
"arrowheadWhiteRight":1.196,
"arrowheadWhiteUp":0.912,
"arrowheadWhiteUpLeft":1.152,
"arrowheadWhiteUpRight":1.152,
"articAccentAbove":1.356,
"articAccentAboveLarge":1.724,
"articAccentAboveRossini":1.356,
"articAccentAboveSmall":1.332,
"articAccentBelow":1.356,
"articAccentBelowLarge":1.724,
"articAccentBelowRossini":1.356,
"articAccentBelowSmall":1.332,
"articAccentStaccatoAbove":1.36,
"articAccentStaccatoAboveSmall":1.332,
"articAccentStaccatoBelow":1.356,
"articAccentStaccatoBelowSmall":1.332,
"articLaissezVibrerAbove":1.468,
"articLaissezVibrerBelow":1.46,
"articMarcatoAbove":0.944,
"articMarcatoAboveSmall":0.944,
"articMarcatoBelow":0.944,
"articMarcatoBelowSmall":0.944,
"articMarcatoStaccatoAbove":0.944,
"articMarcatoStaccatoAboveSmall":0.944,
"articMarcatoStaccatoBelow":0.944,
"articMarcatoStaccatoBelowSmall":0.944,
"articMarcatoTenutoAbove":1.352,
"articMarcatoTenutoBelow":1.352,
"articSoftAccentAbove":2.832,
"articSoftAccentBelow":2.832,
"articSoftAccentStaccatoAbove":3.512,
"articSoftAccentStaccatoBelow":3.512,
"articSoftAccentTenutoAbove":3.832,
"articSoftAccentTenutoBelow":3.832,
"articSoftAccentTenutoStaccatoAbove":3.832,
"articSoftAccentTenutoStaccatoBelow":3.832,
"articStaccatissimoAbove":0.408,
"articStaccatissimoAboveSmall":0.528,
"articStaccatissimoBelow":0.408,
"articStaccatissimoBelowSmall":0.528,
"articStaccatissimoStrokeAbove":0.192,
"articStaccatissimoStrokeAboveSmall":0.256,
"articStaccatissimoStrokeBelow":0.192,
"articStaccatissimoStrokeBelowSmall":0.256,
"articStaccatissimoWedgeAbove":0.356,
"articStaccatissimoWedgeAboveSmall":0.468,
"articStaccatissimoWedgeBelow":0.356,
"articStaccatissimoWedgeBelowSmall":0.468,
"articStaccatoAbove":0.336,
"articStaccatoAboveSmall":0.492,
"articStaccatoBelow":0.336,
"articStaccatoBelowSmall":0.492,
"articStressAbove":0.94,
"articStressBelow":0.952,
"articTenutoAbove":1.352,
"articTenutoAboveSmall":1.356,
"articTenutoAccentAbove":1.356,
"articTenutoAccentAboveSmall":1.356,
"articTenutoAccentBelow":1.356,
"articTenutoAccentBelowSmall":1.356,
"articTenutoBelow":1.352,
"articTenutoBelowSmall":1.356,
"articTenutoStaccatoAbove":1.356,
"articTenutoStaccatoAboveSmall":1.356,
"articTenutoStaccatoBelow":1.352,
"articTenutoStaccatoBelowSmall":1.356,
"articUnstressAbove":1.528,
"articUnstressBelow":1.532,
"augmentationDot":0.4,
"barlineDashed":0.144,
"barlineDotted":0.196,
"barlineDouble":0.576,
"barlineFinal":0.916,
"barlineHeavy":0.5,
"barlineHeavyHeavy":1.372,
"barlineReverseFinal":0.912,
"barlineShort":0.148,
"barlineSingle":0.144,
"barlineTick":0.144,
"beamAccelRit1":4.736,
"beamAccelRit10":2.116,
"beamAccelRit11":1.816,
"beamAccelRit12":1.516,
"beamAccelRit13":1.216,
"beamAccelRit14":0.916,
"beamAccelRit15":0.616,
"beamAccelRit2":4.436,
"beamAccelRit3":4.136,
"beamAccelRit4":3.916,
"beamAccelRit5":3.616,
"beamAccelRit6":3.316,
"beamAccelRit7":3.016,
"beamAccelRit8":2.716,
"beamAccelRit9":2.416,
"beamAccelRitFinal":0.128,
"brace":0.336,
"braceFlat":0.228,
"braceLarge":0.268,
"braceLarger":0.244,
"braceSmall":0.412,
"bracket":2.232,
"bracketBottom":1.876,
"bracketTop":1.876,
"brassBend":1.572,
"brassDoitLong":4.6,
"brassDoitMedium":1.96,
"brassDoitShort":1.272,
"brassFallLipLong":4.6,
"brassFallLipMedium":1.96,
"brassFallLipShort":1.172,
"brassFallRoughLong":4.788,
"brassFallRoughMedium":3.248,
"brassFallRoughShort":1.7,
"brassFallSmoothLong":5.48,
"brassFallSmoothMedium":3.644,
"brassFallSmoothShort":1.632,
"brassFlip":1.516,
"brassHarmonMuteClosed":1.16,
"brassHarmonMuteStemHalfLeft":1.212,
"brassHarmonMuteStemHalfRight":1.212,
"brassHarmonMuteStemOpen":1.2,
"brassJazzTurn":2.48,
"brassLiftLong":4.788,
"brassLiftMedium":3.248,
"brassLiftShort":1.7,
"brassLiftSmoothLong":5.48,
"brassLiftSmoothMedium":3.644,
"brassLiftSmoothShort":1.632,
"brassMuteClosed":1.088,
"brassMuteHalfClosed":1.22,
"brassMuteOpen":1.22,
"brassPlop":1.172,
"brassScoop":1.272,
"brassSmear":1.228,
"brassValveTrill":1.22,
"breathMarkComma":0.612,
"breathMarkSalzedo":2.1,
"breathMarkTick":2.0,
"breathMarkUpbow":1.0,
"bridgeClef":3.448,
"buzzRoll":0.624,
"cClef":2.796,
"cClef8vb":2.796,
"cClefArrowDown":2.8,
"cClefArrowUp":2.796,
"cClefChange":2.024,
"cClefCombining":0.932,
"cClefFrench":3.452,
"cClefFrench20C":2.572,
"cClefFrench20CChange":1.888,
"cClefReversed":2.796,
"cClefSmall":3.064,
"cClefSquare":2.336,
"caesura":1.54,
"caesuraCurved":1.492,
"caesuraShort":0.74,
"caesuraSingleStroke":0.204,
"caesuraThick":2.652,
"chantAccentusAbove":0.292,
"chantAccentusBelow":0.296,
"chantAuctumAsc":0.616,
"chantAuctumDesc":0.616,
"chantAugmentum":0.264,
"chantCaesura":0.572,
"chantCclef":0.536,
"chantCclefHufnagel":1.144,
"chantCirculusAbove":0.376,
"chantCirculusBelow":0.376,
"chantConnectingLineAsc2nd":0.056,
"chantConnectingLineAsc3rd":0.056,
"chantConnectingLineAsc4th":0.056,
"chantConnectingLineAsc5th":0.056,
"chantConnectingLineAsc6th":0.056,
"chantCustosStemDownPosHigh":0.24,
"chantCustosStemDownPosHighest":0.24,
"chantCustosStemDownPosMiddle":0.24,
"chantCustosStemUpPosLow":0.24,
"chantCustosStemUpPosLowest":0.24,
"chantCustosStemUpPosMiddle":0.24,
"chantDeminutumLower":0.056,
"chantDeminutumUpper":0.056,
"chantDivisioFinalis":0.476,
"chantDivisioMaior":0.064,
"chantDivisioMaxima":0.064,
"chantDivisioMinima":0.064,
"chantEntryLineAsc2nd":0.056,
"chantEntryLineAsc3rd":0.056,
"chantEntryLineAsc4th":0.056,
"chantEntryLineAsc5th":0.056,
"chantEntryLineAsc6th":0.056,
"chantEpisema":0.656,
"chantFclef":1.056,
"chantFclefHufnagel":1.156,
"chantIctusAbove":0.128,
"chantIctusBelow":0.128,
"chantLigaturaDesc2nd":1.86,
"chantLigaturaDesc3rd":2.316,
"chantLigaturaDesc4th":2.316,
"chantLigaturaDesc5th":2.316,
"chantOriscusAscending":0.616,
"chantOriscusDescending":0.616,
"chantOriscusLiquescens":0.612,
"chantPodatusLower":0.556,
"chantPodatusUpper":0.0,
"chantPunctum":0.64,
"chantPunctumCavum":0.64,
"chantPunctumDeminutum":0.364,
"chantPunctumInclinatum":0.6,
"chantPunctumInclinatumAuctum":0.648,
"chantPunctumInclinatumDeminutum":0.36,
"chantPunctumLinea":1.064,
"chantPunctumLineaCavum":1.064,
"chantPunctumVirga":0.64,
"chantPunctumVirgaReversed":0.64,
"chantQuilisma":0.616,
"chantSemicirculusAbove":0.376,
"chantSemicirculusBelow":0.376,
"chantStaff":2.0,
"chantStaffNarrow":1.0,
"chantStaffWide":3.0,
"chantStrophicus":0.496,
"chantStrophicusAuctus":0.608,
"chantStrophicusLiquescens2nd":0.644,
"chantStrophicusLiquescens3rd":0.652,
"chantStrophicusLiquescens4th":0.676,
"chantStrophicusLiquescens5th":0.712,
"chantVirgula":0.364,
"clef15":1.436,
"clef8":0.82,
"coda":3.816,
"codaJapanese":3.816,
"codaSquare":3.276,
"conductorBeat2Compound":2.876,
"conductorBeat2Simple":2.868,
"conductorBeat3Compound":2.448,
"conductorBeat3Simple":2.456,
"conductorBeat4Compound":2.02,
"conductorBeat4Simple":2.024,
"conductorLeftBeat":0.796,
"conductorRightBeat":0.796,
"conductorStrongBeat":1.596,
"conductorUnconducted":1.6,
"conductorWeakBeat":1.6,
"csymAccidentalDoubleFlat":2.096,
"csymAccidentalDoubleFlatSmall":1.136,
"csymAccidentalDoubleSharp":1.776,
"csymAccidentalDoubleSharpSmall":1.776,
"csymAccidentalFlat":1.136,
"csymAccidentalFlatSmall":1.136,
"csymAccidentalNatural":0.736,
"csymAccidentalNaturalSmall":0.836,
"csymAccidentalSharp":1.24,
"csymAccidentalSharpSmall":1.4,
"csymAccidentalTripleFlat":3.056,
"csymAccidentalTripleFlatSmall":2.848,
"csymAccidentalTripleSharp":2.348,
"csymAccidentalTripleSharpSmall":2.9,
"csymAlteredBassSlash":1.256,
"csymAugmented":1.58,
"csymAugmentedSmall":1.9,
"csymBracketLeftTall":0.62,
"csymBracketRightTall":0.62,
"csymDiagonalArrangementSlash":3.996,
"csymDiminished":1.892,
"csymDiminishedSmall":1.892,
"csymHalfDiminished":1.896,
"csymHalfDiminishedSmall":1.892,
"csymMajorSeventh":2.236,
"csymMajorSeventhSmall":2.228,
"csymMinor":1.3,
"csymMinorSmall":1.9,
"csymParensLeftTall":0.66,
"csymParensLeftVeryTall":0.428,
"csymParensRightTall":0.656,
"csymParensRightVeryTall":0.428,
"curlewSign":2.808,
"daCapo":4.332,
"dalSegno":4.328,
"daseianExcellentes1":2.616,
"daseianExcellentes2":2.412,
"daseianExcellentes3":2.272,
"daseianExcellentes4":2.436,
"daseianFinales1":2.616,
"daseianFinales2":2.412,
"daseianFinales3":1.26,
"daseianFinales4":2.436,
"daseianGraves1":2.616,
"daseianGraves2":2.412,
"daseianGraves3":2.66,
"daseianGraves4":2.436,
"daseianResidua1":3.02,
"daseianResidua2":2.292,
"daseianSuperiores1":2.616,
"daseianSuperiores2":2.412,
"daseianSuperiores3":1.072,
"daseianSuperiores4":2.436,
"doubleLateralRollStevens":0.516,
"doubleTongueAbove":1.78,
"doubleTongueAboveNoSlur":1.0,
"doubleTongueBelow":1.78,
"doubleTongueBelowNoSlur":1.0,
"dynamicCombinedSeparatorColon":0.684,
"dynamicCombinedSeparatorHyphen":1.112,
"dynamicCombinedSeparatorSlash":0.892,
"dynamicCrescendoHairpin":3.0,
"dynamicDiminuendoHairpin":3.0,
"dynamicFF":2.436,
"dynamicFFF":3.324,
"dynamicFFFF":4.28,
"dynamicFFFFF":5.24,
"dynamicFFFFFF":6.2,
"dynamicForte":1.456,
"dynamicFortePiano":2.476,
"dynamicForteSmall":1.78,
"dynamicForzando":1.988,
"dynamicHairpinBracketLeft":0.308,
"dynamicHairpinBracketRight":0.308,
"dynamicHairpinParenthesisLeft":0.44,
"dynamicHairpinParenthesisRight":0.44,
"dynamicMF":3.188,
"dynamicMP":3.304,
"dynamicMessaDiVoce":6.22,
"dynamicMezzo":1.748,
"dynamicMezzoSmall":2.168,
"dynamicNiente":1.232,
"dynamicNienteForHairpin":0.536,
"dynamicNienteSmall":1.336,
"dynamicPF":3.08,
"dynamicPP":2.908,
"dynamicPPP":4.288,
"dynamicPPPP":5.668,
"dynamicPPPPP":7.104,
"dynamicPPPPPP":8.496,
"dynamicPiano":1.46,
"dynamicPianoSmall":1.74,
"dynamicRinforzando":1.108,
"dynamicRinforzando1":2.5,
"dynamicRinforzando2":2.976,
"dynamicRinforzandoSmall":1.436,
"dynamicSforzando":0.916,
"dynamicSforzando1":2.416,
"dynamicSforzandoPianissimo":4.792,
"dynamicSforzandoPiano":3.384,
"dynamicSforzandoSmall":0.9,
"dynamicSforzato":2.928,
"dynamicSforzatoFF":3.856,
"dynamicSforzatoPiano":4.3,
"dynamicZ":0.976,
"dynamicZSmall":1.168,
"elecAudioChannelsEight":4.004,
"elecAudioChannelsFive":4.004,
"elecAudioChannelsFour":4.004,
"elecAudioChannelsOne":4.004,
"elecAudioChannelsSeven":4.004,
"elecAudioChannelsSix":4.004,
"elecAudioChannelsThreeFrontal":4.004,
"elecAudioChannelsThreeSurround":4.004,
"elecAudioChannelsTwo":4.004,
"elecAudioIn":4.008,
"elecAudioMono":2.692,
"elecAudioOut":4.008,
"elecAudioStereo":3.996,
"elecCamera":4.0,
"elecDataIn":4.252,
"elecDataOut":4.252,
"elecDisc":4.0,
"elecDownload":2.172,
"elecEject":2.148,
"elecFastForward":3.604,
"elecHeadphones":3.528,
"elecHeadset":3.528,
"elecLineIn":3.284,
"elecLineOut":3.284,
"elecLoop":3.0,
"elecLoudspeaker":2.656,
"elecMIDIController0":2.192,
"elecMIDIController100":2.192,
"elecMIDIController20":2.192,
"elecMIDIController40":2.192,
"elecMIDIController60":2.192,
"elecMIDIController80":2.192,
"elecMIDIIn":2.148,
"elecMIDIOut":2.148,
"elecMicrophone":2.192,
"elecMicrophoneMute":2.192,
"elecMicrophoneUnmute":2.288,
"elecMixingConsole":3.448,
"elecMonitor":4.012,
"elecMute":4.388,
"elecPause":1.984,
"elecPlay":1.872,
"elecPowerOnOff":2.7,
"elecProjector":3.996,
"elecReplay":2.644,
"elecRewind":3.604,
"elecShuffle":4.572,
"elecSkipBackwards":3.928,
"elecSkipForwards":3.928,
"elecStop":2.136,
"elecTape":4.004,
"elecUSB":1.776,
"elecUnmute":3.836,
"elecUpload":2.172,
"elecVideoCamera":3.788,
"elecVideoIn":3.268,
"elecVideoOut":3.268,
"elecVolumeFader":0.1,
"elecVolumeFaderThumb":0.844,
"elecVolumeLevel0":0.944,
"elecVolumeLevel100":0.944,
"elecVolumeLevel20":0.944,
"elecVolumeLevel40":0.944,
"elecVolumeLevel60":0.944,
"elecVolumeLevel80":0.944,
"fClef":2.736,
"fClef15ma":2.736,
"fClef15mb":2.736,
"fClef19thCentury":4.164,
"fClef5Below":2.736,
"fClef8va":2.736,
"fClef8vb":2.736,
"fClefArrowDown":2.72,
"fClefArrowUp":2.736,
"fClefChange":1.848,
"fClefFrench":3.404,
"fClefReversed":2.756,
"fClefSmall":2.8,
"fClefTurned":2.736,
"fermataAbove":2.42,
"fermataBelow":2.42,
"fermataLongAbove":2.42,
"fermataLongBelow":2.42,
"fermataLongHenzeAbove":2.944,
"fermataLongHenzeBelow":2.944,
"fermataShortAbove":2.412,
"fermataShortBelow":2.412,
"fermataShortHenzeAbove":1.736,
"fermataShortHenzeBelow":1.736,
"fermataVeryLongAbove":2.864,
"fermataVeryLongBelow":2.864,
"fermataVeryShortAbove":2.94,
"fermataVeryShortBelow":2.94,
"figbass0":1.02,
"figbass1":0.628,
"figbass2":0.968,
"figbass2Raised":1.032,
"figbass3":0.9,
"figbass4":0.944,
"figbass4Raised":1.28,
"figbass5":0.9,
"figbass5Raised1":0.912,
"figbass5Raised2":0.912,
"figbass5Raised3":0.912,
"figbass6":0.944,
"figbass6Raised":0.944,
"figbass6Raised2":0.784,
"figbass7":0.948,
"figbass7Diminished":0.948,
"figbass7Raised1":0.948,
"figbass7Raised2":0.948,
"figbass8":0.928,
"figbass9":0.944,
"figbass9Raised":0.948,
"figbassBracketLeft":0.272,
"figbassBracketRight":0.276,
"figbassCombiningLowering":1.648,
"figbassCombiningRaising":1.648,
"figbassDoubleFlat":1.092,
"figbassDoubleFlatLongerStem":1.172,
"figbassDoubleSharp":0.952,
"figbassDoubleSharpLongerStem":0.948,
"figbassFlat":0.708,
"figbassFlatLongerStem":0.672,
"figbassNatural":0.536,
"figbassNaturalLongerStem":0.528,
"figbassParensLeft":0.34,
"figbassParensRight":0.352,
"figbassPlus":0.54,
"figbassSharp":0.764,
"figbassSharpLongerStem":0.744,
"figbassTripleFlat":1.496,
"figbassTripleFlatLongerStem":1.62,
"figbassTripleSharp":1.416,
"figbassTripleSharpLongerStem":1.632,
"fingering0":1.02,
"fingering0Italic":0.924,
"fingering1":0.628,
"fingering1Italic":0.772,
"fingering2":0.968,
"fingering2Italic":0.968,
"fingering3":0.9,
"fingering3Italic":0.908,
"fingering4":0.944,
"fingering4Italic":0.948,
"fingering5":0.9,
"fingering5Italic":0.984,
"fingering6":0.948,
"fingering6Italic":0.94,
"fingering7":0.968,
"fingering7Italic":0.96,
"fingering8":0.924,
"fingering8Italic":0.968,
"fingering9":0.94,
"fingering9Italic":0.94,
"fingeringALower":1.068,
"fingeringCLower":0.888,
"fingeringELower":0.8,
"fingeringILower":0.656,
"fingeringLeftBracket":0.268,
"fingeringLeftBracketItalic":0.436,
"fingeringLeftParenthesis":0.356,
"fingeringLeftParenthesisItalic":0.412,
"fingeringMLower":1.66,
"fingeringMultipleNotes":0.628,
"fingeringOLower":0.924,
"fingeringPLower":1.088,
"fingeringQLower":0.996,
"fingeringRightBracket":0.268,
"fingeringRightBracketItalic":0.428,
"fingeringRightParenthesis":0.36,
"fingeringRightParenthesisItalic":0.404,
"fingeringSLower":0.84,
"fingeringSeparatorMiddleDot":0.588,
"fingeringSeparatorMiddleDotWhite":0.588,
"fingeringSeparatorSlash":0.656,
"fingeringSubstitutionAbove":1.12,
"fingeringSubstitutionBelow":1.12,
"fingeringSubstitutionDash":0.792,
"fingeringTLower":0.604,
"fingeringTUpper":0.984,
"fingeringXLower":1.14,
"flag1024thDown":1.24,
"flag1024thDownSmall":1.272,
"flag1024thDownStraight":1.204,
"flag1024thUp":1.088,
"flag1024thUpShort":1.088,
"flag1024thUpSmall":1.148,
"flag1024thUpStraight":1.204,
"flag128thDown":1.1,
"flag128thDownSmall":1.268,
"flag128thDownStraight":1.1,
"flag128thUp":1.036,
"flag128thUpShort":1.036,
"flag128thUpSmall":1.148,
"flag128thUpStraight":1.056,
"flag16thDown":1.168,
"flag16thDownSmall":1.268,
"flag16thDownStraight":1.116,
"flag16thUp":1.116,
"flag16thUpShort":1.056,
"flag16thUpSmall":1.144,
gitextract_a63pdkue/
├── .gitignore
├── LICENSE.txt
├── README.md
├── installers/
│ ├── mac/
│ │ ├── Bravura Font Family.pkgproj
│ │ └── readme.md
│ └── windows/
│ ├── bravura-installer.iss
│ └── readme.md
└── redist/
├── FONTLOG.txt
├── OFL-FAQ.txt
├── OFL.txt
├── bravura-text.md
├── bravura_metadata.json
└── otf/
├── Bravura.otf
└── BravuraText.otf
Condensed preview — 14 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,162K chars).
[
{
"path": ".gitignore",
"chars": 10,
"preview": ".DS_Store\n"
},
{
"path": "LICENSE.txt",
"chars": 4419,
"preview": "Copyright © 2019, Steinberg Media Technologies GmbH (http://www.steinberg.net/),\nwith Reserved Font Name \"Bravura\".\n\nThi"
},
{
"path": "README.md",
"chars": 495,
"preview": "# Bravura music font\n\nBravura is an OpenType music font developed for Steinberg's [Dorico](https://www.steinberg.net/dor"
},
{
"path": "installers/mac/Bravura Font Family.pkgproj",
"chars": 27245,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/P"
},
{
"path": "installers/mac/readme.md",
"chars": 626,
"preview": "# Packages installer project\n\nThis is a simple OS X installer script to install Bravura and Bravura Text, which:\n\n* Inst"
},
{
"path": "installers/windows/bravura-installer.iss",
"chars": 2016,
"preview": "; Inno Setup script for Bravura and Bravura Text\r\n; http://www.jrsoftware.org/isinfo.php\r\n\r\n; This script requires the I"
},
{
"path": "installers/windows/readme.md",
"chars": 882,
"preview": "# Inno Setup installer script\n\nThis is a simple Windows installer script to install Bravura and Bravura Text, which:\n\n* "
},
{
"path": "redist/FONTLOG.txt",
"chars": 44085,
"preview": "FONTLOG for the Bravura font\n============================\n\nThis file provides detailed information on the Bravura Font S"
},
{
"path": "redist/OFL-FAQ.txt",
"chars": 59071,
"preview": "OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL)\r\nVersion 1.1-update6 - December 2020\r\nThe OFL"
},
{
"path": "redist/OFL.txt",
"chars": 4419,
"preview": "Copyright © 2015, Steinberg Media Technologies GmbH (http://www.steinberg.net/),\nwith Reserved Font Name \"Bravura\".\n\nThi"
},
{
"path": "redist/bravura-text.md",
"chars": 14929,
"preview": "# An introduction to using Bravura Text\n\n*Version 1.1, 30 October 2015*\n\nBravura Text is a [SMuFL-compliant] [1] font co"
},
{
"path": "redist/bravura_metadata.json",
"chars": 733542,
"preview": "{\n\t\"fontName\":\"Bravura\",\n\t\"fontVersion\":1.392,\n\t\"engravingDefaults\":{\n\t\t\"arrowShaftThickness\":0.16,\n\t\t\"barlineSeparation"
}
]
// ... and 2 more files (download for full content)
About this extraction
This page contains the full source code of the steinbergmedia/bravura GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 14 files (870.8 KB), approximately 387.4k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.