Doel en scope¶
Status: draft v0.
Het idee in het kort¶
Orthodoxe koorpraktijk vraagt vaak SATB (of meer stemmen) met één
gezongen tekst, soms in meerdere talen of transliteraties tegelijk. Eenstemmige
VSA mengt tekst en hoogte in één regel ({/in}). Voor meerstemmig typwerk
in VSCode scheidt mvsa die rollen:
- lyrics-regels (
L:,L1:,lyrics:, …): tekst, duur (ELM), melisma, reciteertoon; - stemregels (
S:,A:,T:,B:,S1:,cantus:, …): alleen toonhoogte. Optioneel staat een EHM in de regelidentifier (S-:,T\6:): dan is de hoogtestijl van die regel relatief (vsa-achtig) met die EHM als beginanker; zonder EHM is de stijl absoluut (do-re-mi of a–g).
Maatstrepen houden lyrics en stemmen synchroon. Een sectie is een muzikaal
rijtje maten met een duidelijk eind (||). Een LSATB-systeem is het
editor-blok van opeenvolgende lyrics-/stemregels in VSCode (vaak vijf regels,
soms meer bij L1/L2 of S1/S2).
@do F4
@mode major
@sectie openingsfrase
L: … | … ||
S: … | … ||
A: … | … ||
T: … | … ||
B: … | … ||
Dit is geen MuseScore-pagina-“systeem” (layout op A4). Pagina-indeling hoort bij rendering/export, niet bij mvsa-brontekst.
Doel¶
- SATB (+ eventueel meerdere lyrics of verdubbelde stemmen) intypbaar en diffbaar in git;
- tekst niet vier keer over S/A/T/B dupliceren;
- bekende VSA-duurtekens (ELM) en relatieve/absolute hoogte hergebruiken;
- pad openhouden naar validate/export zonder dat die tools nu al bestaan.
Niet-doelen (deze draft)¶
- Vervanging van eenstemmige VSA 1.0;
- blokhergebruik en template-projectie als norm;
- volledige gelijkschakeling van chromatische
+in eenstemmige VSA-EHM (mvsa:+/-= octaaf; VSA-EHM blijft VSA-spec).
De kuiser-tool (mvsa kuiser) past de canonieke-vormregels uit
syntax / semantiek toe; restpunten staan in
open-points.
Defaults¶
| Directive | Default als weggelaten |
|---|---|
@do |
F4 |
@mode |
major |
@oct |
0 voor elke stem |
Zie Keywords en Semantiek — directives.
Termen in deze specificatie¶
| Term | Betekenis |
|---|---|
| mvsa-bestand | Tekstbron (conventioneel .mvsa) met secties, systemen en directives. |
| Sectie | Muzikale eenheid (@sectie of anoniem): een of meer LSATB-systemen. Eindigt met \|\| / :\|\| (expliciet), of met de laatste maatstreep bij een nieuwe @sectie, bij EOF, of bij ::: mvsa-notatie / ::: mvsa. Niet van toepassing op speelblokken (@blok) — zie Speelplan. |
| Speelblok | Genoemd segment (@blok id) voor een speelplan. Geen \|\|-eis tussen blokken. Eén @speelplan per bestand. |
| LSATB-systeem | Aaneengesloten reeks regels met een regelidentifier; #-commentaar ertussen mag; een lege regel eindigt het systeem. Eindigt altijd op \| of \|\| (of specialisatie). |
| regelidentifier | Label aan het begin van een inhoudsregel: stemidentifier + optionele EHM + :. Voorbeelden: L:, L1:, S:, S-:, T\6:, cantus:. Zie Syntax — regelidentifier. |
| stemidentifier | Naamdeel van de regelidentifier: [A-Za-z0-9_-]+, waarbij het laatste teken geen _ of - mag zijn. Begint de naam met L of l, dan is het een lyrics-regel; anders een stemregel. |
| Lyrics-regel | Regel waarvan de stemidentifier met L of l begint (L:, L1:, lyrics:). Een EHM in die regelidentifier is een fout. |
| Stemregel | Regel waarvan de stemidentifier niet met L/l begint (S:, A:, cantus:, …). Met EHM in de identifier: relatieve hoogtestijl + beginanker; zonder EHM: absolute stijl. |
| Maat | Segment tussen maatstrepen; in deze praktijk valt een maat samen met een frase. |
| L-stuk | Brok op een lyrics-regel (grenzen: spatie, lettergreepstreepje, of ELM gevolgd door letters). |
| Hoogte-stuk | Brok op een stemregel (alleen spaties scheiden). |
| Slot | Deel van een melisma-stuk, gescheiden door & binnen één brok; of de ene positie van een niet-melisma-stuk. |
| Lengte-positie | Telbare duur/hoogte-eenheid die lyrics en stemmen moeten delen: elk L-stuk is één positie t.o.v. de stemmen, behalve dat een recite-groep (( … )) als één positie telt; binnen een melisma telt elk &-slot mee. |
| Uitvoeraanwijzing | Gesloten [token] op L: dat vóór of na een lettergreep plakt, geen lengte-positie inneemt, en exporteert als speelaanwijzing (cesuur, dynamiek, adem/fermata, cresc/dim, rit/atempo). Zie uitvoeraanwijzingen.md. |
Uitgebreide voorbeelden en eerdere ontwerpnotities:
docs/plans/mvsa-v0-syntax.md.