diff --git a/README.md b/README.md
index 406dbdd..bf69b95 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,7 @@ This provides a plugin to automatically add fingering / tab diagrams to the
notes in scores for tin whistle. The plugin will adjust for tin whistles tuned
to D, C and Bb, according to the instrument defined for each staff. Note that
if the staff instrument is not a whistle then no tabs are applied, otherwise the
-plugin will adjust the tab diagram position for the lowest note possible
-(currently D, C or Bb).
+plugin will adjust the tab diagram position for the lowest note possible.
See the "Here be Dragons" section of this document that discusses various
quirks related to early MuseScore 3 releases.
@@ -116,3 +115,60 @@ The plugin will skip any staffs that are not for a Tin Whistle, so for example
if the staff is for the Irish Flute then it will not apply the tabs. This makes
sense as other instrument's fingering will be different.
+## Extra Tin Whistle and Low Whistle Tunings
+The files `all-whistles.xml` and `all-whistles-v4.xml` are extra instrument files
+for adding both High Tin Whistle types and Low Whistle types to MuseScore.
+MuseScore comes with whistles D, C and B♭ by default but you may want to use other tunings.
+
+The High Tin Whistle, which is a metal 6 hole Flageolet, comes in various tunings.
+These are listed in order of decreasing physical size:
+* "B♭ Tin Whistle" tuned to key B♭, also used for keys Cm and E♭
+* "C Tin Whistle" tuned to C, also for Dm and F
+* "D Tin Whistle" tuned to D, also for Em and G
+* "E♭ Tin Whistle" tuned to E♭, also for Fm and A♭
+* "F Tin Whistle" tuned to F, also for Gm (F can be played on a C whistle)
+* "G Tin Whistle" tuned to G, also for Am (G can be played on a D whistle)
+
+Tuning to D is by far the most common, so "Tin Whistle" is the same as "D Tin Whistle".
+
+The Low Whistle is larger than the more well-known tin whistle and has a lower pitch.
+This whistle is commonly available in three tunings:
+* "D Low Whistle" tuned to D4, also used for keys Em and G
+* "F Low Whistle" tuned to F4, also used for Gm and B♭
+* "G Low Whistle" tuned to G4, also used for Am and C
+
+### Install for extra whistles
+The file `all-whistles.xml` or `all-whistles-v4.xml` needs to be installed using the MuseScore menu.
+
+#### Install for MuseScore 4.x
+Download the `all-whistles-v4.xml` instrument extension file to your operating system.
+
+1. Start Version 4.x Musescore
+2. use the drop down menus to navigate 'MuseScore' then 'Preferences...' then 'Score' panel
+3. Use the file icon beside 'Score Order List 2:' to select the downloaded `all-whistles.xml` file
+4. Accept the changes using the OK button
+
+You can now add a tin/low whistle staff to your score using the 'Instruments' tab and 'Add' button.
+Note that these whistles appear in the 'World Music' genre, not the 'Common' genre.
+
+#### Install for MuseScore 2.x and MuseScore 3.x
+Download the `all-whistles.xml` instrument extension file to your operating system.
+Use the same file for both MuseScore version 2.x and version 3.x :
+
+1. Either MuseScore 2.x: copy file `all-whistles.xml` to `Documents/MuseScore2/Extensions/all-whistles.xml`
+2. Or for MuseScore 3.x: copy file `all-whistles.xml` to `Documents/MuseScore3/Extensions/all-whistles.xml`
+3. within Musescore menu, navigate to 'MuseScore' then 'Preferences...' then 'Score' tab
+4. in the Default Files panel, add the file to 'Instrument List 2' extension by:
+5. browsing to `Documents/MuseScore3/Extensions/all-whistles.xml` and add to 'Instrument List 2'
+6. Accept the changes with the OK button
+
+You may now add a tin whistle staff using MuseScore menu item 'Edit' then 'Instruments...',
+where MuseScore lists these extra instruments under 'World Music' 'Woodwinds'.
+
+Once a tin whistle staff is added to the score there is no need to keep the instrument
+file `all-whistles.xml` in the 'Instrument List 2' extension.
+
+## Examples
+
+The score `examples/tin_whistle_range_test.mscz` is an example showing all the High Tin Whistle staves.
+The score `examples/low_whistle_range_test.mscz` shows all three Low Whistle staves.
diff --git a/all-whistles-v4.xml b/all-whistles-v4.xml
new file mode 100644
index 0000000..1cc9e25
--- /dev/null
+++ b/all-whistles-v4.xml
@@ -0,0 +1,179 @@
+
+
+
+ Woodwinds
+
+ whistles
+ Tin Whistle
+ B♭ Tin Whistle
+ B♭ Wh.
+ B♭
+ Tin Whistle pitched in B♭, Cm and E♭
+ wind.flutes.whistle.tin.bflat
+ G8va
+ 1
+ 70-94
+ 70-100
+
+
+
+ world
+
+
+ whistles
+ Tin Whistle
+ C Tin Whistle
+ C Wh.
+ C
+ Tin Whistle pitched in C, Dm and F
+ wind.flutes.whistle.tin.c
+ G8va
+ 1
+ 72-96
+ 72-102
+
+
+
+ world
+
+
+ whistles
+ Tin Whistle
+ D Tin Whistle
+ D Wh.
+ D
+ Tin Whistle pitched in D, Em and G
+ wind.flutes.whistle.tin.d
+ G8va
+ 1
+ 74-98
+ 74-104
+
+
+
+ world
+
+
+ whistles
+ Tin Whistle
+ Tin Whistle
+ Tin Wh.
+ D
+ Tin Whistle pitched in D. The most common variant.
+ wind.flutes.whistle.tin.common
+ G8va
+ 1
+ 74-98
+ 74-104
+
+
+
+ world
+
+
+ whistles
+ Tin Whistle
+ E♭ Tin Whistle
+ E♭ Wh.
+ E♭
+ Tin Whistle pitched in E♭, Fm and A♭
+ wind.flutes.whistle.tin.eflat
+ G8va
+ 1
+ 75-99
+ 75-105
+
+
+
+ world
+
+
+ whistles
+ Tin Whistle
+ F Tin Whistle
+ F Wh.
+ F
+ Tin Whistle pitched in F, Gm and B♭
+ wind.flutes.whistle.tin.f
+ G8va
+ 1
+ 77-101
+ 77-107
+
+
+
+ world
+
+
+ whistles
+ Tin Whistle
+ G Tin Whistle
+ G Wh.
+ G
+ Tin Whistle pitched in G, Am and C
+ wind.flutes.whistle.tin.g
+ G8va
+ 1
+ 79-103
+ 79-109
+
+
+
+ world
+
+
+ whistles
+ Low Whistle
+ D Low Whistle
+ D Wh.
+ D
+ Low Whistle pitched in D, Em and G. The most common variant.
+ wind.flutes.whistle.low
+ G8va
+ 1
+ 62-86
+ 62-92
+
+
+
+
+ world
+
+
+ whistles
+ Low Whistle
+ F Low Whistle
+ F Wh.
+ F
+ Low Whistle pitched in F, Gm and B♭
+ wind.flutes.whistle.low
+ G8va
+ 1
+ 65-89
+ 65-95
+
+
+
+
+ world
+
+
+ whistles
+ Low Whistle
+ G Low Whistle
+ G Wh.
+ G
+ Low Whistle pitched in G, Am and C
+ wind.flutes.whistle.low
+ G8va
+ 1
+ 67-91
+ 67-97
+
+
+
+
+ world
+
+
+
diff --git a/all-whistles.xml b/all-whistles.xml
new file mode 100644
index 0000000..1790aa6
--- /dev/null
+++ b/all-whistles.xml
@@ -0,0 +1,146 @@
+
+
+
+ Woodwinds
+
+ B♭ Tin Whistle
+ B♭ Tin Wh.
+ 6 hole Flageolet, metal construction, keys B♭, Cm and E♭
+ wind.flutes.whistle.tin.bflat
+ G8va
+ 1
+ 70-94
+ 70-100
+
+
+
+ world
+
+
+ C Tin Whistle
+ C Tin Wh.
+ 6 hole Flageolet, metal construction, keys C, Dm and F
+ wind.flutes.whistle.tin.c
+ G8va
+ 1
+ 72-96
+ 72-102
+
+
+
+ world
+
+
+ D Tin Whistle
+ D Tin Wh.
+ 6 hole Flageolet, metal construction, keys D, Em and G
+ wind.flutes.whistle.tin.d
+ G8va
+ 1
+ 74-98
+ 74-104
+
+
+
+ world
+
+
+ Tin Whistle
+ Tin Wh.
+ metal 6 hole Flageolet, most commonly tuned to D
+ wind.flutes.whistle.tin.common
+ G8va
+ 1
+ 74-98
+ 74-104
+
+
+
+ world
+
+
+ E♭ Tin Whistle
+ E♭ Tin Wh.
+ 6 hole Flageolet, metal construction, keys E♭, Fm and A♭
+ wind.flutes.whistle.tin.eflat
+ G8va
+ 1
+ 75-99
+ 75-105
+
+
+
+ world
+
+
+ F Tin Whistle
+ F Tin Wh.
+ 6 hole Flageolet, metal construction, keys F, Gm and B♭
+ wind.flutes.whistle.tin.f
+ G8va
+ 1
+ 77-101
+ 77-107
+
+
+
+ world
+
+
+ G Tin Whistle
+ G Tin Wh.
+ 6 hole Flageolet, metal construction, keys G, Am and C
+ wind.flutes.whistle.tin.g
+ G8va
+ 1
+ 79-103
+ 79-109
+
+
+
+ world
+
+
+ D Low Whistle
+ D Low Wh.
+ 6 hole Flageolet, metal construction, keys D, Em and G
+ wind.flutes.whistle.low.d
+ G8va
+ 1
+ 62-86
+ 62-92
+
+
+
+ world
+
+
+ F Low Whistle
+ F Low Wh.
+ 6 hole Flageolet, metal construction, keys F, Gm and B♭
+ wind.flutes.whistle.low.f
+ G8va
+ 1
+ 65-89
+ 65-95
+
+
+
+ world
+
+
+ G Low Whistle
+ G Low Wh.
+ 6 hole Flageolet, metal construction, keys G, Am and C
+ wind.flutes.whistle.low.g
+ G8va
+ 1
+ 67-91
+ 67-97
+
+
+
+ world
+
+
+
diff --git a/tin_whistle_tablature.qml b/tin_whistle_tablature.qml
index 62375a5..f4b2cf2 100644
--- a/tin_whistle_tablature.qml
+++ b/tin_whistle_tablature.qml
@@ -60,7 +60,7 @@ MuseScore {
standardButtons: StandardButton.Ok
title: "No Staffs use a Tin Whistle"
text: "No selected staff in the current score uses a tin whistle instrument.\n" +
- "Use menu command \"View -> Instruments\" to select instruments"
+ "Use tab \"Instruments -> Add\" to select instruments"
onAccepted: {
quit()
}
@@ -151,47 +151,40 @@ MuseScore {
}
// MuseScore 3 returned the MusicXML instrument ID, MuseScore 4 returns its own instrument ID
- if (instrument === "wind.flutes.whistle.tin" || instrument === "c-tin-whistle") {
- basePitch = 72 // default is C tuning (even though D is the most common)
+ if (instrument === "c-tin-whistle") {
+ basePitch = 72 // is C tuning
tabOffsetY = 3.3
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.c") {
- basePitch = 72 // C tuning
- tabOffsetY = 3.3
- whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.bflat" || instrument === "bflat-tin-whistle") {
+ } else if (instrument === "bflat-tin-whistle") {
basePitch = 70 // B flat tuning
tabOffsetY = 3.6
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.d" || instrument === "d-tin-whistle") {
+ } else if (instrument === "d-tin-whistle" || instrument === "common-tin-whistle") {
+ // default is D tuning because it is the most common
basePitch = 74 // D tuning
tabOffsetY = 3
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.common") {
- basePitch = 74 // D tuning (the most common)
- tabOffsetY = 3
- whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.eflat") {
+ } else if (instrument === "eflat-tin-whistle") {
basePitch = 75 // E flat tuning
tabOffsetY = 3
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.f") {
+ } else if (instrument === "f-tin-whistle") {
basePitch = 77 // F tuning
tabOffsetY = 3
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.tin.g") {
+ } else if (instrument === "g-tin-whistle") {
basePitch = 79 // G tuning
tabOffsetY = 3
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.low.d") {
+ } else if (instrument === "d-low-whistle") {
basePitch = 62 // D tuning for low whistle
tabOffsetY = 5.6
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.low.f") {
+ } else if (instrument === "f-low-whistle") {
basePitch = 65 // F tuning for low whistle
tabOffsetY = 4.9
whistleFound = true;
- } else if (instrument === "wind.flutes.whistle.low.g") {
+ } else if (instrument === "g-low-whistle") {
basePitch = 67 // G tuning for low whistle
tabOffsetY = 4.0
whistleFound = true;