Skip to content

Commit

Permalink
Merge pull request #19308 from Eism/guitar_features_tunings
Browse files Browse the repository at this point in the history
Make it possible to apply alternate tuning symbols (guitar)
  • Loading branch information
Eism committed Oct 18, 2023
2 parents 7091ae6 + d06be09 commit 4c61b2e
Show file tree
Hide file tree
Showing 113 changed files with 2,929 additions and 195 deletions.
1 change: 1 addition & 0 deletions share/instruments/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
install(FILES
instruments.xml
orders.xml
string_tunings_presets.json
DESTINATION ${Mscore_SHARE_NAME}${Mscore_INSTALL_NAME}instruments
)

308 changes: 308 additions & 0 deletions share/instruments/string_tunings_presets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,308 @@
[
{
"familyId": "guitars",
"strings": [
{
"number": 5,
"presets": [
{
"name": "Standard",
"value": [40, 45, 50, 55, 59]
},{
"name": "Hi C",
"value": [40, 45, 50, 55, 60]
},{
"name": "Baritone",
"value": [36, 43, 50, 57, 64]
},{
"name": "Open G",
"value": [43, 50, 55, 59, 62]
}
]
},{
"number": 6,
"presets": [
{
"name": "Standard",
"value": [40, 45, 50, 55, 59, 64]
},{
"name": "Tune down 1/2 step",
"value": [39, 44, 49, 54, 58, 63]
},{
"name": "Tune down 1 step",
"value": [38, 43, 48, 53, 57, 62]
},{
"name": "Tune down 2 step",
"value": [36, 41, 46, 51, 55, 60]
},{
"name": "Dropped D tune down 1/2 step",
"value": [37, 44, 49, 54, 58, 63]
},{
"name": "Dropped D Variant",
"value": [38, 45, 50, 55, 57, 64]
},{
"name": "Double Dropped D",
"value": [38, 45, 50, 55, 59, 62]
},{
"name": "Dropped C",
"value": [36, 43, 48, 53, 57, 62]
},{
"name": "Dropped E",
"value": [40, 47, 52, 57, 61, 66]
},{
"name": "Dropped B",
"value": [35, 42, 47, 52, 56, 61]
},{
"name": "Baritone",
"value": [35, 40, 45, 50, 54, 59]
},{
"name": "Open C",
"value": [36, 43, 48, 55, 60, 64]
},{
"name": "Open Cm",
"value": [36, 43, 48, 55, 60, 63]
},{
"name": "Open C6",
"value": [36, 43, 48, 55, 57, 64]
},{
"name": "Open CM7",
"value": [36, 43, 52, 55, 59, 64]
},{
"name": "Open D",
"value": [38, 45, 50, 54, 57, 62]
},{
"name": "Open Dm",
"value": [38, 45, 50, 53, 57, 62]
},{
"name": "Open D5",
"value": [38, 45, 50, 50, 57, 62]
},{
"name": "Open D6",
"value": [38, 45, 50, 54, 59, 62]
},{
"name": "Open Dsus4",
"value": [38, 45, 50, 55, 57, 62]
},{
"name": "Open E",
"value": [40, 47, 52, 56, 59, 64]
},{
"name": "Open Em",
"value": [40, 47, 52, 55, 59, 64]
},{
"name": "Open Esus11",
"value": [40, 45, 52, 55, 59, 64]
},{
"name": "Open F",
"value": [41, 45, 48, 53, 60, 65]
},{
"name": "Open G",
"value": [38, 43, 50, 55, 59, 62]
},{
"name": "Open Gm",
"value": [38, 43, 50, 55, 58, 62]
},{
"name": "Open Gsus4",
"value": [38, 43, 50, 55, 60, 62]
},{
"name": "Open G6",
"value": [38, 43, 50, 55, 59, 64]
},{
"name": "Open A",
"value": [40, 45, 52, 57, 61, 64]
},{
"name": "Open Am",
"value": [40, 45, 52, 57, 60, 64]
},{
"name": "Dobro Open G",
"value": [43, 47, 50, 55, 59, 62]
},{
"name": "Lute or Vihuela",
"value": [40, 45, 50, 54, 59, 64]
},{
"name": "Nashville",
"value": [52, 57, 62, 67, 59, 64]
}
]
},{
"number": 7,
"presets": [
{
"name": "Standard",
"value": [35, 40, 45, 50, 55, 59, 64]
},{
"name": "Drop D",
"value": [33, 38, 45, 50, 55, 59, 64]
},{
"name": "Tune down 1/2 step",
"value": [34, 39, 44, 49, 54, 58, 63]
},{
"name": "Tune down 1 step",
"value": [33, 38, 43, 48, 53, 57, 62]
},{
"name": "Tune down 2 step",
"value": [31, 36, 41, 46, 51, 55, 60]
}
]
},{
"number": 8,
"presets": [
{
"name": "Standard",
"value": [30, 35, 40, 45, 50, 55, 59, 64]
},{
"name": "Tune down 1/2 step",
"value": [29, 34, 39, 44, 49, 54, 58, 63]
},{
"name": "Tune down 1 step",
"value": [28, 33, 38, 43, 48, 53, 57, 62]
},{
"name": "Tune down 2 step",
"value": [27, 32, 36, 41, 46, 51, 55, 60]
}
]
},{
"number": 9,
"presets": [
{
"name": "Standard",
"value": [25, 30, 35, 40, 45, 50, 55, 59, 64]
}
]
},{
"number": 10,
"presets": [
{
"name": "Standard",
"value": [30, 32, 34, 36, 40, 45, 57, 62, 67, 76]
},{
"name": "Baroque",
"value": [45, 47, 48, 50, 52, 57, 62, 67, 71, 76]
}
]
}
]
},
{
"familyId": "shamisens",
"strings": [
{
"number": 3,
"presets": [
{
"name": "Standard",
"value": [57, 64, 69]
}
]
}
]
},
{
"familytId": "banjos",
"strings": [
{
"number": 4,
"presets": [
{
"name": "Tenor",
"value": [48, 55, 62, 69]
},{
"name": "Irish Tenor",
"value": [43, 50, 57, 64]
},{
"name": "Chicago Tenor",
"value": [50, 55, 59, 64]
}
]
},{
"number": 5,
"presets": [
{
"name": "Open G",
"value": [67, 50, 55, 59, 62]
},{
"name": "Drop C",
"value": [67, 48, 55, 59, 62]
},{
"name": "G Modal",
"value": [67, 50, 55, 60, 62]
},{
"name": "Double C",
"value": [67, 60, 55, 48, 67]
},{
"name": "Open D",
"value": [66, 50, 54, 57, 62]
}
]
},{
"number": 6,
"presets": [
{
"name": "Standard",
"value": [40, 45, 50, 55, 59, 64]
}
]
}
]
},{
"familyId": "mandolins",
"strings": [
{
"number": 4,
"presets": [
{
"name": "Standard",
"value": [55, 62, 69, 76]
}
]
}
]
},{
"familyId": "ukuleles",
"strings": [
{
"number": 4,
"presets": [
{
"name": "C Tuning",
"value": [67, 60, 64, 69]
},{
"name": "D Tuning",
"value": [69, 62, 66, 71]
},{
"name": "Low G",
"value": [55, 60, 64, 69]
},{
"name": "Baritone",
"value": [50, 55, 59, 64]
}
]
}
]
},{
"familyId": "orchestral-strings",
"strings": [
{
"number": 4,
"presets": [
{
"name": "Standard",
"value": [55, 62, 69, 76]
}
]
}
]
},{
"instrumentId": "contrabass",
"strings": [
{
"number": 4,
"presets": [
{
"name": "Standard",
"value": [28, 33, 38, 43]
}
]
}
]
}
]
19 changes: 16 additions & 3 deletions src/engraving/dom/chord.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1599,11 +1599,24 @@ void Chord::cmdUpdateNotes(AccidentalState* as)
const Staff* st = staff();
StaffGroup staffGroup = st->staffTypeForElement(this)->group();
if (staffGroup == StaffGroup::TAB) {
const Instrument* instrument = part()->instrument(this->tick());
Fraction tick = this->tick();
for (const Staff* _staff : st->staffList()) {
if (!_staff || _staff == st) {
continue;
}

if (_staff->score() == st->score() && !_staff->isTabStaff(tick)) {
if (!_staff->reflectTranspositionInLinkedTab()) {
return;
}
}
}

const StringData* stringData = part()->stringData(tick);
for (Chord* ch : graceNotes()) {
instrument->stringData()->fretChords(ch);
stringData->fretChords(ch);
}
instrument->stringData()->fretChords(this);
stringData->fretChords(this);
return;
} else {
// if not tablature, use instrument->useDrumset to set staffGroup (to allow pitched to unpitched in same staff)
Expand Down
1 change: 1 addition & 0 deletions src/engraving/dom/chordrest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,7 @@ EngravingItem* ChordRest::drop(EditData& data)
case ElementType::TRIPLET_FEEL:
case ElementType::PLAYTECH_ANNOTATION:
case ElementType::CAPO:
case ElementType::STRING_TUNINGS:
case ElementType::STICKING:
case ElementType::STAFF_STATE:
case ElementType::HARP_DIAGRAM:
Expand Down
6 changes: 3 additions & 3 deletions src/engraving/dom/cmd.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1735,7 +1735,7 @@ void Score::upDown(bool up, UpDownMode mode)
break;
case StaffGroup::TAB:
{
const StringData* stringData = part->instrument(tick)->stringData();
const StringData* stringData = part->stringData(tick);
switch (mode) {
case UpDownMode::OCTAVE: // move same note to next string, if possible
{
Expand Down Expand Up @@ -1869,7 +1869,7 @@ void Score::upDown(bool up, UpDownMode mode)
refret = true;
}
if (refret) {
const StringData* stringData = part->instrument(tick)->stringData();
const StringData* stringData = part->stringData(tick);
stringData->fretChords(oNote->chord());
}
}
Expand Down Expand Up @@ -2005,7 +2005,7 @@ static void changeAccidental2(Note* n, int pitch, int tpc)
// as pitch has changed, calculate new
// string & fret
//
const StringData* stringData = n->part()->instrument(n->tick())->stringData();
const StringData* stringData = n->part()->stringData(n->tick());
if (stringData) {
stringData->convertPitch(pitch, st, &string, &fret);
}
Expand Down
2 changes: 2 additions & 0 deletions src/engraving/dom/dom.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,8 @@ set(DOM_SRC
${CMAKE_CURRENT_LIST_DIR}/stretchedbend.h
${CMAKE_CURRENT_LIST_DIR}/stringdata.cpp
${CMAKE_CURRENT_LIST_DIR}/stringdata.h
${CMAKE_CURRENT_LIST_DIR}/stringtunings.cpp
${CMAKE_CURRENT_LIST_DIR}/stringtunings.h
${CMAKE_CURRENT_LIST_DIR}/swing.cpp
${CMAKE_CURRENT_LIST_DIR}/swing.h
${CMAKE_CURRENT_LIST_DIR}/symbol.cpp
Expand Down
Loading

0 comments on commit 4c61b2e

Please sign in to comment.