Ga naar inhoud

vsa mvsa / mvsa — meerstemmige .mvsa (draft)

Draft-tooling voor mvsa: meerstemmige tekstbronnen (.mvsa) met lyrics-regels en stemregels. Normatieve draft-spec: specification-mvsa.

Dit is niet hetzelfde als vsa validate / vsa musicxml voor eenstemmige .vsa.

Top-level alias: mvsa … is gelijk aan vsa mvsa … (console-script of scripts\mvsa.cmd). Bron-commands voor andere formaten: mxl, mscz.

Subcommando’s zijn genoemd naar de uitvoer (zoals mscz / pdf / mp3 / ogg / wav). Oude namen musicxml en audio blijven als alias werken (audio ≡ mp3).

Synopsis

mvsa [-h] {validate,mxl,mscz,pdf,mp3,ogg,wav,import,normalize,kuiser} …
vsa mvsa [-h] {validate,mxl,mscz,pdf,mp3,ogg,wav,import,normalize,kuiser} …
mvsa validate [-h] path
mvsa mxl [-h] [-o OUTPUT] [--section SECTION] [--hulptekst]
              [--hulptekst-as-parts] [--bibliotheek-id ID]
              [--musescore PATH] path
mvsa mscz [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
          [--keep-mxl PATH] [--layout PROFILE] [--bibliotheek-id ID]
          [--hulptekst] path
mvsa pdf [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
         [--keep-mscz PATH] [--keep-mxl PATH]
         [--layout PROFILE] [--bibliotheek-id ID] path
mvsa mp3 [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
           [--keep-mxl PATH] path
mvsa ogg [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
           [--keep-mxl PATH] path
mvsa wav [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
           [--keep-mxl PATH] path
mvsa import [-h] [-o OUTPUT] [--pitch {doremi,a-g,vsa,ag-vsa}] …
mvsa normalize [-h] [-o OUTPUT] [--pitch {preserve,doremi,a-g,vsa,ag-vsa}] …
mvsa kuiser [-h] [-o OUTPUT] [--check] [--pitch {preserve,doremi,a-g,vsa,ag-vsa}] …

Subcommando's

Subcommando Doel
validate Structuur + sync-telling van .mvsa controleren.
mxl Exporteer .mvsa / .mscz / .mxl naar playback-.mxl.
mscz Exporteer .mvsa naar MuseScore (.mscz).
pdf Exporteer .mvsa of .mscz naar print-PDF (zangers).
mp3 / ogg / wav Exporteer naar preview-audio (.mp3 / .ogg / .wav).
import Importeer .mxl / .mscz → .mvsa (werkbank).
normalize Canoniseer .mvsa (default: behoud noteernamen).
kuiser Authoring-kuiser: strepen syncen, woordstreep, align.

Hulp op de commandoregel:

mvsa -h
vsa mvsa -h
mvsa validate -h
mvsa mxl -h
mvsa mscz -h
mvsa pdf -h
mvsa mp3 -h
mvsa ogg -h
mvsa wav -h
mvsa import -h
mvsa normalize -h
mvsa kuiser -h

vsa mvsa validate

Synopsis

vsa mvsa validate [-h] [--require-zoektekst] path

Beschrijving

Controleert .mvsa-bestanden op LSATB-structuur, maatstrepen en de sync-telling tussen lyrics-regels en stemregels. Draft-validatie: zie specification-mvsa/validation.md.

path-type Gedrag
.mvsa-bestand Valideert dat ene bestand.
Map Zoekt recursief naar alle .mvsa-bestanden eronder.

Argumenten en opties

Naam Verplicht Betekenis Default Beperkingen
path Ja .mvsa-bestand of map met .mvsa-bestanden. — Moet bestaan.
--require-zoektekst Nee Eis YAML-zoektekst gelijk aan body (catalogus); zie zoektekst. Uit —
-h, --help Nee Toon hulp voor dit subcommando. — —

Output

  • stdout: bij succes zonder warnings de tekst OK (één keer, ook bij een map); warnings naar stdout.
  • stderr: errors (ERROR: …) en samenvatting bij falen.
  • Geen bestanden aangemaakt.
  • Geen per-bestand …: OK-regels (zelfde stijl als vsa validate).

Exit status

Exitcode Betekenis
0 Alle gevonden .mvsa-bestanden geldig.
1 Pad ontbreekt, geen .mvsa, of validatiefout.

Voorbeelden

vsa mvsa validate examples\mvsa
vsa mvsa validate examples\mvsa\alleluia-toon-8.mvsa
vsa mvsa validate examples\mvsa\alleluia-toon-8.mvsa --require-zoektekst

Voor alleen vullen/checken van zoektekst zonder overige validate: vsa zoektekst.


vsa mvsa mxl

Synopsis

vsa mvsa mxl [-h] [-o OUTPUT] [--section SECTION] [--hulptekst]
                  [--hulptekst-as-parts] [--bibliotheek-id ID]
                  [--musescore PATH] path

Beschrijving

Schrijft een Coria-playback-.mxl (of .musicxml/.xml). Bron:

Bron Gedrag
.mvsa SATB-export (vier parts). Optioneel --section / hulptekst-vlaggen.
.mscz MuseScore → playback-normalisatie (zelfde keten als mscz mxl).
.mxl / .musicxml / .xml Normaliseer naar playback (SATB-explode, Coria-sanitize).

Bij .mvsa: zonder --section gaan alle @sectie-blokken achter elkaar in één partituur; met --section alleen die sectie-id.

Kale - op een stemregel aan het begin van een nieuw LSATB-systeem houdt de lopende toon van het vorige systeem (soft-wrap); een beginanker of expliciete @start-toewijzing reset die toon. Bij @speelplan volgt die keten de klinkende vorm. Zie lopende toon over systeembraken. Lege recite met ELM-keten (()~&~&.…, lyric-loos melisma uit import) wordt als gewoon melisma geëxporteerd (alle slots/duur), niet als één noot.

Playback (Coria): standaard vier parts S/A/T/B met piano op elke partij (checklist M8). Stemidentifiers in het .mvsa-bestand (Sop:, cantus:, …) worden op dit pad als part-namen gebruikt (SATB-letters → Soprano/Alto/Tenor/Bass).

Hulptekst (kerkslavisch ↔ Latijn / Nederlands ↔ Cyrillisch, parochieschema):

Vlag Wie Effect
--hulptekst Blad én Coria-MXL Lyric number 2 onder dezelfde noten (transliteratie). Handmatige L1 wint als lyric 2 al bestaat.
--hulptekst-as-parts Alleen Coria-MXL Extra parts: zelfde pitches, lyrics van laag 2; part-namen {stem} ({label}). Labels uit @taal (zie keywords — @taal). Volume 0 op hulp-parts. Impliceert --hulptekst.

Richting en Coria-labels sturen met sticky @taal (nl / ksl / auto, of Lap=aap Lus=noot op lyrics-ids). Zie kerkslavisch-transliteratie.

Dit is een aparte exporter dan vsa musicxml (eenstemmig VSA).

Argumenten en opties

Naam Verplicht Betekenis Default Beperkingen
path Ja Bron: .mvsa, .mscz of .mxl/.musicxml. — Moet een bestaand bestand zijn.
-o, --output Nee Uitvoerpad (.mxl, .musicxml of .xml). <bronnaam>.mxl (bijv. lied.mvsa.mxl) Andere extensie → wordt .mxl.
--section SECTION Nee Alleen bij .mvsa: deze @sectie-id. Alle secties Id moet in het bestand voorkomen.
--bibliotheek-id ID Nee Alleen bij .mvsa: bibliotheek-id in identification/rights. pad-sniff onder content-source/bibliotheek Optioneel.
--hulptekst Nee Alleen bij .mvsa: tweede lyric-laag (number=2). uit Zie beschrijving hierboven.
--hulptekst-as-parts Nee Alleen bij .mvsa: Coria-extra parts met hulptekst (volume 0). uit Impliceert --hulptekst.
--musescore PATH Nee Alleen bij .mscz: pad naar MuseScore. auto-detectie —
-h, --help Nee Toon hulp voor dit subcommando. — —

Output

  • stdout: Geschreven: <pad> bij succes.
  • stderr: validatie- of exportfouten.
  • bestand: .mxl (standaard) of het pad uit -o.

Exit status

Exitcode Betekenis
0 MusicXML succesvol geschreven.
1 Bestand ontbreekt, validatiefout, of exportfout.

Voorbeelden — succes

Standaard naast het bronbestand (….mvsa.mxl):

vsa mvsa mxl examples\mvsa\kleine-intocht-zondag-hemelum.mvsa

Met expliciet uitvoerpad en één sectie:

vsa mvsa mxl examples\mvsa\kleine-intocht-zondag-hemelum.mvsa --section schets-a-bladcijfer -o generated\intocht-a.mxl

Coria met keuze tussen lyrics-lagen (trisagion, kerkslavische sectie):

vsa mvsa mxl examples\mvsa\trisagion-8a-slav-hemelum.mvsa --section ksl --hulptekst-as-parts -o generated\trisagion-ksl-coria.mxl

Vanuit MuseScore-partituur (zelfde resultaat als mscz mxl):

vsa mvsa mxl examples\bug-cases\cherubijnenhymne-15c-kastorski-hemelum.mscz -o generated\bug-cases\cherubijnen.mxl

Blad/MSCZ: lyric 2 op partituur-MXL (keten via mscz --hulptekst):

vsa mvsa mscz examples\mvsa\hulptekst-ksl-mini.mvsa --hulptekst -o generated\hulptekst-ksl.mscz

Voorbeelden — falen

Onbekende sectie-id of sync-fout in het .mvsa-bestand levert exitcode 1 en diagnostiek op stderr. Controleer eerst met vsa mvsa validate.


vsa mvsa mscz

Synopsis

vsa mvsa mscz [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
              [--keep-mxl PATH] [--layout PROFILE] [--bibliotheek-id ID] path

Beschrijving

Exporteert één .mvsa-bestand naar MuseScore (.mscz) via de keten:

.mvsa  →  .mxl (partituur: SA/TB, lege part-namen)  →  MuseScore CLI  →  .mscz
       →  layoutprofiel (default: partituur)

Layoutprofielen (na MuseScore-conversie):

Profiel Gedrag
partituur Default. A4, leesbaarheid, lege partijnamen, colofon — MSCZ-leesbaarheid.
plain Geen nabewerking door VSA-tooling (ruwe MuseScore-output van de partituur-MXL).

--bibliotheek-id zet de id in het colofon (alleen bij partituur). Zonder die optie mag tooling de id uit het pad afleiden als …/bibliotheek/<zangstuk>/<variant>/<uitvoeringsvorm>/… — consumers horen de id expliciet te geven. Zie ownership.

Dit voldoet bij partituur aan de MSCZ-checklist (twee balken, geen S/Soprano-labels). Voor Coria-playback (vier parts) blijft vsa mvsa mxl het primaire pad.

Vereist MuseScore 4 (of 3): op PATH als MuseScore4 / mscore, of het standaard Windows-pad C:\Program Files\MuseScore 4\bin\MuseScore4.exe. Override met --musescore.

Werkplan: mvsa-conversions.

Argumenten en opties

Naam Verplicht Betekenis Default
path Ja Bron-.mvsa-bestand. —
-o, --output Nee Uitvoer-.mscz. <bronnaam>.mscz (bijv. lied.mvsa.mscz)
--section SECTION Nee Alleen deze @sectie-id. Alle secties
--musescore PATH Nee Pad naar MuseScore-executable. Auto-detectie
--keep-mxl PATH Nee Bewaar ook het tussenliggende .mxl. temp (wordt verwijderd)
--layout PROFILE Nee partituur of plain. partituur
--bibliotheek-id ID Nee Colofon-id (profiel partituur); anders pad-fallback. pad-sniff / geen
--hulptekst Nee Tweede lyric-laag in tussen-MXL (blad «tweede regel»). uit

Output

  • stdout: Geschreven: <pad> (en MXL: … bij --keep-mxl).
  • bestand: .mscz (zip met .mscx).

Exit status

Exitcode Betekenis
0 MSCZ geschreven.
1 Pad ontbreekt, validatiefout, MuseScore ontbreekt, of conversiefout.

Voorbeelden

vsa mvsa mscz examples\mvsa\alleluia-toon-8.canonieke.mvsa
vsa mvsa mscz lied.mvsa -o generated\lied.mscz --section schets2-oct-doremi
vsa mvsa mscz lied.mvsa -o out.mscz --keep-mxl generated\lied.mxl
vsa mvsa mscz lied.mvsa -o out.mscz --layout partituur --bibliotheek-id zangstuk/var/uv
vsa mvsa mscz lied.mvsa -o raw.mscz --layout plain

vsa mvsa pdf

Synopsis

vsa mvsa pdf [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
             [--keep-mscz PATH] [--keep-mxl PATH]
             [--layout PROFILE] [--bibliotheek-id ID] path

Beschrijving

Maakt een print-PDF van de partituur (voor zangers), via MuseScore CLI.

Bron Pad
.mvsa Keten: partituur-.mxl → .mscz (--layout) → .pdf
.mscz Alleen MuseScore-conversie naar .pdf (geen her-export uit .mvsa)

--layout / --bibliotheek-id gelden alleen bij bron .mvsa (zelfde betekenis als bij mscz).

Canoniek: A4 staand (checklist PDF P6); via MuseScore-Style van het .mscz (MSCZ S7). US Letter is niet canoniek.

Dit is niet vsa pdf (Markdown + VSA-SVG via browser; wél dezelfde A4-eis P6).

Argumenten en opties

Naam Verplicht Betekenis Default
path Ja .mvsa of .mscz. —
-o, --output Nee Uitvoer-.pdf. <bronnaam>.pdf (bijv. lied.mvsa.pdf)
--section Nee Alleen bij .mvsa: één @sectie-id. alle secties
--musescore Nee MuseScore-executable. auto-detectie
--keep-mscz Nee Bij .mvsa: bewaar tussenliggende .mscz. temp (wordt verwijderd)
--keep-mxl Nee Bij .mvsa: bewaar tussenliggende .mxl. niet
--layout PROFILE Nee Bij .mvsa: partituur of plain. partituur
--bibliotheek-id ID Nee Bij .mvsa + partituur: colofon-id. pad-sniff / geen

Voorbeelden

vsa mvsa pdf examples\mvsa\alleluia-toon-1.mvsa
vsa mvsa pdf lied.mvsa -o generated\lied.pdf --keep-mscz generated\lied.mscz
vsa mvsa pdf lied.mvsa --layout partituur --bibliotheek-id zangstuk/var/uv
vsa mvsa pdf lied.mscz -o lied.pdf

vsa mvsa mp3 / ogg / wav

Synopsis

vsa mvsa mp3 [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
               [--keep-mxl PATH] path
vsa mvsa ogg [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
               [--keep-mxl PATH] path
vsa mvsa wav [-h] [-o OUTPUT] [--section SECTION] [--musescore PATH]
               [--keep-mxl PATH] path

Beschrijving

Maakt een preview-audiobestand via MuseScore: eerst playback-.mxl (vier parts), daarna audio. Het subcommando is het formaat: mp3, ogg of wav. Alias audio ≡ mp3. Bron mag .mvsa, .mxl, .vsa of .mscz (fallback) zijn. Alleen het artefact; de consumer-site zet de afspeelknop. Zie vsa audio en formats/audio.md.

Argumenten en opties

Naam Verplicht Betekenis Default
path Ja .mvsa / .mxl / .vsa / .mscz. —
-o, --output Nee Uitvoer-audio. <bronnaam>.<formaat> (bijv. lied.mvsa.ogg)
--section Nee Alleen bij .mvsa: één @sectie-id. alle secties
--musescore Nee MuseScore-executable. auto-detectie
--keep-mxl Nee Bewaar tussenliggende playback-.mxl. temp (wordt verwijderd)

Voorbeelden

vsa mvsa mp3 examples\mvsa\test-alleluia-toon-8.mvsa --section schets3-oct-doremi
vsa mvsa mp3 lied.mvsa -o generated\lied.mp3
vsa mvsa ogg lied.mvsa
vsa mvsa wav lied.mxl -o generated\lied.wav

vsa mvsa import

Alleen voor de werkbank-fase

De importer (mvsa import / mxl import / mscz import) is bedoeld als bewerk-/startvorm in de werkbank — om van MuseScore/MusicXML naar bewerkbare .mvsa te komen en die handmatig af te maken. Niet als kant-en-klare catalogusbron.

Belangrijkste redenen:

  1. Lettergreepstreepjes — MuseScore-lyrics zetten streepjes tussen lettergrepen van één woord vaak verkeerd of inconsistente; de canonieke vorm (hei-li, spaties vóór -li bij breedte) moet je nabewerken.
  2. Lyrics-gaten — noten zonder bruikbare tekst worden lege recite (()~ / ()_); multi-lettergreep op één noot wordt recite ( … ). Dat houdt de sync, maar is geen nette zangstuktekst. Een lege recite met ELM-keten (()~&~&.…) exporteert weer als gewoon melisma (alle slots), niet als één noot.
  3. Lossy — MuseScore-layout en partituurdetails vallen weg; succes is pitch/duur/lyrics-equivalentie, niet een publicatieklare partituur.

Na import: controleren, kuisen, valideren — pas daarna (in de bibliotheek) accepteren naar de catalogus.

Elk importbestand krijgt na # Imported: … een ASCII-waarschuwingsbanner (zelfde tekst via mvsa import / mxl import / mscz import) met een checklist: woordstreepjes, recite-grenzen, A/T/B-uitlijning, ritme/maten, metadata. Die banner is geen catalogus-label — hij herinnert eraan dat het een schets is.

Synopsis

vsa mvsa import [-h] [-o OUTPUT] [--pitch {doremi,a-g,vsa,ag-vsa}] [--do PITCH]
                [--octave-style {@oct,marker}] [--section SECTION]
                [--musescore PATH] [--no-align] path

Beschrijving

Importeert een partituur naar .mvsa:

Bron Pad
.mxl / .musicxml / .xml Direct geparst (SATB P1–P4)
.mscz MuseScore CLI → temp .mxl → SATB-normalisatie (zelfde explode als mscz mxl) → parser

Stemhoogten worden in de gekozen --pitch-vorm geschreven (default ag-vsa); @mode is majeur (aanname); @oct wordt per stem afgeleid. @do volgt deze volgorde:

  1. --do op de command line (bijv. F4);
  2. bij .mscz: aantal kruisen/mollen uit MuseScore KeySig (concertKey);
  3. anders MusicXML <key><fifths> (na MuseScore-conversie of uit .mxl);
  4. anders fallback F4 als er geen voortekening in het bestand staat.

Lossy t.o.v. MuseScore-layout — succes = pitch/duur/lyrics-equivalentie.

Leesbaarheid van de uitvoer

  • Soft-wrap: LSATB-systemen van ongeveer 80 tekens (DEFAULT_SYSTEM_SOFT_WIDTH). Eén maat die alleen al langer is blijft één systeem.
  • Maatnavigatie: vóór elk LSATB-systeem staat #maat N (N = 1-based startmaat van dat systeem), zodat je makkelijk heen-en-weer kunt tussen .mvsa en maatnummers in PDF / MuseScore.
  • A/T/B-uitlijning: onderstemmen volgen de L/S-posities op duur (niet op noot-index of lyrics van A/T/B). Een lange noot die meerdere S-slots dekt, wordt gesplitst/gepaddet (c4&- + hold -); een lyric-loze spacer na zo’n noot steelt geen volgende lettergreep. Dat voorkomt verschoven Bb/T/B bij MSCZ-import waar A/T/B weinig of scheve lyrics hebben. Heeft een onderstem meer toonwissels in dezelfde tijd dan S slots (bijv. S één hele noot, T twee kwarten A→B), dan blijven die tonen als &-melisma; L/S worden met holds/ELM’s mee uitgebreid zodat de sync-telling klopt (geen stille truncate). Onder een recite-positie blijft één slot (L-recite telt als 1); daar kan een onderstem-toonwissel nog wegvallen. Heeft de onderstem minder noten dan S-slots, dan worden hold-slots naar duur verdeeld (gestipte + achtste → drie holds op de lange toon, niet herhaling van de korte). MuseScore-lyrics met streepje in de tekst (- le) tellen als één lettergreep; de melisma-staart blijft hangen.
  • Same-pitch holds: opeenvolgende dezelfde toonhoogte (ook over maatgrenzen) wordt op de stemregels als - geschreven.
  • Multi-lettergreep lyrics op één noot (spaties, -, of soft hyphen) worden recite ( … ) i.p.v. één geplakte lettergreep. Een lone extender - wordt lege recite ()~. Trailing . op lyric-tekst wordt weggestript.
  • Same-pitch recite: opeenvolgende noten met dezelfde toonhoogte én duur die elk een eenvoudige lettergreep dragen, worden vanaf 3 lettergrepen één recite ( … ). Daarnaast worden lettergrepen direct vóór/na een underlay-recite op dezelfde toon én duur meegenomen (bijv. Ver + (vuld zij …) + met → één recite). Losse paren zoals we/gen blijven aparte posities.
  • Woordgrenzen: MusicXML-syllabic stuurt de groepen. Twee singles worden alleen gehypheneerd als Pyphen dat bevestigt (met closed-class- en hoofdletter-guards: Be-waar, niet ons-heeft / Licht-aan / steun-van / dag-gaan). Een begin…end-keten wordt opnieuw gelettergreepd (heb-ben het wa-re); spaties in een end-lyric horen bij volgende woorden (psalm + zin-gen voor mijn God → psalm-zin-gen voor mijn God). Gebroken MuseScore-ketens: tweede begin telt als middle (Ja-cob); spaced fragments in recite worden hersteld (we der ke → we-der-ke). Losse single ervoor of erna mag meedoen (aan-bid-den, he-mel-se-Geest) tenzij de volgende lettergreep een beter woord vormt (ge-loof i.p.v. wa-re-ge). Woordstreepjes tussen L-posities alleen als de rechterkant middle/end is (of een recite), plus korte eigennaam-begin (Ja_-cob). Over een maatstreep tussen twee recites: (… wa)- | (re …).
  • Normaalvorm: standaard schrijft import daarna de canonieke vorm via mvsa kuiser (lone standaard-~ op L weggelaten; ~ blijft bij &-melisma en na ); maatstrepen sync, kolomuitlijning) — zie syntax — canonieke schrijfvorm en semantiek — canonieke layout.

Bij complexe MuseScore-lyrics is soms --no-align nodig (sla kuiser/align over) — de sync-telling blijft leidend. Pyphen-woordstreep-warnings van kuiser zijn advies, geen import-fout.

Pitch-vormen bij import

--pitch Stemregels Eindanker per systeem
ag-vsa Default. Eerste klinkende noot per LSATB-systeem absolute a–g; daarna EHM ja (a–g)
vsa Eerste toon absoluut als doremi; daarna EHM ja (a–g)
doremi Laddergraden nee
a-g Toonnamen met wetenschappelijk cijfer (bb4, …); alias abc nee

Bij ag-vsa en vsa plakt de import op elke stemregel een eindanker met absolute toonhoogte (a–g met wetenschappelijk cijfer) direct achter de laatste maatstreep van elk systeem, bijvoorbeeld |g4 of ||a4. Dat zijn check-only ankers: na wijzigingen in het .mvsa vangt mvsa validate een mismatch op (MVSA-BAR-ANKER). Op de lyrics-regel (L:) blijven de strepen kaal.

Syntax van eindankers: specification-mvsa — eindanker.

Argumenten en opties

Naam Verplicht Betekenis Default
path Ja .mxl, .musicxml of .mscz. —
--pitch Nee ag-vsa (default), vsa, doremi, of a-g (alias abc). ag-vsa
-o, --output Nee Uitvoer-.mvsa. <stem>.import.mvsa
--do Nee Forceer @do (bijv. F4). Zonder: KeySig / fifths / fallback. afgeleid
--octave-style Nee @oct of marker (nog niet) @oct
--section Nee @sectie-id in de output import
--musescore Nee MuseScore-pad (bij .mscz) auto
--no-align Nee Geen kuiser-normaalvorm (geen align) uit

Voorbeelden

vsa mvsa import generated\alleluia-schets2.mxl -o generated\alleluia.import.mvsa
vsa mvsa import generated\alleluia-schets2.mxl -o generated\alleluia.import.mvsa --pitch doremi
vsa mvsa import lied.mscz -o lied.mvsa --pitch a-g
vsa mvsa import lied.mscz -o lied.mvsa --pitch a-g --do F4
vsa mvsa import lied.mxl -o lied.mvsa --pitch vsa
vsa mvsa validate lied.mvsa

vsa mvsa normalize

Synopsis

vsa mvsa normalize [-h] [-o OUTPUT] [--pitch {preserve,doremi,a-g,vsa,ag-vsa}]
                   [--octave-style {@oct,marker}] [--no-align] path

Beschrijving

Canoniseert een bestaand .mvsa-bestand (uitlijning; optioneel hoogte-spelling). De L-regel (lyrics, ELM, recite, melisma) blijft semantisch gelijk. Sticky @do / @mode / @oct blijven staan.

Default bij bron .mvsa: --pitch preserve — de namen/notaties van noten blijven zoals in de bron (bladcijfer, do-re-mi, a–g, EHM, …). Alleen kolom- en maatstreep-uitlijning gebeurt standaard. Zo blijf je meerdere schetsen met verschillende spellingen in één bestand intact.

Wil je wél herschrijven naar één vorm, geef dan expliciet --pitch doremi, a-g, vsa of ag-vsa. (abc is een alias van a-g.)

Import uit een ander formaat (.mxl / .mscz via mvsa import / mxl import): daar is de default ag-vsa — er is dan geen “bronnotatie” om te bewaren.

--pitch Gedrag
preserve Default voor .mvsa → .mvsa: stemtokens ongewijzigd; wel align
doremi Laddergraden t.o.v. @do / @oct
a-g Toonnamen met wetenschappelijk cijfer (bb4, c5, …); alias: abc
vsa Eerste toon absoluut (doremi), daarna EHM (/, \2, …)
ag-vsa Per LSATB-systeem: eerste noot absolute a–g, daarna EHM; a–g-eindanker op de laatste maatstreep

Kolom- en maatstreep-uitlijning gebeurt standaard (zelfde regels als scripts/align_mvsa_columns.py); zet --no-align om dat over te slaan.

Werkplan: mvsa-conversions.

Argumenten en opties

Naam Verplicht Betekenis Default
path Ja Bron-.mvsa-bestand. —
--pitch Nee preserve (default), of doremi / a-g / vsa / ag-vsa preserve bij .mvsa-bron
-o, --output Nee Uitvoerpad. <stem>.normalized.mvsa
--octave-style Nee @oct (canoniek) of marker (nog niet klaar) @oct
--no-align Nee Geen kolomuitlijning. uit (wel alignen)

Output

  • stdout: Geschreven: <pad> bij succes.
  • bestand: genormaliseerde .mvsa.

Exit status

Exitcode Betekenis
0 Normalisatie geschreven.
1 Pad ontbreekt, validatiefout, of normalisatiefout.

Voorbeelden

vsa mvsa normalize examples\mvsa\alleluia-toon-8.canonieke.mvsa -o generated\alleluia.normalized.mvsa
vsa mvsa normalize examples\mvsa\alleluia-toon-8.mvsa --pitch a-g -o generated\alleluia.ag.mvsa
vsa mvsa normalize lied.mvsa --pitch doremi --octave-style @oct

vsa mvsa kuiser

Synopsis

vsa mvsa kuiser [-h] [-o OUTPUT] [--check] [--pitch {preserve,doremi,a-g,vsa,ag-vsa}]
                [--octave-style {@oct,marker}] [--no-align] path [path …]

Beschrijving

Authoring-pad naar de canonieke schrijfvorm uit de draft-spec (syntax, semantiek — layout):

  1. woordstreep-spatie op L (hei- li → hei-li; le- lu blijft);
  2. maatstrepen syncen waar eenduidig (maximale unieke bar-reeks; herpartitioneren via positietelling);
  3. daarna hetzelfde als normalize (default --pitch preserve + kolomalign).

Default schrijft in-place. Gebruik --check als dry-run (exit 1 als er iets zou wijzigen). Na afloop moet validate geen errors meer geven; bij conflicterende strepen faalt de kuiser met een duidelijke fout.

Gedrag t.o.v. - / ~ op L (draft-spec):

  • Canoniek: lone standaard-lengte zonder ~ (impliciet); ~ wél bij &-melisma (ziel~&~) en na recite-) bij niet-breve duur. Woordstreepje direct vóór de lettergreep (-li), met spaties ervóór bij extra breedte (…_&_ -li).
  • Invoer: kale ELM-- mag (o.a. melisma); kuiser herschrijft eenduidige gevallen naar ~ en laat daarna lone ~ weg.
  • Ambigu (hei- li, li-&--ge): waarschuwing op stderr met bestand:regel:kolom — geen stille collapse naar hei-li.
  • Pyphen (ontbrekende / verdachte woordstreepjes): advies-warnings; geen validate-fout. Sync-telling blijft leidend; bij complexe MuseScore-importlyrics soms --no-align.

normalize blijft het conversiepad (pitch-herschrijf naar een apart uitvoerbestand). kuiser is het dagelijkse authoring-commando.

Argumenten en opties

Optie Verplicht Beschrijving Default
path Ja .mvsa-bestand(en) of map(pen). —
-o, --output Nee Uitvoerpad (alleen bij precies één bronbestand). in-place
--check Nee Geen schrijfactie; exit 1 bij wijziging. uit
--pitch Nee Zelfde als normalize (default preserve). preserve
--octave-style Nee Schrijfoctaaf-stijl. @oct
--no-align Nee Sla kolomuitlijning over. uit

Exit status

Exitcode Betekenis
0 Klaar (of --check zonder wijziging).
1 Pad ontbreekt, kuiser-/validatiefout, of --check met diff.

Voorbeelden

vsa mvsa kuiser examples\mvsa\alleluia-toon-8.mvsa
vsa mvsa kuiser examples\mvsa --check
vsa mvsa kuiser lied.mvsa -o generated\lied.kuiser.mvsa
vsa mvsa kuiser lied.mvsa --pitch a-g

Zie ook