Syntax (draft)¶
Status: draft v0.
Deze pagina beschrijft de canonieke schrijfvorm van mvsa. Een kuiser mag eenvoudige afwijkingen herstellen; de parser mag tolerant zijn, maar tools die canonieke output schrijven volgen deze regels.
1. Bestand¶
Een mvsa-bestand is UTF-8-tekst. Lege regels en commentaar zijn toegestaan waar hieronder aangegeven.
| Soort regel | Vorm |
|---|---|
| Commentaar | Regel die (na optionele spaties) begint met #, of een HTML-commentaar <!-- … --> |
| Directive | Regel die begint met @ (zie Keywords) |
| Sectiekop | @sectie + spatie + id |
| LSATB-inhoud | Begint met een regelidentifier |
2. Regelidentifier¶
regelidentifier ::= stemidentifier [ EHM ] ":"
stemidentifier ::= [A-Za-z0-9_-]+ (* laatste teken mag geen "_" of "-" zijn *)
Het deel vóór de eerste : op de regel is de regelidentifier-prefix. De parser
kiest de langste suffix van die prefix die een geldige EHM is; de rest
is de stemidentifier. Blijft er geen geldige EHM-suffix over, dan is de hele
prefix de stemidentifier (geen EHM).
| Voorbeeld | Stemidentifier | EHM | Rol |
|---|---|---|---|
L: |
L |
— | Lyrics |
L1: |
L1 |
— | Lyrics |
lyrics: |
lyrics |
— | Lyrics (begint met l) |
S: |
S |
— | Stem, absolute stijl |
S-: |
S |
- |
Stem, relatieve stijl |
T\6: |
T |
\6 |
Stem, relatief + beginanker |
cantus: |
cantus |
— | Stem, absoluut |
S1/: |
S1 |
/ |
Stem, relatief |
Lyrics vs. stem: begint de stemidentifier met L of l, dan is het een
lyrics-regel; anders een stemregel. Elke id die met l/L begint telt dus als
lyrics (lyrics:, la:). Een EHM in de regelidentifier van een lyrics-regel
(L/:) is een fout.
Hoogtestijl (stemregel):
- met EHM in de regelidentifier → relatieve (vsa-achtige) stijl; die EHM is
het beginanker van de stem (zelfde rol als
@startvoor die stem); - zonder EHM → absolute stijl (do-re-mi of a–g).
Op de regel zelf mogen hoogte-tokens nog mixen (EHM én laddergraden als ankers); de identifier zet alleen de default/start. Zie Semantiek — absolute en relatieve hoogte.
Gangbare stem-id’s in SATB-export: S, A, T, B (eventueel S1, …).
Andere stem-id’s (cantus:) zijn syntactisch toegestaan; MusicXML/MSCZ-export
verwacht voorlopig de SATB-letters.
Het laatste teken van de stemidentifier mag geen _ of - zijn, zodat S-:
eenduidig “stem S + EHM -” is (niet stem-id S-). Ongeldig: S_:.
Na de dubbele punt volgt inhoud (hoogte- of lyrics-tekst), voorafgegaan door optionele spaties.
3. LSATB-systeem¶
Een LSATB-systeem is een aaneengesloten reeks inhoudsregels die elk met een
regelidentifier beginnen. Tussen de identifier-regels van hetzelfde systeem
mag alleen #-commentaar (geen lege regels).
Een lege regel (alleen spaties/tabs, of helemaal leeg) eindigt het
lopende LSATB-systeem. Daarna mag een nieuw systeem beginnen, of iets anders
(@-directive, #-commentaar, HTML-commentaar, …). De canonieke
scheiding tussen vscode-systemen is die lege regel; @--- is optioneel
(vooral met commentaar erna).
Tussen twee systemen van dezelfde sectie mogen verder:
- lege regels (één of meer);
#- of HTML-commentaar;- directives (
@do,@mode,@oct,@title,@tekst,@---, …).
Canoniek staan de LSATB-regels van één systeem direct onder elkaar (geen lege regels ertussen; zo schrijft tooling bij genereren / normalize).
Een systeem:
- bevat minstens één lyrics-regel of stemregel (in de praktijk beide);
- heeft een vaste volgorde van markers die voor alle systemen in dezelfde sectie gelijk is;
- bestaat uit een geheel aantal maten;
- eindigt op elke LSATB-regel met
|of||(of een specialisatie, zie hieronder).
Canoniek staan | / || / |: / :| / :|| op dezelfde kolomposities
(zelfde maatgrenzen) op alle LSATB-regels van dat systeem. De kuiser mag ontbrekende
strepen op S/A/T/B aanvullen als minstens één LSATB-regel ze al heeft en de
plaatsing eenduidig is; anders is het een fout.
Canonieke kolomuitlijning (LSATB)¶
De standaardlayout van een .mvsa (wat tooling schrijft bij genereren of
canonieke herschrijving, en wat in examples/mvsa hoort te staan) lijkt in de
editor onder elkaar. Per maat, binnen één LSATB-systeem:
- Tel de lengte-posities op de lyrics-regel (L-stukken). Een recite-groep
( … )telt als één positie; optionele ELM direct na)hoort bij die positie. - Op elke stemregel (S/A/T/B) staat voor die maat hetzelfde aantal hoogte-stukken, in dezelfde volgorde.
- Voor elke positie i deelt de anker-kolom (0-based tekenpositie op de
regel, ná de marker en de spatie na
:) mee: - op L: de eerste letter van de lettergreep; bij een woordstreepje vóór de
lettergreep (
-li) de letter na dat streepje; bij recite het teken(; -
op elke stemregel: het eerste teken van het bijbehorende hoogte-stuk (
fa,mi&do&re&mi,f#4,/, …). -
Maatstrepen (
|,||,|:,:|,:||) staan op dezelfde kolomposities op alle LSATB-regels van het systeem: na elke maat (en aan het sectie-einde) begint de streep in VSCode in dezelfde kolom. De standaardlayout vult spaties aan het eind van een maat zo nodig aan tot die strepen onder elkaar vallen.
In VSCode (vaste-breedteletter) staan die ankers én de maatstrepen dus in
dezelfde kolom op L, S, A, T en B. Spaties tussen posities (en vóór een
maatstreep) worden toegevoegd of weggehaald tot dat klopt. Woordstreepjes
blijven aan de lettergreep: canoniek le-lu (aanliggend). Als een stemtoken
breder is dan de lettergreep tot aan de volgende anker-kolom, komt er ruimte
vóór het streepje (le -lu), zodat stemtokens met spaties gescheiden blijven
en de ankers (eerste letters / eerste noottekens) toch onder elkaar staan.
Vermijd le- lu (streepje direct gevolgd door spaties): die vorm leest de
parser als ELM - op “le”, niet als woordstreepje. Canoniek schrijf je
standaard-lengte op L als ~, en een woordstreepje direct vóór de
volgende lettergreep — met eventuele spaties ervóór als de stemregels
meer breedte nodig hebben (hei_&_&_ -li, niet hei_&_&_-li).
L: (Al-le-lu-ia, Al-le-lu-ia, Al)-le -lu_&-&-&_ i_ a__ ||
S: fa so mi&do&re&mi fa mi ||
A: re re do&fa-&si-&do re si- ||
T: la- so- so-&mi-&so-&so- la- so-# ||
Hier deelt ( de kolom met fa/re/la-; de l van -le deelt de kolom
met so/re/so-; de l van -lu_… deelt de kolom met mi&… / do&… /
so-&…; en || staat op alle regels in dezelfde kolom. Omdat so- drie
tekens breed is, staat er ruimte vóór het woordstreepje (le -lu), niet
eráchter.
Validatie eist deze kolommen niet: alleen de positietelling telt
(Semantiek). Losse invoer mag
rompiger zijn; de kuiser mag normaliseren (vsa mvsa kuiser). Gegenereerde
output en de voorbeelden in examples/mvsa volgen wél deze layout. Hulpje:
python scripts/align_mvsa_columns.py examples/mvsa (alleen kolommen; de
volledige kuiser-pipeline is mvsa kuiser).
4. Maatstrepen en sectie-einde¶
| Teken | Betekenis |
|---|---|
\| |
Einde van een maat (frase) binnen de sectie |
\|: |
Begin herhaling (zoals in VSA/partituurpraktijk) |
:\| |
Einde herhaling |
\|\| |
Einde van de sectie |
:\|\| |
Einde van de sectie mét herhalingsteken |
v0 vereist geen \|\|: of :\|\|: als overgang naar een volgende sectie.
Een nieuwe sectie begint altijd in een nieuw LSATB-systeem (nieuwe set
regels), zodat die gecombineerde tekens niet nodig zijn.
Eindanker aan de maatstreep¶
Op een stemregel mag direct na een maatstreep (zonder spatie) een eindanker staan: een EHM of een absolute laddergraad/toonnaam. Dat anker telt niet als lengte-positie.
maatstreep-met-anker ::= bar-token [ hoogte ]
hoogte ::= EHM | laddergraad | toonnaam
| Schrijven | Betekenis |
|---|---|
\| |
Kale streep: geen hoogte-marker (geen check) |
\|mi |
Streep + absolute check: lopende toon moet mi zijn |
\|/ |
Streep + EHM-check (zelfde EHM-inhoud als in VSA) |
\|- |
Streep + EHM - (verwachte ladderpositie 0 t.o.v. schrijf-do) |
\| mi |
Spatie na streep: mi is een gewoon hoogte-stuk |
\|\|fa |
Sectie-eindestreep met absolute check |
Er is geen lege hoogte-marker (in VSA: [:]). Bij gebrek aan […:]
betekent een kale maatstreep eenvoudig: geen anker.
Semantiek: een eindanker checkt alleen. Het zet de lopende toon niet
opnieuw (dat doet wel een EHM in de
regelidentifier). Mismatch → validate-error
(MVSA-BAR-ANKER). Details:
Semantiek — ankers.
Op lyrics-regels horen geen eindankers; daar blijft de kale streep. Voor
sync van maatstrepen telt alleen het bar-token (zonder anker): L met |
en S met |mi zijn synchroon.
5. Sectie¶
Begin¶
Een sectie begint aan het begin van een tekstregel die niet tot een reeds begonnen sectie behoort, en wel met:
- een sectiekop
@sectieid, of - een regelidentifier (anonieme sectie).
@sectie nl1
L: …
S: …
Sectie-id: [a-z][a-z0-9_-]* (bijvoorbeeld nl1, slav1, doxologie).
Einde¶
Een sectie eindigt op een van deze manieren:
- Sectie-eindestreep
||/:||: op alle LSATB-regels van een systeem. Regels daarna horen niet meer bij die sectie. Dit is de vorm die tooling bij genereren schrijft, en die je nodig hebt om midden in een bestand een sectie te beëindigen zonder meteen een nieuwe@sectiete openen. - Nieuwe
@sectie: een volgende@sectieid opent een nieuwe sectie. De laatste maatstreep van het vorige laatste systeem (|,||, of herhalingsvorm) is tegelijk het sectie-einde — ook als dat geen||was. - Einde van het bestand (EOF): idem: de laatste maatstreep van het laatste systeem beëindigt de open sectie.
- Fenced markdown: het sluiten van
::: mvsa-notatie/::: mvsa…:::werkt hetzelfde als EOF voor de open sectie in dat blok.
Kort: bij EOF, nieuwe @sectie, of fence-::: is elke geldige
eindmaatstreep op het laatste systeem genoeg. || blijft nuttig als
expliciete sectie-eindestreep midden in de bron en als canonieke
exportvorm.
Speelblokken (@blok): horen niet onder een ||-eis tussen blokken. Een
nieuw @blok of EOF na een speelblok is gewoon toegestaan. Zie
Speelplan.
Meerdere systemen per sectie¶
Een lange sectie mag over meerdere LSATB-systemen worden gesplitst (leesbaarheid
in de editor). Elk tussensysteem eindigt op | (of herhalingsspecialisatie die
geen sectie-einde is). Het laatste systeem van de sectie eindigt op een
geldige maatstreep; bij doorlopende tekst zonder nieuwe @sectie gebruik je
|| of :|| om de sectie te beëindigen. Bij een volgende @sectie, bij EOF,
of bij fence-::: volstaat ook |.
Alle systemen in één sectie hebben hetzelfde aantal LSATB-regels en dezelfde regelidentifiers in dezelfde volgorde (zelfde stemidentifier én dezelfde optionele EHM per regel).
6. Lyrics-regel (L)¶
Geen accolades¶
In mvsa staan geen VSA-scopes {…} op de lyrics-regel. Duur hoort als ELM
achter de lettergreep of in melisma-slots.
Brokgrenzen (L-stukken)¶
Buiten een recite-groep begint een nieuw L-stuk na:
- een spatie, of
- een lettergreepstreepje
-tussen lettergrepen, of - een ELM waarna meteen weer een letter volgt (
le.&.lu_→le.&.enlu_).
& binnen een brok scheidt slots (melisma), geen nieuwe L-stukken.
Leestekens (, . ; …) zijn geen L-stuk, ook niet met spaties eromheen.
Hetzelfde geldt voor uitvoeraanwijzingen (gesloten [token] op L:).
Actief o.a.: cesuur [//], adem [adem], fermata [ferm] (ná het L-stuk);
dynamiek [p]/[mf]/…, start cresc/dim, [rit]/[atempo] (vóór het
L-stuk); stop [/cresc]/[/dim] (ná). Die tellen niet mee in de sync —
zie uitvoeraanwijzingen. De dubbele maatstreep blijft
de beurt-/sectiegrens en is geen L-aanwijzing.
Uitzondering — recite: alles tussen ( en ) is één L-stuk / lengte-positie,
ongeacht spaties en streepjes erin. Zie Reciteertoon.
Canonieke woordstreepjes¶
Tussen opeenvolgende lettergrepen van hetzelfde woord staat altijd -
direct vóór de volgende lettergreep (hei-li of, bij extra kolombreedte,
hei -li). Tussen het einde van een woord en het begin van het volgende
woord staat geen - (wel spatie en/of leesteken). Tussen die lettergrepen
mogen wel ELM’s, recite-haakjes, maatstrepen en leestekens staan.
Hard streepje: een orthografisch koppelteken dat in de lezersvorm moet
blijven (bijv. mede-eeuwige) schrijf je in de bron als = (mede=eeuwige
of mede=eeu-wi-ge). Export (SVG, MusicXML, vsa text) toont een gewoon
streepje; zachte lettergreepstreepjes verdwijnen in platte zoektekst, het
harde streepje niet.
De kuiser collapse’t niet hei- li → hei-li: dat zou ELM-duur
veranderen in een woordstreepje en bij lange melisma’s de align breken
(hei_&_&_&_&_&_ -li mag niet hei_&_&_&_&_&_-li worden). Bij
hei- li (streepje + spaties + letter) waarschuwt de kuiser met regel en
kolom: controleer of je een woordstreepje (-li / -li) of duur (~)
bedoelde.
Melisma (vorm A)¶
Meerdere slots op één lettergreep: één L-stuk met & tussen ELM-slots, bijvoorbeeld
Ster~&~&~ of God_.&_.. In de canonieke MSCZ/MusicXML-export staat de
lyric op de eerste noot met een extender (<extend/>), zodat de zanger
ziet hoe lang de lettergreep aanhoudt.
Reciteertoon¶
Een reciteertoon-run staat tussen ronde haakjes:
( tekst met - en spaties )ELM?
De hele groep is één lengte-positie (één hoogte-stuk per stem). Er is
geen leading ~ meer als recite-marker. Optioneel volgt direct na )
een ELM voor de duur van die positie.
| Onderdeel | Betekenis |
|---|---|
( … ) |
Recite-run; spaties = woorden, - = lettergreepstreepjes |
geen ELM na ) |
Recite-standaardduur: playback = kwart per lettergreep; MSCZ-print bij n ≥ 6 = 1–(n−2)–1 met breve-midden (zie MSCZ-leesbaarheid) |
ELM na ) (_, ~, ., …) |
Andere duur op de randnoten / lettergrepen ((Zoon van God)_) |
)- + lettergreep |
Woordstreepje over de recite-grens (niet ELM--) |
~ elders op L |
Alleen ELM-duur (hei~, melisma-slots) — start geen recite |
Kale ELM-- na ) voegt geen nuttige duur toe t.o.v. de standaard (zelfde
kwart-duur als ~). Zet een streepje achter de ) alleen als het woord
doorloopt naar de volgende lettergreep: (… Al)-le-…. Schrijf niet
(… Al-) met een losse - vóór de ) — die eindstreep wordt genegeerd.
Eenvoudige gevallen¶
# Eén woord
L: (hei-li-ge) …
# Twee aparte recite-posities
L: (Al-le-lu-ia,) (Al-le-lu-ia,) …
# Meerdere woorden; langere duur met betekenisvolle ELM
L: (Zoon van God)_ …
# Recite, daarna gewone posities
L: (Al-le-lu-ia,) (Al-le-lu-ia,) al-le lu_&-&-&_ i_ a__ ||
Streepje binnen vs. achter )¶
# Genegeerd: '-' vóór ')' zonder volgende lettergreep in de groep
L: (Al-le-lu-ia, Al-le-lu-ia, Al-) …
# Canoniek: woord loopt door ná de recite — streepje ACHTER ')'
L: (Al-le-lu-ia, Al-le-lu-ia, Al)-le-lu_&-&-&_ i_ a__ ||
# Zelfde doorloop, andere duur op de recite (ELM '_' na ')', dan streepje)
L: (Al-le-lu-ia, Al-le-lu-ia, Al)_-le-lu_&-&-&_ i_ a__ ||
| Schrijfwijze | Effect |
|---|---|
(… Al-) |
Eind-- in de groep: geen lettergreepverbinding, geen ELM (dood) |
(… Al)- alleén |
Losse - na ): woordstreepje zonder vervolg — vermijd; geen ELM-duur |
(… Al)-le-… |
Recite tot “Al”, daarna “le…” als zelfde woord (canonieke vorm) |
(… Al)_ |
Recite met duur _ (halve); streepje hoort hier niet |
Interacties met - en ELM-~¶
| Schrijfwijze | Betekenis |
|---|---|
(hei) |
Recite op “hei”, standaardduur |
hei~ |
Lettergreep “hei” + ELM-duur ~ (geen recite) |
(hei-li-ge) |
Recite; - binnen haakjes = lettergreepstreepje |
mede=eeuwige |
Hard streepje (=); weergave/zoektekst als mede-eeuwige |
Chris_-tus_ |
Twee lengte-posities; - tussen posities = zelfde woord |
(… voor) Chris_ |
Recite eindigt bij ); nieuwe positie (nieuw woord) |
(… Al)-le_… |
Recite eindigt bij ); - = zelfde woord doorlopend |
- op de stemregel |
EHM “zelfde toon” — los van lyrics-haakjes |
so- op de stemregel |
Octaafsuffix — geen lettergreepstreepje |
Randgevallen¶
# FOUT: zonder haakjes is dit geen recite; spaties maken aparte L-stukken.
L: Al-le-lu-ia, Al-le-lu-ia, …
# GOED: elke recite in eigen haakjes; cadens erbuiten.
L: (Al-le-lu-ia,) (Al-le-lu-ia,) al-le lu_&-&-&_ i_ a__ ||
# GOED: grens is de `)`, niet een ELM midden in de tekst.
L: Komt_, (laat ons … voor) Chris_-tus_, ||
# GOED: langere recite-duur met ELM na de sluiting (_ of ~, niet kale -).
L: (Zoon van God)_ |
# Non-interactie: ELM-`~` in een melisma is geen recite.
L: Ster~&~&~-ke_.
# Ambigu / vermijden: ELM-`-` vlak vóór een lettergreepstreepje.
# Schrijf liever ELM-`~` in het melisma: li~&~-ge (niet li-&--ge).
Zie ook Semantiek — pitfalls rond ~.
ELM’s¶
De ELM-set volgt VSA 1.0 (_, __, _., -, ~, ., .., -., ~.,
samengesteld met &). Op de lyrics-regel betekent kale - tussen letters
een lettergreepstreepje; - als ELM staat in duurpositie (direct na de
lettergreep of na &). Canoniek schrijf je standaard-lengte op L als
~ (niet als kale -), zodat - op L bij lettergrepen hoort. In invoer
blijft kale - als standaard-lengte geldig (o.a. in melisma-slots en in
samengestelde ELM’s zoals -.); de kuiser herschrijft eenduidige ELM--
naar ~ en waarschuwt bij ambiguë gevallen. Direct na een recite-) is kale
- geen ELM maar een woordstreepje naar de volgende lettergreep; kies
voor duur _, ~, ., -., …
Leestekens mogen achter de lettergreep of achter de ELM staan en horen
bij de tekst van die lettergreep (Komt_,, ia,, tus_,). Binnen (…) horen
komma’s bij de lettergreep vóór de ).
7. Stemregel¶
Op een stemregel staan alleen hoogte-stukken, gescheiden door spaties:
- relatief (EHM):
/,\,-,/3,#\, … — unidirectioneel (alleen/…of alleen\…, eventueel met cijfer). Mixen zoals\/of/\zijn geen EHM; - absoluut: laddergraden
doremifaso/sollasi/tien/of toonnamenc…b,Bb,fis, …; - octaaf: suffix
-/+/-1/+2/ … of wetenschappelijk cijfer op toonnamen (g3,bb4); - melisma:
a4&b4&c5ofd4&-&-(aanhouden / zelfde toon in volgende slots).
Of de regel standaard relatief of absoluut is, volgt uit de
regelidentifier: met EHM (S-:) relatief + beginanker;
zonder EHM (S:) absoluut. Mix van EHM-stappen en laddergraden (ankers) op
dezelfde regel blijft toegestaan.
Geen lyrics en geen _ / .&. op de stemregel — die horen in L.
so = sol; si = ti. Namen zijn hoofdletterongevoelig waar dat geen
toonnaam-conflicten geeft (Bb vs b).
Kruis en mol¶
Chromatische verhoging of verlaging schrijf je met # (kruis) of b (mol).
Niet met + / -: die zijn op laddergraden en toonnamen octaafsuffix.
Laddergraden (do-re-mi)¶
| Vorm | Voorbeelden | Betekenis |
|---|---|---|
# / b achter de graad |
fa# do# mib sib |
kruis of mol op die graad |
# / b vóór de graad |
#fa #do bmi |
zelfde als achter de graad (VSA-EHM-herkenbaar) |
| met octaaf, kruis na graad | fa#- do#+ sib-2 |
eerst voorteken, dan octaafsuffix |
| met octaaf, kruis na octaaf | so-# la+# |
eerst octaafsuffix, dan voorteken (ook geldig) |
so-# en so#- betekenen dezelfde toon: sol, één octaaf omlaag t.o.v. het
schrijfoctaaf, mét kruis. Kies per frase één volgorde en blijf daarbij.
Nederlandse toonnamen (fis bes cis …) zijn een alternatief voor
fa# / sib / … en volgen dezelfde octaafregels (fis-, bes-2).
Toonnamen (a–g)¶
| Vorm | Voorbeelden | Betekenis |
|---|---|---|
| kruis / mol | f# fb bb Bb c# |
voorteken direct op de letter |
| + octaaf | f#- bb4 c#-2 |
wetenschappelijk cijfer of suffix (-/+/-2) t.o.v. het do-octaaf |
Zonder cijfer deelt a–g het do-octaaf van het schrijf-do
(@do + @oct): het halfopen interval vanaf do tot één octaaf hoger.
Bij @do F4 is c = C5 (= so), niet C4. Dat is bewust dezelfde wrap als bij
doremi (so), zodat fa≡bb en so≡c pitch-equivalent blijven. De
wetenschappelijke C-wrap geldt alleen bij een cijfer (c4 = C4, c5 = C5)
en negeert @oct.
Bij @do F4 |
Kale a–g | Met cijfer | doremi |
|---|---|---|---|
| F4 | f |
f4 |
do |
| Bb4 | bb |
bb4 |
fa |
| C5 | c |
c5 |
so |
| C4 | c- |
c4 |
so- |
b / B alleen is de toonnaam B (Engels), niet Bes. Bes is bb / Bb /
bes.
Op EHM’s blijft #\ / b\ (en eventueel VSA-+\) het chromatische voorteken
vóór een relatieve stap — dat is geen laddergraad-syntax.
Wat niet mag (ook al is het “een toon”)¶
# / b mag alleen een gangbare spelling van een toon op of naast de
diatonische ladder in de actieve @mode opleveren. Een spelling die die ladder
ontwijkt of een bestaande laddertoon enharmonisch hernoemt, is een fout.
Voorbeelden bij @mode major (majeur-ladder vanaf @do):
| Schrijfwijze | Waarom fout |
|---|---|
e# / E# / #e |
E♯ is enharmonisch F (= fa / f bij veel @do); geen eigen ladderplaats |
bc |
geen geldig hoogte-token (plakt b en c); schrijf bb/bes of c/do |
cb in majeur |
C♭ is enharmonisch B (= si/ti / b); geen gangbare majeur-spelling |
In @mode minor bestaan verhoogde en verlaagde laddergraden ook, maar op
andere treden dan in majeur. Dezelfde letter+voorteken-combinatie kan daar
wél of juist níet kloppen — hangt van @do en de mineurladder af. Schrijf
chromatische tonen bij voorkeur als laddergraad + #/b (si#, mib)
zodat duidelijk is welke trede je bedoelt; vermijd “creatieve” enharmonieën
(e#, cb, …) die alleen via omweg dezelfde klank raken.
Validatie mag zulke spellingen als error melden zodra de modus bekend is; export mag ze niet stilzwijgend “corrigeren” naar een andere trede.
8. Voorbeeld (één sectie, één systeem)¶
@do G4
@mode major
@sectie voorbeeld
L: O Hei_.-li~&~ -ge God_.&_. | hei-li-ge Ster~&~&~-ke_. ||
S: f#4 g4 f#4&g4 a4 g4&a4 | b4 b4 b4 a4&b4&c5 b4 ||
A: d#4 e4 d#4&d#4 f#4 e4&f#4 | g4 g4 g4 f#4&g4&a4 g4 ||
T: b3 b3 b3&- b3 b3&d4 | d4 d4 d4 d4&-&- d4 ||
B: b2 e3 b2&- b2 e3&f#3 | g3 g3 g3 d3&-&- g3 ||
De anker-kolommen (eerste letter van elke L-positie / eerste teken van elk
hoogte-stuk) én de maatstrepen (| / ||) staan op alle LSATB-regels in
dezelfde kolom; zie
canonieke kolomuitlijning.