diff --git a/CHANGELOG.md b/CHANGELOG.md
index b5d2a8b8db8..d78d2205d83 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## [2.7.1] - 2020-05-22
+* Fix bug with mensural clefs not displaying
+
## [2.7.0] - 2020-05-13
* Support for `@pname.ges` and `@pnum` in MIDI output (@rettinghaus)
* Support for `@xml:space` in MusicXML import (@rettinghaus)
diff --git a/README.md b/README.md
index c291bf29de7..01aaa7ce679 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ Verovio is a fast, portable and lightweight library for engraving [Music Encodin
See the JavaScript toolkit running in the [MEI Viewer](http://www.verovio.org/mei-viewer.xhtml) and check out the [app](http://www.verovio.org/app.html) or the [tutorial](http://www.verovio.org/tutorial.xhtml) for its web integration and for enabling user interaction.
-![Choice interaction](https://raw.githubusercontent.com/rism-ch/verovio/gh-pages/movies/reflow.gif)
+![Choice interaction](https://raw.githubusercontent.com/rism-ch/verovio.org/gh-pages/movies/reflow.gif)
Verovio can also render [Plaine & Easie Code](https://www.iaml.info/plaine-easie-code) and imports MusicXML, Humdrum data, and ABC notation. It is designed as a tool usable as a one-step conversion tool and it is written in pure standard C++.
diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml
index 9407c10f979..2aed3bdbc34 100644
--- a/bindings/java/pom.xml
+++ b/bindings/java/pom.xml
@@ -4,7 +4,7 @@
org.rism.verovio
VerovioToolkit
- 2.7.0
+ 2.7.1
jar
VerovioToolkit
diff --git a/bindings/python/setup.py b/bindings/python/setup.py
index f43e82132f3..8c19db5f71f 100755
--- a/bindings/python/setup.py
+++ b/bindings/python/setup.py
@@ -61,7 +61,7 @@
)
setup(name='verovio',
- version='2.7.0',
+ version='2.7.1',
url="www.verovio.org",
description="""A library and toolkit for engraving MEI music notation into SVG""",
ext_modules=[verovio_module],
diff --git a/codemeta.json b/codemeta.json
index eac68522b88..dcfff8791d9 100644
--- a/codemeta.json
+++ b/codemeta.json
@@ -4,8 +4,8 @@
"identifier": "Verovio",
"name": "Verovio",
"description": "Verovio is a fast, portable and lightweight open-source library for engraving Music Encoding Initiative (MEI) music scores into SVG.",
- "softwareVersion": "2.7.0",
- "datePublished": "2020-05-13",
+ "softwareVersion": "2.7.1",
+ "datePublished": "2020-05-22",
"license": "https://www.gnu.org/licenses/lgpl-3.0",
"programmingLanguage": [{
"@type": "ComputerLanguage",
diff --git a/emscripten/npm/package.json b/emscripten/npm/package.json
index c493d83b4dd..621b93c7dff 100644
--- a/emscripten/npm/package.json
+++ b/emscripten/npm/package.json
@@ -1,6 +1,6 @@
{
"name": "verovio",
- "version": "2.7.0",
+ "version": "2.7.1",
"description": "This is the stable version of the verovio package",
"main": "index.js",
"keywords": [
diff --git a/include/vrv/vrvdef.h b/include/vrv/vrvdef.h
index e7e39652b2d..81cc52ddcd0 100644
--- a/include/vrv/vrvdef.h
+++ b/include/vrv/vrvdef.h
@@ -35,7 +35,7 @@ namespace vrv {
#define VERSION_MAJOR 2
#define VERSION_MINOR 7
-#define VERSION_REVISION 0
+#define VERSION_REVISION 1
// Adds "-dev" in the version number - should be set to false for releases
#define VERSION_DEV false
diff --git a/src/view_element.cpp b/src/view_element.cpp
index 9b8ea28c48f..6e4c3ac177f 100644
--- a/src/view_element.cpp
+++ b/src/view_element.cpp
@@ -613,6 +613,43 @@ void View::DrawClef(DeviceContext *dc, LayerElement *element, Layer *layer, Staf
bool isMensural = Att::IsMensuralType(staff->m_drawingNotationType);
bool isNeume = staff->m_drawingNotationType == NOTATIONTYPE_neume;
+ // cmn clefs
+ int shapeOctaveDis = Clef::ClefId(clef->GetShape(), 0, clef->GetDis(), clef->GetDisPlace());
+ // G clef
+ if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_NONE, STAFFREL_basic_NONE))
+ sym = SMUFL_E050_gClef;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_8, STAFFREL_basic_below))
+ sym = SMUFL_E052_gClef8vb;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_15, STAFFREL_basic_below))
+ sym = SMUFL_E051_gClef15mb;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_8, STAFFREL_basic_above))
+ sym = SMUFL_E053_gClef8va;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_15, STAFFREL_basic_above))
+ sym = SMUFL_E054_gClef15ma;
+ // C clef
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_C, 0, OCTAVE_DIS_NONE, STAFFREL_basic_NONE))
+ sym = SMUFL_E05C_cClef;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_C, 0, OCTAVE_DIS_8, STAFFREL_basic_below))
+ sym = SMUFL_E05D_cClef8vb;
+ else if (clef->GetShape() == CLEFSHAPE_C)
+ sym = SMUFL_E05C_cClef;
+ // F clef
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_NONE, STAFFREL_basic_NONE))
+ sym = SMUFL_E062_fClef;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_8, STAFFREL_basic_below))
+ sym = SMUFL_E064_fClef8vb;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_15, STAFFREL_basic_below))
+ sym = SMUFL_E063_fClef15mb;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_8, STAFFREL_basic_above))
+ sym = SMUFL_E065_fClef8va;
+ else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_15, STAFFREL_basic_above))
+ sym = SMUFL_E066_fClef15ma;
+ else if (clef->GetShape() == CLEFSHAPE_F)
+ sym = SMUFL_E062_fClef;
+ // Perc clef
+ else if (clef->GetShape() == CLEFSHAPE_perc)
+ sym = SMUFL_E069_unpitchedPercussionClef1;
+
// mensural clefs
if (isMensural) {
if (staff->m_drawingNotationType == NOTATIONTYPE_mensural_black) {
@@ -640,44 +677,6 @@ void View::DrawClef(DeviceContext *dc, LayerElement *element, Layer *layer, Staf
else if (clef->GetShape() == CLEFSHAPE_F)
sym = SMUFL_E902_chantFclef;
}
- // cmn clefs
- else {
- int shapeOctaveDis = Clef::ClefId(clef->GetShape(), 0, clef->GetDis(), clef->GetDisPlace());
- // G clef
- if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_NONE, STAFFREL_basic_NONE))
- sym = SMUFL_E050_gClef;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_8, STAFFREL_basic_below))
- sym = SMUFL_E052_gClef8vb;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_15, STAFFREL_basic_below))
- sym = SMUFL_E051_gClef15mb;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_8, STAFFREL_basic_above))
- sym = SMUFL_E053_gClef8va;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_G, 0, OCTAVE_DIS_15, STAFFREL_basic_above))
- sym = SMUFL_E054_gClef15ma;
- // C clef
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_C, 0, OCTAVE_DIS_NONE, STAFFREL_basic_NONE))
- sym = SMUFL_E05C_cClef;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_C, 0, OCTAVE_DIS_8, STAFFREL_basic_below))
- sym = SMUFL_E05D_cClef8vb;
- else if (clef->GetShape() == CLEFSHAPE_C)
- sym = SMUFL_E05C_cClef;
- // F clef
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_NONE, STAFFREL_basic_NONE))
- sym = SMUFL_E062_fClef;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_8, STAFFREL_basic_below))
- sym = SMUFL_E064_fClef8vb;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_15, STAFFREL_basic_below))
- sym = SMUFL_E063_fClef15mb;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_8, STAFFREL_basic_above))
- sym = SMUFL_E065_fClef8va;
- else if (shapeOctaveDis == Clef::ClefId(CLEFSHAPE_F, 0, OCTAVE_DIS_15, STAFFREL_basic_above))
- sym = SMUFL_E066_fClef15ma;
- else if (clef->GetShape() == CLEFSHAPE_F)
- sym = SMUFL_E062_fClef;
- // Perc clef
- else if (clef->GetShape() == CLEFSHAPE_perc)
- sym = SMUFL_E069_unpitchedPercussionClef1;
- }
if (sym == 0) {
clef->SetEmptyBB();