Naciśnięcie skrótu alt-o przełącza widok pomiędzy oryginalnymi kluczami, w jakich został zapisany utwór i kluczami współczesnymi w transkrypcji. Poniższy przykład ilustruje działanie funkcji:
Ta funkcja programu jest przydatna w sytuacji, gdy oryginalne klucze, w jakich zapisano utwór różnią się od tych, które zastosowano w transkrypcji. Można ją też zastosować w celu ćwiczenia umiejętności czytania w różnych kluczach.
Oryginalne klucze zapisywane są w kodzie Humdrum poprzez dodanie “o” do określenia “clef”:
*oclefF4 *oclefC4 *oclefC3 *oclefC1
*clefF4 *clefGv2 *clefG2 *clefG2
Jeśeli w transkrypcji (kodzie Humdrum) brak linii zawierającej zapisaną
za pomocą oclef
informację na temat kluczy, wciśnięcie alt-o
nie przyniesie żadnego efektu.
Spróbuj zastosować alt-o do chorałów Bacha, jak na powyższym przykładzie.
Uwagi dotyczące wdrażania funkcji
Kiedy dane są konwertowane z formatu Humdrum do MEI, oryginalne klucze są zapisywane w kodzie MEI jako opcjonalne:
<app>
<lem/>
<rdg label="original-clef">
<scoreDef>
<staffGrp>
<staffDef clef.shape="C" clef.line="1" n="1" />
<staffDef clef.shape="C" clef.line="3" n="2" />
<staffDef clef.shape="C" clef.line="4" n="3" />
<staffDef clef.shape="F" clef.line="4" n="4" />
</staffGrp>
</scoreDef>
</rdg>
</app>
Element <app>
służy do zapewnienia alternatywnej zawartości w pliku MEI. W tym przypadku są
dwie opcje: z <lem>
oznaczającym domyślny wybór (nie dodawaj oryginalnych kluczy) oraz <rdg>
,
który jest oznaczony jako original-clef
. Domyślnie w tym przypadku program nic nie robi, co oznacza,
że przypisane na początku pliku klucze nie są zmieniane:
<scoreDef>
<staffGrp symbol="bracket">
<staffDef clef.shape="G" clef.line="2" key.sig="1f" meter.count="4" meter.unit="4" meter.sym="common" n="1" label="Soprano" lines="5" />
<staffDef clef.shape="G" clef.line="2" key.sig="1f" meter.count="4" meter.unit="4" meter.sym="common" n="2" label="Alto" lines="5" />
<staffDef clef.shape="G" clef.line="2" clef.dis="8" clef.dis.place="below" key.sig="1f" meter.count="4" meter.unit="4" meter.sym="common" n="3" label="Tenor" lines="5" />
<staffDef clef.shape="F" clef.line="4" key.sig="1f" meter.count="4" meter.unit="4" meter.sym="common" n="4" label="Bass" lines="5" />
</staffGrp>
</scoreDef>
W pakiecie narzędzi verovio JavaScript opcja “appXPathQuery” może zostać przekazana do zestawu narzędzi,
aby uruchomić polecenie XPath na danych <app>
w pliku wejściowym MEI. Aby wybrać oryginalne klucze,
opcje są ustawione na:
var options = {
format: "humdrum",
pageWidth: 2000,
pageHeight: 2500,
appXPathQuery: "./rdg[contains(@label, 'original-clef')]"
};
W tym przypadku zapytanie [XPath] (https://en.wikipedia.org/wiki/XPath) wyszukuje fragment zawierający
etykietę atrybutu, która ma wartość original-clef
.
[Wiersz polecenia] (/myvhv/command_line) równoważny powyższym opcjom będzie wyglądał następująco:
humcat h://chorales/chor074.krn | verovio - -o chor074.svg -f humdrum -w 2000 -h 2500 --app-xpath-query="./rdg[contains(@label, 'original-clef')]"
Jest to podobne do zastosowania narzędzi strophe lub thru
do danych Humdrum, chociaż system *oclef
jest szczególnym przypadkiem, który nie wymaga używania strophe lub thru.
Oto równoważne działanie przy użyciu thru:
**kern
*I"Soprano
*>[modern,rest]
*>original-clefs[original,rest]
*>modern
*clefG2
*>original
*clefC1
*>rest
*k[b-]
*M4/4
*met(c)
4a
=1
...
Następnie, aby użyć współczesnych kluczy:
thru chor074-thru.krn | verovio - -o chor074-modern.svg
oraz oryginalnych kluczy:
thru -v original-clefs chor074-thru.krn | verovio - -o chor074-original.svg
Poniżej podobna funkcjonalność z użyciem strophe:
**kern
*I"Soprano
*strophe
*^
*S/modern *S/original
*clefG2 *clefC1
*S/fin *S/fin
*v *v
*k[b-]
*M4/4
*met(c)
4a
=1
...
Aby wyodrębnić współczesne klucze za pomocą strophe:
strophe -x modern chor074-thru.krn | verovio - -o chor074-modern.svg
Aby wyodrębnić oryginalne klucze za pomocą strophe:
strophe -x original chor074-thru.krn | verovio - -o chor074-original.svg