@coderline/alphatab-language-server 1.8.0-alpha.1640 → 1.8.0-alpha.1645
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server.min.mjs +2 -2
- package/dist/server.mjs +87 -2
- package/dist/server.mjs.map +1 -1
- package/package.json +2 -2
package/dist/server.min.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* alphaTab Language Server v1.8.0-alpha.
|
|
2
|
+
* alphaTab Language Server v1.8.0-alpha.1645 (develop, build 1645)
|
|
3
3
|
*
|
|
4
4
|
* Copyright © 2025, Daniel Kuschny and Contributors, All rights reserved.
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
* @preserve
|
|
11
11
|
* @license
|
|
12
12
|
*/
|
|
13
|
-
import*as e from"@coderline/alphatab";import{TextDocuments as t}from"vscode-languageserver";import{DocumentDiagnosticReportKind as s,PositionEncodingKind as n,TextDocumentSyncKind as i}from"vscode-languageserver-protocol";import{TextDocument as a}from"vscode-languageserver-textdocument";import{InsertTextFormat as r,CompletionItemKind as o,TextEdit as p,DiagnosticSeverity as l,uinteger as c,SignatureInformation as h,ParameterInformation as d}from"vscode-languageserver-types";import{createConnection as m,BrowserMessageReader as u,BrowserMessageWriter as f}from"vscode-languageserver/lib/browser/main.js";import{createConnection as g,ProposedFeatures as y}from"vscode-languageserver/lib/node/main.js";const D={tag:"\\ac",snippet:"\\ac $0",shortDescription:"Mark an anacrusis (pick-up) bar",longDescription:"\n Marks the bar as an anacrusis (pick-up) bar.\n\n By default bars follow a strict timing defined by the time signature and tempo. Anacrusis (aka. pickup bars) do not follow this rule. The length of those bars is defined by the actual beats/notes in the bar.\n ",signatures:[{parameters:[]}],examples:"\n \\ks D \\ts 24 16 \\ac r.16 6.3 7.3 9.3 7.3 6.3 | r.16 5.4 7.4 9.4 7.4 5.4 6.3.4{d} 9.6.16 10.6 12.6 10.6 9.6 14.6.4{d} r.16\n "};e.model.WhammyType,e.model.BendStyle,e.model.GraceType,e.model.FermataType,e.importer.alphaTex.AlphaTexAccidentalMode,e.model.NoteAccidentalMode,e.model.BarreShape,e.model.Ottavia,e.model.Rasgueado,e.model.DynamicValue,e.model.BracketExtendMode,e.model.TrackNamePolicy,e.model.TrackNameOrientation,e.model.TrackNameMode,e.platform.TextAlign,e.model.BendType,e.model.KeySignature,e.model.KeySignatureType,e.model.Clef,e.model.TripletFeel,e.model.BarLineStyle,e.model.SimileMark,e.model.Direction;const b={WhammyType:{None:null,Custom:{snippet:"custom",shortDescription:"Non standard custom whammys with multiple points"},Dive:{snippet:"dive",shortDescription:"A gradual change between two points"},Dip:{snippet:"dip",shortDescription:"A A->B->A whammy pattern."},Hold:{snippet:"hold",shortDescription:"Holding whammys (on tied notes)."},Predive:{snippet:"predive",shortDescription:"Press/pull before playing the note and then kept"},PrediveDive:{snippet:"prediveDive",shortDescription:"Whammy bar is pressed/pulled before playing the note and then further pressed/released"}},BendStyle:{Default:{snippet:"default",shortDescription:"",longDescription:"No additional text is shown, the offsets and values are respected as specified."},Gradual:{snippet:"gradual",shortDescription:"",longDescription:'Will show an additional "grad." on the line. The audio is generated according to the type spread evenly across the play duration.'},Fast:{snippet:"fast",shortDescription:"",longDescription:"No additional text is shown. The audio is generated according to the type spread evenly across the fixed duration set via settings.player.songBookBendDuration."}},GraceType:{None:null,OnBeat:{snippet:"onBeat",shortDescription:"On-Beat",longDescription:"An On-Beat grace note where this beat will start at the play time of the next beat and steal its play time from the next beat.",aliases:["ob"]},BeforeBeat:{snippet:"beforeBeat",shortDescription:"Before-Beat",longDescription:"A Before-Beat grace note where this beat will start before the next beat and steal its play time from the previous beat.",aliases:["bb"]},BendGrace:{snippet:"bendGrace",shortDescription:"Bend",longDescription:"A bend grace note, a mechanism used in alphaTab for the 'songbook style' bends notes. You will likely not apply this type manually.",aliases:["b"]}},FermataType:{Short:{snippet:"short",shortDescription:""},Medium:{snippet:"medium",shortDescription:""},Long:{snippet:"long",shortDescription:""}},AlphaTexAccidentalMode:{Auto:{snippet:"auto",shortDescription:"Automatic (Based on Pitch)"},Explicit:{snippet:"explicit",shortDescription:"Explicit (as Written)"}},NoteAccidentalMode:{Default:{snippet:"default",shortDescription:"Auto-detect the accidentals",aliases:["d"]},ForceNone:{snippet:"forceNone",shortDescription:"Force no accidentals",aliases:["-"]},ForceNatural:{snippet:"forceNatural",shortDescription:"Force a naturalize accidental",aliases:["n"]},ForceSharp:{snippet:"forceSharp",shortDescription:"Force a sharp accidental",aliases:["#"]},ForceDoubleSharp:{snippet:"forceDoubleSharp",shortDescription:"Force a double-sharp accidental",aliases:["##","x"]},ForceFlat:{snippet:"forceFlat",shortDescription:"Force a flat accidental",aliases:["b"]},ForceDoubleFlat:{snippet:"forceDoubleFlat",shortDescription:"Force a double flat accidental",aliases:["bb"]}},BarreShape:{None:null,Full:{snippet:"full",shortDescription:""},Half:{snippet:"half",shortDescription:""}},Ottavia:{t:{snippet:"15ma",shortDescription:"Quindicesima (+2 octaves)",aliases:["15ma"]},i:{snippet:"8va",shortDescription:"Ottava (+1 octave)",aliases:["8va"]},Regular:{snippet:"regular",shortDescription:"Regular"},o:{snippet:"8vb",shortDescription:"Ottava Bassa (-1 octave)",aliases:["8vb"]},p:{snippet:"15mb",shortDescription:"Quindicesima bassa (-2 octaves)",aliases:["15mb"]}},Rasgueado:{None:null,Ii:{snippet:"ii",shortDescription:"ii"},Mi:{snippet:"mi",shortDescription:"mi"},MiiTriplet:{snippet:"miiTriplet",shortDescription:"mii (triplet)"},MiiAnapaest:{snippet:"miiAnapaest",shortDescription:"mii (anapaest)"},PmpTriplet:{snippet:"pmpTriplet",shortDescription:"pmp (triplet)"},PmpAnapaest:{snippet:"pmpAnapaest",shortDescription:"pmp (anapaest)"},PeiTriplet:{snippet:"peiTriplet",shortDescription:"pei (triplet)"},PeiAnapaest:{snippet:"peiAnapaest",shortDescription:"pei (anapaest)"},PaiTriplet:{snippet:"paiTriplet",shortDescription:"pai (triplet)"},PaiAnapaest:{snippet:"paiAnapaest",shortDescription:"pai (anapaest)"},AmiTriplet:{snippet:"amiTriplet",shortDescription:"ami (triplet)"},AmiAnapaest:{snippet:"amiAnapaest",shortDescription:"ami (anapaest)"},Ppp:{snippet:"ppp",shortDescription:"ppp"},Amii:{snippet:"amii",shortDescription:"amii"},Amip:{snippet:"amip",shortDescription:"amip"},Eami:{snippet:"eami",shortDescription:"eami"},Eamii:{snippet:"eamii",shortDescription:"eamii"},Peami:{snippet:"peami",shortDescription:"peami"}},DynamicValue:{PPP:{snippet:"ppp",shortDescription:""},PP:{snippet:"pp",shortDescription:""},P:{snippet:"p",shortDescription:""},MP:{snippet:"mp",shortDescription:""},MF:{snippet:"mf",shortDescription:""},F:{snippet:"f",shortDescription:""},FF:{snippet:"ff",shortDescription:""},FFF:{snippet:"fff",shortDescription:""},PPPP:{snippet:"pppp",shortDescription:""},PPPPP:{snippet:"ppppp",shortDescription:""},PPPPPP:{snippet:"pppppp",shortDescription:""},FFFF:{snippet:"ffff",shortDescription:""},FFFFF:{snippet:"fffff",shortDescription:""},FFFFFF:{snippet:"ffffff",shortDescription:""},SF:{snippet:"sf",shortDescription:""},SFP:{snippet:"sfp",shortDescription:""},SFPP:{snippet:"sfpp",shortDescription:""},FP:{snippet:"fp",shortDescription:""},RF:{snippet:"rf",shortDescription:""},RFZ:{snippet:"rfz",shortDescription:""},SFZ:{snippet:"sfz",shortDescription:""},SFFZ:{snippet:"sffz",shortDescription:""},FZ:{snippet:"fz",shortDescription:""},N:{snippet:"n",shortDescription:""},PF:{snippet:"pf",shortDescription:""},SFZP:{snippet:"sfzp",shortDescription:""}},BracketExtendMode:{NoBrackets:{snippet:"noBrackets",shortDescription:"No brackets",longDescription:"No brackets will be draw at all."},GroupStaves:{snippet:"groupStaves",shortDescription:"Group staves of same track",longDescription:'The staves of the same track will be grouped together. If there are multiple "standard notation" staves a brace will be drawn, otherwise a bracket.'},GroupSimilarInstruments:{snippet:"groupSimilarInstruments",shortDescription:"Group similar instruments",longDescription:"Multiple tracks of the same instrument will be grouped together. No grouping happens if the staves of an instrument require a brace."}},TrackNamePolicy:{Hidden:{snippet:"hidden",shortDescription:"Track names are hidden everywhere."},FirstSystem:{snippet:"firstSystem",shortDescription:"Track names are displayed on the first system."},AllSystems:{snippet:"allSystems",shortDescription:"Track names are displayed on all systems."}},TrackNameOrientation:{Horizontal:{snippet:"horizontal",shortDescription:"Text is shown horizontally (left-to-right)."},Vertical:{snippet:"vertical",shortDescription:"Vertically rotated (bottom-to-top)."}},TrackNameMode:{FullName:{snippet:"fullName",shortDescription:"Short track names (abbreviations) are displayed."},ShortName:{snippet:"shortName",shortDescription:"Full track names are displayed."}},TextAlign:{Left:{snippet:"left",shortDescription:"Left-align the text"},Center:{snippet:"center",shortDescription:"Center-align the text"},Right:{snippet:"right",shortDescription:"Right-align the text"}},BendType:{None:null,Custom:{snippet:"custom",shortDescription:"A non-standard custom bends with multiple points"},Bend:{snippet:"bend",shortDescription:"A simple bend up to a higher note"},Release:{snippet:"release",shortDescription:"A release of bends down to a lower note"},BendRelease:{snippet:"bendRelease",shortDescription:"A bend directly followed by a release"},Hold:{snippet:"hold",shortDescription:"A bend which is held from the previous note"},Prebend:{snippet:"prebend",shortDescription:"A bend applied before the note is played"},PrebendBend:{snippet:"prebendBend",shortDescription:"A pre-bend followed by a bend"},PrebendRelease:{snippet:"prebendRelease",shortDescription:"A pre-bend followed by a release"}},KeySignature:{Cb:{snippet:"cb",shortDescription:"",aliases:["cbmajor","abminor"]},Gb:{snippet:"gb",shortDescription:"",aliases:["gbmajor","ebminor"]},Db:{snippet:"db",shortDescription:"",aliases:["dbmajor","bbminor"]},Ab:{snippet:"ab",shortDescription:"",aliases:["abmajor","fminor"]},Eb:{snippet:"eb",shortDescription:"",aliases:["ebmajor","cminor"]},Bb:{snippet:"bb",shortDescription:"",aliases:["bbmajor","gminor"]},F:{snippet:"f",shortDescription:"",aliases:["fmajor","dminor"]},C:{snippet:"c",shortDescription:"",aliases:["cmajor","aminor"]},G:{snippet:"g",shortDescription:"",aliases:["gmajor","eminor"]},D:{snippet:"d",shortDescription:"",aliases:["dmajor","bminor"]},A:{snippet:"a",shortDescription:"",aliases:["amajor","f#minor"]},E:{snippet:"e",shortDescription:"",aliases:["emajor","c#minor"]},B:{snippet:"b",shortDescription:"",aliases:["bmajor","g#minor"]},FSharp:{snippet:"f#",shortDescription:"",aliases:["f#major","d#minor","f#"]},CSharp:{snippet:"c#",shortDescription:"",aliases:["c#major","a#minor","c#"]}},KeySignatureType:{Major:{snippet:"major",shortDescription:"",aliases:["cb","cbmajor","gb","gbmajor","db","dbmajor","ab","abmajor","eb","ebmajor","bb","bbmajor","f","fmajor","c","cmajor","g","gmajor","d","dmajor","a","amajor","e","emajor","b","bmajor","f#","f#major","c#","c#major"]},Minor:{snippet:"minor",shortDescription:"",aliases:["abminor","ebminor","bbminor","fminor","cminor","gminor","dminor","aminor","eminor","bminor","f#minor","c#minor","g#minor","d#minor","a#minor"]}},Clef:{Neutral:{snippet:"neutral",shortDescription:"",aliases:["n"],allowNumeric:!0},C3:{snippet:"c3",shortDescription:"",aliases:["alto"],allowNumeric:!0},C4:{snippet:"c4",shortDescription:"",aliases:["tenor"],allowNumeric:!0},F4:{snippet:"f4",shortDescription:"",aliases:["bass"],allowNumeric:!0},G2:{snippet:"g2",shortDescription:"",aliases:["treble"],allowNumeric:!0}},TripletFeel:{NoTripletFeel:{snippet:"none",shortDescription:"No triplet feel",aliases:["none","no","noTripletFeel"],allowNumeric:!0},Triplet16th:{snippet:"triplet16th",shortDescription:"Triplet 16th",aliases:["t16","triplet-16th"],allowNumeric:!0},Triplet8th:{snippet:"triplet8th",shortDescription:"Triplet 8th",aliases:["t8","triplet-8th"],allowNumeric:!0},Dotted16th:{snippet:"dotted16th",shortDescription:"Dotted 16th",aliases:["d16","dotted-16th"],allowNumeric:!0},Dotted8th:{snippet:"dotted8th",shortDescription:"Dotted 8th",aliases:["d8","dotted-8th"],allowNumeric:!0},Scottish16th:{snippet:"scottish16th",shortDescription:"Scottish 16th",aliases:["s16","scottish-16th"],allowNumeric:!0},Scottish8th:{snippet:"scottish8th",shortDescription:"Scottish 8th",aliases:["s8","scottish-8th"],allowNumeric:!0}},BarLineStyle:{Automatic:{snippet:"automatic",shortDescription:"Auto detect line to show"},Dashed:{snippet:"dashed",shortDescription:""},Dotted:{snippet:"dotted",shortDescription:""},Heavy:{snippet:"heavy",shortDescription:""},HeavyHeavy:{snippet:"heavyHeavy",shortDescription:""},HeavyLight:{snippet:"heavyLight",shortDescription:""},LightHeavy:{snippet:"lightHeavy",shortDescription:""},LightLight:{snippet:"lightLight",shortDescription:""},None:{snippet:"none",shortDescription:""},Regular:{snippet:"regular",shortDescription:""},Short:{snippet:"short",shortDescription:""},Tick:{snippet:"tick",shortDescription:""}},SimileMark:{None:{snippet:"none",shortDescription:"No simile mark is applied",deprecated:"Do not apply a `\\simile` if there is none."},Simple:{snippet:"simple",shortDescription:"A simple simile mark. The previous bar is repeated."},FirstOfDouble:{snippet:"firstOfDouble",shortDescription:"A double simile mark. This value is assigned to the first bar of the 2 repeat bars."},SecondOfDouble:{snippet:"secondOfDouble",shortDescription:"A double simile mark. This value is assigned to the second bar of the 2 repeat bars."}},Direction:{TargetFine:{snippet:"fine",shortDescription:"Fine (Target)"},TargetSegno:{snippet:"segno",shortDescription:"Segno (Target)"},TargetSegnoSegno:{snippet:"segnoSegno",shortDescription:"SegnoSegno (Target)"},TargetCoda:{snippet:"coda",shortDescription:"Coda (Target)"},TargetDoubleCoda:{snippet:"doubleCoda",shortDescription:"DoubleCoda (Target)"},JumpDaCapo:{snippet:"daCapo",shortDescription:"DaCapo (Jump)"},JumpDaCapoAlCoda:{snippet:"daCapoAlCoda",shortDescription:"DaCapoAlCoda (Jump)"},JumpDaCapoAlDoubleCoda:{snippet:"daCapoAlDoubleCoda",shortDescription:"DaCapoAlDoubleCoda (Jump)"},JumpDaCapoAlFine:{snippet:"daCapoAlFine",shortDescription:"DaCapoAlFine (Jump)"},JumpDalSegno:{snippet:"dalSegno",shortDescription:"DalSegno (Jump)"},JumpDalSegnoAlCoda:{snippet:"dalSegnoAlCoda",shortDescription:"DalSegnoAlCoda (Jump)"},JumpDalSegnoAlDoubleCoda:{snippet:"dalSegnoAlDoubleCoda",shortDescription:"DalSegnoAlDoubleCoda (Jump)"},JumpDalSegnoAlFine:{snippet:"dalSegnoAlFine",shortDescription:"DalSegnoAlFine (Jump)"},JumpDalSegnoSegno:{snippet:"dalSegnoSegno",shortDescription:"DalSegnoSegno (Jump)"},JumpDalSegnoSegnoAlCoda:{snippet:"dalSegnoSegnoAlCoda",shortDescription:"DalSegnoSegnoAlCoda (Jump)"},JumpDalSegnoSegnoAlDoubleCoda:{snippet:"dalSegnoSegnoAlDoubleCoda",shortDescription:"DalSegnoSegnoAlDoubleCoda (Jump)"},JumpDalSegnoSegnoAlFine:{snippet:"dalSegnoSegnoAlFine",shortDescription:"DalSegnoSegnoAlFine (Jump)"},JumpDaCoda:{snippet:"daCoda",shortDescription:"DaCoda (Jump)"},JumpDaDoubleCoda:{snippet:"daDoubleCoda",shortDescription:"DaDoubleCoda (Jump)"}}};function w(t){const s=b[t],n=Object.values(s).some(e=>e?.allowNumeric);return{type:n?[e.importer.alphaTex.AlphaTexNodeType.Ident,e.importer.alphaTex.AlphaTexNodeType.Number]:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,values:[...Object.values(s).filter(e=>null!==e).map(e=>({name:e.snippet,snippet:e.snippet,shortDescription:e.shortDescription,deprecated:e.deprecated,longDescription:e.longDescription,skip:e.skip})),...Object.values(s).filter(e=>null!==e&&e.aliases).flatMap(e=>e.aliases.map(t=>({name:t,snippet:t,shortDescription:e.shortDescription,deprecated:e.deprecated,longDescription:e.longDescription,skip:e.skip})))]}}const v={tag:"\\accidentals",snippet:"\\accidentals $1 $0",shortDescription:"Changes the mode how accidentals are treated",longDescription:"\n Changes the mode how alphaTab should treat accidentals when writing pitched notes.\n\n alphaTab can use the accidentals as specified in alphaTex, or apply accidentals automatically based on the note pitch.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode which should be active",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("AlphaTexAccidentalMode")}]}],examples:"\n \\accidentals explicit\n C#4 C4 Eb4 Ax4 |\n \\accidentals auto\n C#4 C4 Eb4 Ax4 |\n "},T={tag:"\\ae",snippet:"\\ae $1 $0",shortDescription:"Specify the alternate ending repeats.",longDescription:"Specifies on which repeats a bar should be played (to build alternate endings).",signatures:[{parameters:[{name:"ending",shortDescription:"The repeats on which the bar should be played",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\ro 1.3 2.3 3.3 4.3 | \\ae (1 2 3) 5.3 6.3 7.3 8.3 | \\ae 4 \rc 4 5.3 8.3 7.3 6.3\n "},k={tag:"\\barlineLeft",snippet:"\\barlineLeft $1 $0",shortDescription:"The lines style shown left on the bar.",longDescription:"\n Adjusts the lines which will be shown left on the bar.\n\n For some special notation needs, the default bar line can be adjusted on every bar. The bar line styles are aligned with the ones from [MusicXML](https://www.w3.org/2021/06/musicxml40/musicxml-reference/data-types/bar-style/).\n\n alphaTab attempts to reuse lines on overlapping styles across bars.\n ",signatures:[{parameters:[{name:"style",shortDescription:"The line style to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BarLineStyle")}]}],examples:'\n \\instrument piano\n \\track "Overlapping"\n \\staff \n \\barlineleft dashed \n \\barlineright dotted \n | \n \\barlineleft heavyheavy\n \\barlineright heavyheavy\n \n \\staff \n \\barlineleft lightlight \n \\barlineright lightheavy \n | \n \\barlineleft heavylight\n \\barlineright dashed\n \\track "All Styles"\n \\staff \n \\barlineright dashed |\n \\barlineright dotted |\n \\barlineright heavy |\n \\barlineright heavyHeavy |\n \\barlineright heavyLight |\n \\barlineright lightHeavy |\n \\barlineright lightlight |\n \\barlineright none |\n \\barlineright regular |\n \\barlineright short |\n \\barlineright tick |\n '},x={tag:"\\barlineRight",snippet:"\\barlineRight $1 $0",shortDescription:"The lines style shown right on the bar.",longDescription:"\n Adjusts the lines which will be shown right on the bar.\n\n For some special notation needs, the default bar line can be adjusted on every bar. The bar line styles are aligned with the ones from [MusicXML](https://www.w3.org/2021/06/musicxml40/musicxml-reference/data-types/bar-style/).\n\n alphaTab attempts to reuse lines on overlapping styles across bars.\n ",signatures:[{parameters:[{name:"style",shortDescription:"The line style to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BarLineStyle")}]}],examples:'\n \\instrument piano\n \\track "Overlapping"\n \\staff \n \\barlineleft dashed \n \\barlineright dotted \n | \n \\barlineleft heavyheavy\n \\barlineright heavyheavy\n \n \\staff \n \\barlineleft lightlight \n \\barlineright lightheavy \n | \n \\barlineleft heavylight\n \\barlineright dashed\n \\track "All Styles"\n \\staff \n \\barlineright dashed |\n \\barlineright dotted |\n \\barlineright heavy |\n \\barlineright heavyHeavy |\n \\barlineright heavyLight |\n \\barlineright lightHeavy |\n \\barlineright lightlight |\n \\barlineright none |\n \\barlineright regular |\n \\barlineright short |\n \\barlineright tick |\n '},S={tag:"\\clef",snippet:"\\clef $1 $0",shortDescription:"Set the clef.",longDescription:"Changes the clef for this and subsequent bars.",signatures:[{parameters:[{name:"clef",shortDescription:"The clef",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Clef")}]}],examples:"\n \\clef G2 | \\clef F4 | \\clef C3 | \\clef C4 | \\clef N |\n \\clef Treble | \\clef Bass | \\clef Tenor | \\clef Alto | \\clef Neutral |\n "},C={tag:"\\ft",snippet:"\\ft $0",shortDescription:"Marks the bar as a free-time bar",longDescription:"\n Marks the bar as a free-time bar where players are free to vary the timing.\n ",signatures:[{parameters:[]}],examples:"\n :2 \n C4*2 |\n \\ft C4*2 |\n \\ft C4*2 |\n C4*2 |\n "},A={tag:"\\jump",snippet:"\\jump $1 $0",shortDescription:"Adds a direction/jump instruction to the bar.",signatures:[{parameters:[{name:"direction",shortDescription:"The direction to add",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Direction")}]}],examples:"\n \\ro \\rc 2 3.3*4 | \n 3.3*4 | \n \\jump Segno 3.3*4 |\n \\ro \rc 2 3.3*4 | \n \\jump DaCoda 3.3*4 |\n 3.3*4 | 3.3*4\n \\jump DalSegnoAlCoda 3.3*4 |\n 3.3*4 |\n \\jump Coda 3.3*4 |\n 3.3*4 |\n 3.3*4\n "},M={tag:"\\ks",snippet:"\\ks $1 $0",shortDescription:"Set the key signature",longDescription:"Specifies the key signature for this and subsequent bars.",signatures:[{parameters:[{name:"key",shortDescription:"The key signature",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("KeySignature")}]}],examples:"\n \\ks Cb | \\ks C | \\ks C# |\n \\ks Aminor | \\ks Dmajor | \\ks Bminor\n "},$={tag:"\\ottava",snippet:"\\ottava $1 $0",shortDescription:"Set the clef ottava.",longDescription:"Changes the clef ottave for this and subsequent bars.",signatures:[{parameters:[{name:"ottava",shortDescription:"The clef ottava",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Ottavia")}]}],examples:"\n \\clef F4 \\ottava 15ma | | \\ottava regular | | \\clef C3 \\ottava 8vb | |\n "},F={tag:"\\rc",snippet:"\\rc ${1:2} $0",shortDescription:"End a repeat ",longDescription:"Marks the end of a repeat.",signatures:[{parameters:[{name:"repeats",shortDescription:"The number of repeats which should be played",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\ro 1.3 2.3 3.3 4.3 | 5.3 6.3 7.3 8.3 | \\rc 2 1.3 2.3 3.3 4.3 |\n \\ro \\rc 3 1.3 2.3 3.3 4.3\n "},H={tag:"\\ro",snippet:"\\ro $0",shortDescription:"Start a repeat",signatures:[{parameters:[]}],examples:"\n \\ro 1.3 2.3 3.3 4.3 | 5.3 6.3 7.3 8.3 | \\rc 2 1.3 2.3 3.3 4.3 |\n \\ro \\rc 3 1.3 2.3 3.3 4.3\n "},P={tag:"\\scale",snippet:"\\scale $1 $0",shortDescription:"Adjusts the relative scale of the bar",longDescription:"Adjusts the relative scale of the bar when using `systemsLayoutMode: 'UseModelLayout'` with the page layout.",signatures:[{parameters:[{name:"scale",shortDescription:"The scale of the bar within the system",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:"\n \\track { defaultSystemsLayout 3 }\n \\scale 0.25 :1 c4 | \\scale 0.5 c4 | \\scale 0.25 c4 | \n \\scale 0.5 c4 | \\scale 2 c4 | \\scale 0.5 c4 |\n c4 | c4\n "}},E={tag:"\\section",snippet:'\\section "$1" $0',shortDescription:"Starts a new section",signatures:[{parameters:[{name:"text",shortDescription:"The text/description of the new section",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"marker",shortDescription:"The marker for the section, typically a single letter",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"text",shortDescription:"The text/description of the new section",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,reservedIdentifiers:["x","-","r"]}]}],examples:'\n \\section "Intro" // simple section\n 1.1 1.1 1.1 1.1 | 1.1 1.1 1.1 1.1 |\n \\section "S" "Solo" // with marker and section name differently\n 1.1 1.1 1.1 1.1\n '},N={tag:"\\simile",snippet:"\\simile $1 $0",shortDescription:"Adds a simile mark to the bar.",longDescription:"Adds a simile mark to the bar indicating that the content of the last, or previous two bars should be repeated.",signatures:[{parameters:[{name:"mark",shortDescription:"The mark to add",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("SimileMark")}]}],examples:"\n 3.3*4 | \\simile simple | 3.3*4 | 4.3*4 | \\simile firstofdouble | \\simile secondofdouble\n "},B={tag:"\\spd",snippet:"\\spd $1 $0",shortDescription:"Add a sustain pedal down press",longDescription:"\n Specifies how the sustain petal should be pressed down (`spd`), held (`sph`) or lifted up (`spu`).\n\n This tag allows specifying the sustain pedal relative to the bar. The sustain pedal can also be applied via beat properties.\n ",signatures:[{parameters:[{name:"position",shortDescription:"The relative position within the bar for the marker (0-1)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\spd 0\n \\spu 0.25\n \\spd 0.5\n \\sph 0.75\n \\spu 1\n :8 C4 * 8\n "},L={tag:"\\sph",snippet:"\\sph $1 $0",shortDescription:"Add a sustain pedal hold",longDescription:"\n Specifies how the sustain petal should be pressed down (`spd`), held (`sph`) or lifted up (`spu`).\n\n This tag allows specifying the sustain pedal relative to the bar. The sustain pedal can also be applied via beat properties.\n ",signatures:[{parameters:[{name:"position",shortDescription:"The relative position within the bar for the marker (0-1)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\spd 0\n \\spu 0.25\n \\spd 0.5\n \\sph 0.75\n \\spu 1\n :8 C4 * 8\n "},O={tag:"\\spu",snippet:"\\spu $1 $0",shortDescription:"Add a sustain pedal lift up",longDescription:"\n Specifies how the sustain petal should be pressed down (`spd`), held (`sph`) or lifted up (`spu`).\n\n This tag allows specifying the sustain pedal relative to the bar. The sustain pedal can also be applied via beat properties.\n ",signatures:[{parameters:[{name:"position",shortDescription:"The relative position within the bar for the marker (0-1)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\spd 0\n \\spu 0.25\n \\spd 0.5\n \\sph 0.75\n \\spu 1\n :8 C4 * 8\n "},I={tag:"\\sync",snippet:"\\tempo ($1 $2 $3) $0",shortDescription:"Adds a sync point to the data model.",longDescription:"\n Adds a new sync point for synchronizing the music sheet with an external media source like a backing track or video player.\n\n alphaTex support specifying sync points for the [synchronization with external media](https://alphatab.net/docs/guides/audio-video-sync).\n\n It is recommended to add the sync points at the very end of the song but it is also possible to define them inbetween.\n\n The `barIndex`, `occurence`, `ratioPosition` parameters define the absolute position within the music sheet. The millisecondOffset defines the absolute position within the external media.\n\n With this information known, alphaTab can synchronize the external media with the music sheet.\n ",signatures:[{parameters:[{name:"barIndex",shortDescription:"The index of the bar being synced",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"occurence",shortDescription:"The occurence of the bar for which this sync point applies (on repeats)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"millisecondOffset",shortDescription:"The absolute millisecond offset within the external media",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"ratioPosition",shortDescription:"The relative position within the bar where the synchronization happens",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat,defaultValue:"0",type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:{websiteMdx:["import { AlphaTexSyncPointSample } from '@site/src/components/AlphaTexSyncPointSample';","","<AlphaTexSyncPointSample />"].join("\n"),tex:'\n \\title "Prelude in D Minor"\n \\artist "J.S. Bach (1685-1750)"\n \\copyright "Public Domain"\n \\tempo 80\n\n \\ts 3 4\n 0.4.16 (3.2 -.4) (1.1 -.4) (5.1 -.4) 1.1 3.2 1.1 3.2 2.3.8 (3.2 3.4) |\n (3.2 0.4).16 (3.2 -.4) (1.1 -.4) (5.1 -.4) 1.1 3.2 1.1 3.2 2.3.8 (3.2 3.4) | \n (3.2 0.4).16 (3.2 -.4) (3.1 -.4) (6.1 -.4) 3.1 3.2 3.1 3.2 3.3.8 (3.2 0.3) | \n (3.2 0.4).16 (3.2 -.4) (3.1 -.4) (6.1 -.4) 3.1 3.2 3.1 3.2 3.3.8 (3.2 0.3) |\n \n \\sync 0 0 0\n \\sync 0 0 1500 0.666\n \\sync 1 0 4075 0.666\n \\sync 2 0 6475 0.333\n \\sync 3 0 10223 1\n '}},j={tag:"\\tempo",snippet:"\\tempo $1 $0",shortDescription:"Add a tempo change to the bar.",longDescription:"\n Adds a tempo change to the bar.\n\n A bar can have multiple tempo changes. They can either be relatively positioned using this metadata tag or applied via the `tempo` property as beat effect.\n\n Tempo changes affect the whole song and not only an individual track. To avoid unexpected side effects, we recomment to specify the tempo changes only once on the first track/staff.\n ",signatures:[{parameters:[{name:"tempo",shortDescription:"The new tempo in BPM",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat},{name:"label",shortDescription:"A textual label for the tempo",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:'""'}]},{strict:!0,parameters:[{name:"tempo",shortDescription:"The new tempo in BPM",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat},{name:"label",shortDescription:"A textual label for the tempo",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,defaultValue:'""'},{name:"position",shortDescription:"A relative (ratio) position where within the bar the tempo change should happen",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"0",type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"hide",shortDescription:"If specified the tempo change is not visually shown",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,values:[{name:"hide",shortDescription:"If specified the tempo change is not visually shown",snippet:"hide"}]}]}],examples:'\n \\tempo 30\n C4 D4 E4 F4 |\n \\tempo (120 "Moderate")\n \\tempo (60 "" 0.5 hide)\n C4 D4 E4 F4 |\n '},G={tag:"\\tf",snippet:"\\tf $1 $0",shortDescription:"Set the triplet feel (swing)",longDescription:"Changes the triplet feel (aka. swing) play style.",signatures:[{parameters:[{name:"tripletFeel",shortDescription:"The triplet feel style",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TripletFeel")}]}],examples:"\n \\tf none 3.3*4 |\n \\tf triplet16th 3.3*4 | \\tf triplet8th 3.3*4 |\n \\tf dotted16th 3.3*4 | \\tf dotted8th 3.3*4 |\n \\tf scottish16th 3.3*4 | \\tf scottish8th 3.3*4 |\n "},R={tag:"\\ts",snippet:"\\ts ($1 $2) $0",shortDescription:"Set the time signature",longDescription:"\n Defines the time signature for this and subsequent bars.\n\n AlphaTab does not yet support polytempo notation where instruments might use different time signatures. Therefore be sure to only specify the timesignatures once as part of the first track/staff or ensure they are consistent across the whole document.\n ",signatures:[{description:"Specifies a common (4/4) time signature using the special C symbol",parameters:[{name:"common",shortDescription:"",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,allowAllStringTypes:!0,values:[{name:"common",shortDescription:"Specifies a common (4/4) time signature using the special C symbol",snippet:"common"}]}]},{parameters:[{name:"numerator",shortDescription:"The time signature numerator",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"denominator",shortDescription:"The time signature denominator",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\ts 3 4 | \\ts 4 4 | \\ts 6 8 | \\ts common\n "},K={tag:"\\width",snippet:"\\width $1 $0",shortDescription:"Adjusts the absolute of the bar",longDescription:"Adjusts the absolute of the bar when using `systemsLayoutMode: 'UseModelLayout'` with the horizontal layout.",signatures:[{parameters:[{name:"width",shortDescription:"The absolute width of the bar",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat}]}],examples:{options:{display:{layoutMode:"Horizontal",systemsLayoutMode:"UseModelLayout"}},tex:"\n \\track\n \\width 100 :1 c4 | \\width 300 c4 | \\width 350 c4\n "}},J=[{parameters:[{name:"value",shortDescription:"The value to set",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"template",shortDescription:"The template used to render the text",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional},{name:"textAlign",shortDescription:"The alignment of the text on the music sheet",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,...w("TextAlign")}]}],V=[{parameters:[{name:"template",shortDescription:"The template used to render the text",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"textAlign",shortDescription:"The alignment of the text on the music sheet",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,...w("TextAlign")}]}],W={tag:"\\title",snippet:'\\title "$1"$0',shortDescription:"Set the title of the song.",signatures:J,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n C4\n '},z={tag:"\\album",snippet:'\\album "$1"$0',shortDescription:"Set the album of the song.",signatures:J,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n \\album "alphaTab vol.1"\n C4\n '},q={tag:"\\artist",snippet:'\\artist "$1"$0',shortDescription:"Set the artist of the song.",signatures:J,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n \\artist "alphaTab"\n C4\n '},U={tag:"\\bracketExtendMode",snippet:"\\bracketExtendMode ${1:groupStaves}$0",shortDescription:"Set the mode for brackets and braces.",longDescription:"Set the mode for [brackets and braces](https://alphatab.net/docs/showcase/general#brackets-and-braces).",signatures:[{parameters:[{name:"mode",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,shortDescription:"The mode to use",...w("BracketExtendMode")}]}],examples:'\n \\bracketextendmode GroupSimilarInstruments\n \\track "Piano1"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\staff {score}\n \\clef f4 C3 D3 E3 F3\n \\track "Piano2"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\track "Flute 1"\n \\staff { score }\n \\instrument flute\n C4 D4 E4 F4\n \\track "Flute 2"\n \\staff { score }\n \\instrument flute\n \\clef f4 C3 D3 E3 F3\n \\track "Guitar 1"\n \\staff { score tabs }\n 0.3.4 2.3.4 5.3.4 7.3.4\n '},Z={tag:"\\copyright",snippet:'\\copyright "$1"$0',shortDescription:"Set the copyright owner of the song.",signatures:J,examples:'\n \\copyright "CoderLine"\n C4\n '},Q={tag:"\\copyright2",snippet:'\\copyright2 ("${1:All Rights Reserved - International Copyright Secured}" ${2:center})$0',shortDescription:"Sets the template and text align for the second copyright line.",longDescription:'Sets the template and text align for the second copyright line.\n \n There is no own "value" as it is typically used to just define a static text like "All rights reserved". The "template" can be used for defining the display.',signatures:V,examples:'\n \\copyright "CoderLine"\n \\copyright2 "All rights reserved"\n C4\n '},_={tag:"\\defaultSystemsLayout",snippet:"\\defaultSystemsLayout ${1:3}$0",shortDescription:"Set the default number of bars per system.",longDescription:"\n Defines the default number of bars to display per system when rendering multiple tracks.\n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net/docs/reference/settings/display/systemslayoutmode).\n ",signatures:[{parameters:[{name:"numberOfBars",shortDescription:"The number of bars the system should contain.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:"\n \\defaultSystemsLayout 2\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n "}},X={tag:"\\firstSystemTrackNameMode",snippet:"\\firstSystemTrackNameMode ${1:shortName}$0",shortDescription:"The text how to show as track names",longDescription:"\n Configures the text how to show as [track names](https://alphatab.net/docs/showcase/general#track-names) on the first system.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameMode")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},Y={tag:"\\firstSystemTrackNameOrientation",snippet:"\\firstSystemTrackNameOrientation ${1:horizontal}$0",shortDescription:"Set the orientation of the track names",longDescription:"\n Configures the orientation of the [track names](https://alphatab.net/docs/showcase/general#track-names) on the first system.\n ",signatures:[{parameters:[{name:"orientation",shortDescription:"The orientation to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameOrientation")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\firstsystemtracknameorientation horizontal\n \\othersystemstracknameorientation vertical\n\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n \\staff {score}\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},ee={tag:"\\hideDynamics",snippet:"\\hideDynamics",shortDescription:"Disables the display of dynamics.",signatures:[{parameters:[]}],examples:"\n \\hideDynamics\n C4 {dy FFF} D4\n E4 {dy PP} F4\n "},te={tag:"\\instructions",snippet:'\\instructions "$1"$0',shortDescription:"Sets additional textual instructions for the song (not displayed).",signatures:[{parameters:[{name:"value",shortDescription:"The value to set",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\instructions "Practice this piece until you get it perfect."\n C4\n '},se={tag:"\\multiBarRest",snippet:"\\multiBarRest",shortDescription:"Show multibar rests when rendering multiple tracks.",signatures:[{parameters:[]}],examples:'\n \\title "Multi Track"\n \\multiBarRest\n \\track "Piano 1" "pno1"\n \\staff {score}\n C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | C4\n \n \\track "Piano 2" "pno1"\n \\staff {score}\n C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | r |\n '},ne={tag:"\\multiTrackTrackNamePolicy",snippet:"\\multiTrackTrackNamePolicy ${1:firstSystem}$0",shortDescription:"Sets the track name visibility when rendering multiple tracks.",longDescription:"\n Configures on which systems to show the [track names](https://alphatab.net/docs/showcase/general#track-names) when multiple tracks are rendered.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNamePolicy")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},ie={tag:"\\music",snippet:'\\music "$1"$0',shortDescription:"Set the music author of the song.",signatures:J,examples:'\n \\music "CoderLine and Contributors"\n C4\n '},ae={tag:"\\notices",snippet:'\\notices "$1"$0',shortDescription:"Sets general notices for the song (not displayed).",signatures:[{parameters:[{name:"value",shortDescription:"The value to set",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\notices "I hope you appreciate this music sheet, it was a lot of effort to create!"\n C4\n '},re={tag:"\\otherSystemsTrackNameMode",snippet:"\\otherSystemsTrackNameMode ${1:shortName}$0",shortDescription:"Which track names to show for systems after the first one.",longDescription:"\n Configures the text how to show as [track names](https://alphatab.net/docs/showcase/general#track-names) on the second and subsequent systems.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameMode")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},oe={tag:"\\otherSystemsTrackNameOrientation",snippet:"\\otherSystemsTrackNameOrientation ${1:vertical}$0",shortDescription:"The orientation of track names to show for systems after the first one.",longDescription:"\n Configures the orientation of the [track names](https://alphatab.net/docs/showcase/general#track-names) on the second and subsequent systems.\n ",signatures:[{parameters:[{name:"orientation",shortDescription:"The orientation to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameOrientation")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\firstsystemtracknameorientation horizontal\n \\othersystemstracknameorientation vertical\n\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n \\staff {score}\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},pe={tag:"\\showDynamics",snippet:"\\showDynamics",shortDescription:"Enables the display of dynamics.",signatures:[{parameters:[]}],examples:"\n \\showDynamics\n C4 {dy FFF} D4\n E4 {dy PP} F4\n "},le={tag:"\\singleTrackTrackNamePolicy",snippet:"\\singleTrackTrackNamePolicy ${1:firstSystem}$0",shortDescription:"Sets the track name visibility when rendering single tracks.",longDescription:"\n Configures on which systems to show the [track names](https://alphatab.net/docs/showcase/general#track-names) when only a single track is rendered.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNamePolicy")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},ce={tag:"\\subtitle",snippet:'\\subtitle "$1"$0',shortDescription:"Set the subtitle of the song.",signatures:J,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n \\subtitle ("Subtitle" "[%SUBTITLE%]" left)\n C4\n '},he={tag:"\\systemsLayout",snippet:"\\systemsLayout (${1:3})$0",shortDescription:"Set the number of bars for every system.",longDescription:"\n Defines the number of bars to display per system when rendering multiple tracks.\n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net/docs/reference/settings/display/systemslayoutmode).\n ",signatures:[{parameters:[{name:"numberOfBars",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number,shortDescription:"Defines for every system (line) the number of bars it should contain"}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:"\n \\systemsLayout (2 3 2)\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n "}},de={tag:"\\tab",snippet:'\\tab "$1"$0',shortDescription:"Set the transcriber of the music sheet.",signatures:J,examples:'\n \\tab "Transcribed by me"\n C4\n '},me={tag:"\\useSystemSignSeparator",snippet:"\\useSystemSignSeparator",shortDescription:"Show the system separator when rendering multiple tracks",longDescription:"Configures whether a system sign separator should be added (in case multiple tracks are shown).",signatures:[{parameters:[]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:'\n \\useSystemSignSeparator\n \\defaultSystemsLayout 2\n \\track "T1"\n :1 C4 | C4 | C4\n \\track "T2"\n :1 C4 | C4 | C4\n '}},ue={tag:"\\words",snippet:'\\words "$1"$0',shortDescription:"Set the lyrics author of the song.",signatures:J,examples:'\n \\words "CoderLine"\n C4\n '},fe={tag:"\\wordsAndMusic",snippet:'\\wordsAndMusic ("${1:Words & Music by %MUSIC%}" ${2:left})$0',shortDescription:"Sets the template and text align for combined words and music authors.",signatures:V,examples:'\n \\words "CoderLine"\n \\music "CoderLine"\n \\wordsAndMusic ("Words & Music: %WORDS%")\n C4\n '},ge=["| Number | Name Long | Name Short |","|--------|-----------|------------|",...[["Ride (choke)",29],["Cymbal (hit)",30],["Snare (side stick)",31],["Snare (side stick) 2",33],["Snare (hit)",34],["Kick (hit)",35],["Kick (hit) 2",36],["Snare (side stick) 3",37],["Snare (hit) 2",38],["Hand Clap (hit)",39],["Snare (hit) 3",40],["Low Floor Tom (hit)",41],["Hi-Hat (closed)",42],["Very Low Tom (hit)",43],["Pedal Hi-Hat (hit)",44],["Low Tom (hit)",45],["Hi-Hat (open)",46],["Mid Tom (hit)",47],["High Tom (hit)",48],["Crash high (hit)",49],["High Floor Tom (hit)",50],["Ride (middle)",51],["China (hit)",52],["Ride (bell)",53],["Tambourine (hit)",54],["Splash (hit)",55],["Cowbell medium (hit)",56],["Crash medium (hit)",57],["Vibraslap (hit)",58],["Ride (edge)",59],["Hand (hit)",60],["Hand (hit)",61],["Conga high (mute)",62],["Conga high (hit)",63],["Conga low (hit)",64],["Timbale high (hit)",65],["Timbale low (hit)",66],["Agogo high (hit)",67],["Agogo tow (hit)",68],["Cabasa (hit)",69],["Left Maraca (hit)",70],["Whistle high (hit)",71],["Whistle low (hit)",72],["Guiro (hit)",73],["Guiro (scrap-return)",74],["Claves (hit)",75],["Woodblock high (hit)",76],["Woodblock low (hit)",77],["Cuica (mute)",78],["Cuica (open)",79],["Triangle (rnute)",80],["Triangle (hit)",81],["Shaker (hit)",82],["Tinkle Bell (hat)",83],["Jingle Bell (hit)",83],["Bell Tree (hit)",84],["Castanets (hit)",85],["Surdo (hit)",86],["Surdo (mute)",87],["Snare (rim shot)",91],["Hi-Hat (half)",92],["Ride (edge) 2",93],["Ride (choke) 2",94],["Splash (choke)",95],["China (choke)",96],["Crash high (choke)",97],["Crash medium (choke)",98],["Cowbell low (hit)",99],["Cowbell low (tip)",100],["Cowbell medium (tip)",101],["Cowbell high (hit)",102],["Cowbell high (tip)",103],["Hand (mute)",104],["Hand (slap)",105],["Hand (mute) 2",106],["Hand (slap) 2",107],["Conga low (slap)",108],["Conga low (mute)",109],["Conga high (slap)",110],["Tambourine (return)",111],["Tambourine (roll)",112],["Tambourine (hand)",113],["Grancassa (hit)",114],["Piatti (hat)",115],["Piatti (hand)",116],["Cabasa (return)",117],["Left Maraca (return)",118],["Right Maraca (hit)",119],["Right Maraca (return)",120],["Shaker (return)",122],["Bell Tee (return)",123],["Golpe (thumb)",124],["Golpe (finger)",125],["Ride (middle) 2",126],["Ride (bell) 2",127]].map(e=>`| \`${e[1]}\` | \`${e[0]}\` | \`${e[0].replace(/[^a-zA-Z0-9]/g,"")}\` |`)],ye={tag:"\\articulation",snippet:"\\articulation $1$0",shortDescription:"Define percussion articulations",longDescription:`\n Defines the articulations available to write percussion and drum tabs.\n\n Currently alphaTex does not defining completely custom articulations (note heads, staff line, technical symbols etc.).\n\n ${ge.map(e=>` ${e}`).join("\n")}\n `,signatures:[{description:"Registers all standard articulation names",parameters:[{name:"defaults",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,shortDescription:"",values:[{name:"defaults",shortDescription:"",snippet:"defaults"}]}]},{parameters:[{name:"name",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,shortDescription:"The string used in the note values"},{name:"value",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,shortDescription:"The numeric value of the built-in articulation"}]}],examples:'\n \\track "Drums"\n \\instrument percussion\n \\tempo 120\n \\clef neutral\n \\articulation defaults\n (KickHit RideBell).16 r KickHit KickHit (KickHit RideBell).16 r KickHit KickHit (KickHit RideBell).16 r KickHit KickHit (KickHit RideBell).16 r KickHit KickHit |\n (KickHit HiHatOpen) KickHit KickHit KickHit (KickHit HiHatOpen) KickHit KickHit KickHit (KickHit SnareHit HiHatOpen) KickHit KickHit.32 KickHit KickHit.16 (KickHit HiHatOpen) KickHit KickHit KickHit |\n (KickHit HiHatOpen).8{tu 3} KickHit{tu 3} KickHit{tu 3} (KickHit SnareHit HiHatOpen){tu 3} KickHit.16{tu 3} KickHit{tu 3} KickHit.8{tu 3} (KickHit HiHatOpen).8{tu 3} KickHit{tu 3} KickHit{tu 3} (KickHit SnareHit HiHatOpen).8{tu 3} KickHit{tu 3} KickHit{tu 3}\n '},De={tag:"\\capo",snippet:"\\capo {$1}$0",shortDescription:"Set the capo fret",longDescription:"Defines the fret on which a capo should be placed.",signatures:[{parameters:[{name:"fret",shortDescription:"The fret on which a capo is placed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\track "Guitar"\n \\staff{tabs} \n \\capo 5\n 1.2 3.2 0.1 1.1\n '};function be(...e){return new Map(e.map(e=>[e.property.toLowerCase(),e]))}function we(...e){return new Map(e.map(e=>[e.tag.toLowerCase(),e]))}const ve={tag:"\\chord",snippet:'\\chord ("{$1}" $2)$0',shortDescription:"Define a new chord",longDescription:"\n Defines a new chord for a chord diagram display defining how to play it.\n\n To avoid inconsistencies with tunings, chords should be defined after the tuning is set.\n\n To use the defined chord the `ch chordName` beat property has to be applied. The notes for the chord still have to be specified separately, the definition in this metadata is purely for the chord diagram.",signatures:[{parameters:[{name:"name",shortDescription:"The name of the chord",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0},{name:"strings",shortDescription:"For every string of the staff tuning, the fret to be played or `x` for strings not played.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:[e.importer.alphaTex.AlphaTexNodeType.Ident,e.importer.alphaTex.AlphaTexNodeType.String,e.importer.alphaTex.AlphaTexNodeType.Number]}]}],examples:'\n \\chord ("C" 0 1 0 2 3 x)\n \\ts 2 4\n (0.1 1.2 0.3 2.4 3.5){ch "C"} (0.1 1.2 0.3 2.4 3.5)\n ',properties:be({property:"firstFret",snippet:"firstFret $0",shortDescription:"Shifts the first fret shown in the diagram higher",signatures:[{parameters:[{name:"fret",shortDescription:"The index of the first fret",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:'\n \\chord ("D#" 6 8 8 8 6 x) {firstfret 6}\n (6.1 8.2 8.3 8.4 6.5){ch "D#"}\n '},{property:"barre",snippet:"barre $0",shortDescription:"Defines on which frets a barré should be played.",longDescription:"Defines on which frets a barré should be played (visually joins the dots to a bar).",signatures:[{parameters:[{name:"fret",shortDescription:"The frets on which a barré should be played",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:'\n \\chord ("D#" 6 8 8 8 6 x) {firstfret 6 barre 6}\n \\chord ("Special" 3 3 3 1 1 1) {showname false barre (1 3)}\n (6.1 8.2 8.3 8.4 6.5){ch "D#"} \n (3.1 3.2 3.3 1.4 1.5 1.6){ch "Special"}\n '},{property:"showDiagram",snippet:"showDiagram",shortDescription:"Set the chord diagram visibility.",signatures:[{parameters:[]},{parameters:[{name:"visibility",shortDescription:"The visibility of the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,values:[{name:"true",snippet:'"true"',shortDescription:"Show the diagram"},{name:"false",snippet:'"false"',shortDescription:"Hide the diagram"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"true",snippet:"true",shortDescription:"Show the diagram"},{name:"false",snippet:"false",shortDescription:"Hide the diagram"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,values:[{name:"1",snippet:"1",shortDescription:"Show the diagram"},{name:"0",snippet:"0",shortDescription:"Hide the diagram"}]}]}],examples:'\n \\chord ("E" 0 0 1 2 2 0) {showdiagram false}\n (0.1 0.2 1.3 2.4 2.5 0.6){ch "E"}\n '},{property:"showFingering",snippet:"showFingering",shortDescription:"Set the finger position visibility.",signatures:[{parameters:[]},{parameters:[{name:"visibility",shortDescription:"The visibility of the finger position",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,values:[{name:"true",snippet:'"true"',shortDescription:"Show the fingering"},{name:"false",snippet:'"false"',shortDescription:"Hide the fingering"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the finger position",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"true",snippet:"true",shortDescription:"Show the fingering"},{name:"false",snippet:"false",shortDescription:"Hide the fingering"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the finger position",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,values:[{name:"1",snippet:"1",shortDescription:"Show the fingering"},{name:"0",snippet:"0",shortDescription:"Hide the fingering"}]}]}],examples:'\n \\chord ("E" 0 0 1 2 2 0) {showfingers false}\n (0.1 0.2 1.3 2.4 2.5 0.6){ch "E"}\n '},{property:"showName",snippet:"showName",shortDescription:"Set the chord name visibility.",signatures:[{parameters:[]},{parameters:[{name:"visibility",shortDescription:"The visibility of the chord name in the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,values:[{name:"true",snippet:'"true"',shortDescription:"Show the chord name"},{name:"false",snippet:'"false"',shortDescription:"Hide the chord name"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the chord name in the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"true",snippet:"true",shortDescription:"Show the chord name"},{name:"false",snippet:"false",shortDescription:"Hide the chord name"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the chord name in the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,values:[{name:"1",snippet:"1",shortDescription:"Show the chord name"},{name:"0",snippet:"0",shortDescription:"Hide the chord name"}]}]}],examples:'\n // Hide name\n \\chord ("Special" 3 3 3 1 1 1) {showname false}\n .\n (3.1 3.2 3.3 1.4 1.5 1.6){ch "Special"}\n '})},Te={tag:"\\displayTranspose",snippet:"\\displayTranspose {$1}$0",shortDescription:"Set the transpose for the standard notation display.",longDescription:"\n Defines the number of semitones by which the standard notation should be transposed.\n\n This only affects the display of the notes, not their audio.\n\n It is typically used in situations like for guitars where the standard notation is displayed 1 octave lower to fit better into the standard staff.\n\n It is a common practice to show a standard clef on guitar notes even though they are transposed by 1 octave to better fit into the standard staff lines.\n ",signatures:[{parameters:[{name:"semitones",shortDescription:"The number of semitones by which the notes should be transposed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track \\staff \\instrument piano\n \\displayTranspose -12\n C4.4 D4 E4 F4 | r.1\n "},ke={tag:"\\lyrics",snippet:'\\lyrics "{$1}"$0',shortDescription:"Set the lyrics shown for the current staff.",longDescription:'\n Define the lyrics shown on the beats of the staff.\n\n The lyrics system of alphaTab is borrowed from Guitar Pro. For every track multiple "lines" of lyrics can be defined which can either start at the beginning or at a later bar. The syllables of the provided lyrics are spread automatically across the beats of the track. Syllables are separated with spaces. If multiple words/syllables should stay on the same beat the space can be replaced with a `+`. Comments which should not be displayed can be put `[into brackets]`.\n ',signatures:[{parameters:[{name:"lyrics",shortDescription:"The lyrics text to apply to the beats",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"startBar",shortDescription:"The first bar on which the notes should be applied",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"lyrics",shortDescription:"The lyrics text to apply to the beats",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:['\n \\title "With Lyrics"\n \\instrument piano\n \\lyrics "Do Re Mi Fa So La Ti"\n C4 D4 E4 F4 | G4 A4 B4 r\n ','\n \\title "Combine Syllables (and empty beats)"\n \\instrument piano\n \\lyrics "Do+Do Mi+Mi"\n C4 C4 E4 E4\n ','\n \\title "Start Later"\n \\instrument piano\n \\lyrics 2 "Do Re Mi Fa So La Ti"\n r r r r | r r r r |\n C4 D4 E4 F4 | G4 A4 B4 r\n ','\n \\title "Comment"\n \\subtitle "Useful when loading lyrics from a different source"\n \\instrument piano\n \\lyrics "[This is a comment]Do Re Mi Fa"\n C4 D4 E4 F4 \n ']},xe={tag:"\\transpose",snippet:"\\transpose $1$0",shortDescription:"Set the transpose for the standard notation.",longDescription:"\n Defines the number of semitones by which the standard notation should be transposed.\n\n This affects the display and audio.\n ",signatures:[{parameters:[{name:"semitones",shortDescription:"The number of semitones by which the notes should be transposed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track \\staff \\instrument piano\n \\transpose -12\n C4.4 D4 E4 F4 | r.1\n "},Se={tag:"\\tuning",snippet:"\\tuning {$1}$0",shortDescription:"Set the string tuning for the staff.",longDescription:"Defines the number of strings and their tuning for stringed (and fretted) instruments.",signatures:[{parameters:[{name:"mode",shortDescription:"A built-in standard mode for tunings",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,values:[{name:"piano",snippet:"piano",shortDescription:"Indicates that this staff is NOT stringed, but a piano with pitched notes."},{name:"none",snippet:"none",shortDescription:"Indicates that this staff is NOT stringed and has no tuning and uses pitched notes."},{name:"voice",snippet:"voice",shortDescription:"Indicates that this staff is NOT stringed, but a vocal voice with pitched notes."}]}]},{parameters:[{name:"strings",shortDescription:"The tuning values as pitched notes",longDescription:"The tuning values as [pitched notes](https://alphatab.net/docs/alphatex/document-structure#pitched-notes)",type:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis}]}],examples:'\n \\track "Track 1"\n \\staff {tabs}\n \\tuning (A1 D2 A2 D3 G3 B3 E4) { hide label "Special Guitar Tuning" }\n 4.1 3.1 2.1 1.1\n \\track "Track 2"\n \\tuning piano\n C4 D4 E4 F4\n ',properties:be({property:"hide",snippet:"hide",shortDescription:"Hides the tuning from being displayed above the first staff.",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {tabs}\n \\tuning (E4 B3 G3 D3 A2 D2)\n 4.1 3.1 2.1 1.1 \n \\track\n \\staff {tabs}\n \\tuning (F2 C2 G1 D1) { hide}\n 4.1 3.1 2.1 1.1\n "},{property:"label",snippet:'label "$1"$0',shortDescription:"Defines the textual label for the tuning.",signatures:[{parameters:[{name:"text",shortDescription:"The label to set.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String}]}],examples:'\n \\track\n \\staff {tabs}\n \\tuning (E4 B3 G3 D3 A2 D2) { label "Dropped D Tuning" }\n 4.1 3.1 2.1 1.1\n '})},Ce={tag:"\\staff",snippet:"\\staff {$1}$0",shortDescription:"Start a new staff",longDescription:"Marks the start of a new staff.\n \n The staff with the largest number of bars defines how long the overall song is. There is no need to manually ensure that all staves have the correct number of bars. AlphaTab will create missing empty bars automatically.\n \n If no properties describing the visible notation are provided, the default is `score tabs`.\n ",signatures:[{parameters:[]}],examples:'\n \\track "Piano with Grand Staff" "pno."\n \\staff{score} \\tuning piano \\instrument acousticgrandpiano\n c4 d4 e4 f4 |\n \\staff{score} \\tuning piano \\clef F4\n c2 c2 c2 c2 |\n \\track "Guitar"\n \\staff{tabs slash} \\capo 5\n 1.2 3.2 0.1 1.1\n ',properties:be({property:"score",snippet:"score $0",shortDescription:"Enable the display of standard notation.",signatures:[{parameters:[{name:"lineCount",shortDescription:"The number of staff lines",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,type:e.importer.alphaTex.AlphaTexNodeType.Number,defaultValue:5}]}],examples:"\n \\track\n \\staff {score 3}\n D4 D4 D4 D4\n \\staff {score}\n C4 C4 C4 C4\n "},{property:"tabs",snippet:"tabs $0",shortDescription:"Enable the display of guitar tablature.",longDescription:"\n Enable the display of guitar tablature.\n\n Guitar tabs are only shown if the contained notes are stringed/fretted notes.\n ",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {tabs}\n 3.3 4.3 5.3 5.5\n "},{property:"slash",snippet:"slash $0",shortDescription:"Enable the display of slash notation.",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {tabs slash}\n 3.3 4.3 5.3 5.5\n "},{property:"numbered",snippet:"numbered $0",shortDescription:"Enable the display of numbered notation (Jianpu).",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {score numbered}\n C4 D4 E4 F4\n "})},Ae={property:"instrument",snippet:'instrument "$1"$0',shortDescription:"Instrument Change",longDescription:"Adds a instrument change to the beat.",signatures:[{description:"Set the midi instrument as midi program number",parameters:[{name:"program",shortDescription:"MIDI program number (0-127)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]},{description:"Set the midi instrument as midi program name",parameters:[{name:"programName",shortDescription:"MIDI program name",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,valuesOnlyForCompletion:!0,values:["Acoustic Grand Piano","Bright Grand Piano","Electric Grand Piano","Honky tonk Piano","Electric Piano 1","Electric Piano 2","Harpsichord","Clavinet","Celesta","Glockenspiel","Musicbox","Vibraphone","Marimba","Xylophone","Tubularbells","Dulcimer","Drawbar Organ","Percussive Organ","Rock Organ","Church Organ","Reed Organ","Accordion","Harmonica","Tango Accordion","Acoustic Guitar Nylon","Acoustic Guitar Steel","Electric Guitar Jazz","Electric Guitar Clean","Electric Guitar Muted","Overdriven Guitar","Distortion Guitar","Guitar Harmonics","Acoustic Bass","Electric Bass Finger","Electric Bass Pick","Fretless Bass","Slap Bass 1","Slap Bass 2","Synth Bass 1","Synth Bass 2","Violin","Viola","Cello","Contrabass","Tremolo Strings","Pizzicato Strings","Orchestral Harp","Timpani","String Ensemble 1","String Ensemble 2","Synth Strings 1","Synth Strings 2","Choir Aahs","Voice Oohs","Synth Voice","Orchestra Hit","Trumpet","Trombone","Tuba","Muted Trumpet","French Horn","Brass Section","Synth Brass 1","Synth Brass 2","Soprano Sax","Alto Sax","Tenor Sax","Baritone Sax","Oboe","English Horn","Bassoon","Clarinet","Piccolo","Flute","Recorder","Pan Flute","Blown bottle","Shakuhachi","Whistle","Ocarina","Lead 1 Square","Lead 2 Sawtooth","Lead 3 Calliope","Lead 4 Chiff","Lead 5 Charang","Lead 6 Voice","Lead 7 Fifths","Lead 8 Bass and Lead","Pad 1 newage","Pad 2 warm","Pad 3 polysynth","Pad 4 choir","Pad 5 bowed","Pad 6 metallic","Pad 7 halo","Pad 8 sweep","Fx 1 rain","Fx 2 soundtrack","Fx 3 crystal","Fx 4 atmosphere","Fx 5 brightness","Fx 6 goblins","Fx 7 echoes","Fx 8 scifi","Sitar","Banjo","Shamisen","Koto","Kalimba","Bag pipe","Fiddle","Shanai","Tinkle Bell","Agogo","Steel Drums","Woodblock","Taiko Drum","Melodic Tom","Synth Drum","Reverse Cymbal","Guitar Fret Noise","Breath Noise","Seashore","Bird Tweet","Telephone Ring","Helicopter","Applause","Gunshot"].map(e=>({name:e,snippet:JSON.stringify(e),shortDescription:""}))}]},{description:"Set the instrument to percussion",parameters:[{name:"percussion",shortDescription:"Percussion",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"percussion",snippet:"percussion",shortDescription:""}]}]}],examples:"\n 3.3.4{ ot 15ma } 3.3.4{ ot 8vb }\n "},Me={tag:"\\track",snippet:'\\track "$1"$0',shortDescription:"Start a new track",remarks:"The displayed name depends on the configured [Track Name Policy](https://alphatab.net/docs/alphatex/score-metadata#singletracktracknamepolicy-and-multitracktracknamepolicy). If the short name is not specified, the first 10 characters of the long name are used as short name.",signatures:[{parameters:[{name:"name",shortDescription:"The full name of the track",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"",type:e.importer.alphaTex.AlphaTexNodeType.String},{name:"shortName",shortDescription:"The short name of the track",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"`/*computed from name*/`",type:e.importer.alphaTex.AlphaTexNodeType.String}]}],examples:'\n \\track "First Track" "frst" \n C4 D4 E4 F4\n \\track\n C5 D5 E5 F5\n ',properties:be({property:"color",snippet:"color $0",shortDescription:"The color for use in a custom UI",longDescription:"The data model holds information about the color of the track which might be used by user interfaces to visually differenciate them. This data mainly originates from the Guitar Pro file format where colors are used to differenciate the tracks in the track picker and some other visualizations. It does not have an impact on the color of the music notation but can be used in a custom UI.",signatures:[{parameters:[{name:"colorCode",shortDescription:"The color as CSS color",longDescription:"The colorCode in [any supported color format](https://alphatab.net/docs/reference/settings/display/resources#colors)",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\track { color "#FF0000" }\n 1.1 2.1 3.1 4.1\n '},{property:"systemsLayout",snippet:"systemsLayout ($1)$0",shortDescription:"Set the number of bars to display per system.",longDescription:"\n Defines the number of bars to display per system. \n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. \n The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net/docs/reference/settings/display/systemslayoutmode).\n ",signatures:[{parameters:[{name:"numberOfBars",shortDescription:"The number of bars to display per system",longDescription:"Defines for every system (line) the number of bars it should contain",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:'\n \\title "Single Track"\n \\track { systemsLayout (2 3 2) }\n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n '}},{property:"defaultSystemsLayout",snippet:"defaultSystemsLayout $0",shortDescription:"Set the default number of bars to display per system",longDescription:"\n Defines the default number of bars to display per system. \n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. \n The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net//docs/reference/settings/display/systemslayoutmode).",signatures:[{parameters:[{name:"numberOfBars",shortDescription:"Defines for every system (line) the number of bars it should contain",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:'\n \\title "Single Track"\n \\track { defaultSystemsLayout 2 }\n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n '}},{property:"solo",snippet:"solo",shortDescription:"Set the track to be played solo.",signatures:[{parameters:[]}],examples:"\n \\track { solo }\n 1.1 2.1 3.1 4.1\n \\track \n 10.1 11.1 12.1 13.1\n "},{property:"mute",snippet:"mute",shortDescription:"Set the track to be muted.",signatures:[{parameters:[]}],examples:"\n \\track \n 1.1 2.1 3.1 4.1\n \\track { mute }\n 10.1 11.1 12.1 13.1\n "},{property:"volume",snippet:"volume $0",shortDescription:"Set the track volume.",signatures:[{parameters:[{name:"value",shortDescription:"The volume to set (0-16)",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track { volume 0 } \n 1.1 2.1 3.1 4.1\n \\track { volume 16 }\n 10.1 11.1 12.1 13.1\n "},{property:"balance",snippet:"balance $0",shortDescription:"Set the track balance.",signatures:[{parameters:[{name:"value",shortDescription:"The balance to set (0-16; 8 is centered)",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track { volume 0 } \n 1.1 2.1 3.1 4.1\n \\track { volume 16 }\n 10.1 11.1 12.1 13.1\n "},{property:"instrument",snippet:'instrument "$1"$0',shortDescription:"Set the midi instrument for this track.",signatures:Ae.signatures,examples:'\n \\track { instrument 0 } \n C4 C5 r r\n \\track { instrument "Acoustic Steel Guitar" }\n \\tuning (E4 B3 G3 D3 A2 E2)\n r r 12.1 13.1\n '},{property:"bank",snippet:"bank $1$0",shortDescription:"Set the MIDI bank for this track.",longDescription:"\n Set the MIDI bank to select when playing this track.\n\n The loaded soundfont needs to have this bank defined, otherwise there might be no audio.",signatures:[{parameters:[{name:"value",shortDescription:"The midi bank to set",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\track { instrument 25 bank 2 }\n "},{property:"multiBarRest",snippet:"multiBarRest$0",shortDescription:"Display multibar rests",longDescription:"Enables the display of multibar rests if this track is shown as standalone.",signatures:[{parameters:[]}],examples:["\n \\track { multiBarRest } \n C4*4 | r.1 | r.1 | r.1 | C4 * 4\n ","\n \\track\n C4*4 | r.1 | r.1 | r.1 | C4 * 4\n "]})},$e={tag:"\\voice",snippet:"\\voice $0",shortDescription:"Start a new voice",longDescription:"Marks the start of a new voice.\n\n Unlike the structure in the data model, alphaTex expects you to define all bars of a voice, then all the bars of the next voice.\n\n It structure is: `\\voice /* Voice 1 Bar 1*/ | /* Voice 1 Bar 2*/ \voice /* Voice 2 Bar 1*/ | /* Voice21 Bar 2*/` Once a new voice starts, you again can define the notes starting from the first bar. alphaTab will try to consolidate inconsistencies in the number of bars across voices.\n ",signatures:[{parameters:[]}],examples:'\n \\track "Piano"\n \\staff{score} \\tuning piano \\instrument acousticgrandpiano\n \\voice \n c4 d4 e4 f4 | c4 d4 e4 f4\n \\voice \n c3 d3 e3 f3 | c3 d3 e3 f3\n \n \\track "Piano2"\n \\staff{score} \\tuning piano \\instrument acousticgrandpiano\n \\voice \n c4 d4 e4 f4 | c4 d4 e4 f4\n \\voice \n c3 d3 e3 f3\n '},Fe={property:"ad",snippet:"ad",shortDescription:"Downwards Arpeggio",longDescription:"Adds an arpeggio effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n (0.1 0.2 0.3 2.4 2.5 0.6){ad} (0.1 0.2 0.3 2.4 2.5 0.6){au} |\n "},He={property:"au",snippet:"au$0",shortDescription:"Upwards Arpeggio",longDescription:"Adds an arpeggio effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n (0.1 0.2 0.3 2.4 2.5 0.6){ad} (0.1 0.2 0.3 2.4 2.5 0.6){au} |\n "},Pe={property:"balance",snippet:"balance $1$0",shortDescription:"Balance Change",longDescription:"\n Add a balance (pan) change to the beat.\n\n The change affects all beats after this one.\n ",signatures:[{parameters:[{name:"value",shortDescription:"The new balance",longDescription:"The new balance where 0 is left, 16 is right, and 8 is centered.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n C4 {balance 0} D4 E4 {balance 16} F4\n "},Ee={property:"bank",snippet:"bank $1$0",shortDescription:"MIDI Bank Change",longDescription:"Adds a instrument bank change to the beat.",signatures:[{parameters:[{name:"value",shortDescription:"The new MIDI bank",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n C4 C4 C4 {instrument 25 bank 2} C4\n "},Ne={property:"barre",snippet:"barre $1$0",shortDescription:"Barré",longDescription:"Add a barré chord notation to the beat.",signatures:[{parameters:[{name:"fret",shortDescription:"The numeric fret for the barre chord",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"mode",shortDescription:"The barre mode",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"Full",...w("BarreShape")}]}],examples:"\n 1.1 {barre 24} 2.1 {barre 24} 3.1 {barre 24} 4.1 |\n 1.1 {barre 4 half} 2.1 {barre 4 half} 3.1 {barre 4 half} 4.1 {barre 4 half} |\n "},Be={property:"bd",snippet:"bd$0",shortDescription:"Downwards brush-stroke",longDescription:"Adds a brush stroke effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :2 (0.1 0.2 0.3 2.4 2.5 0.6){bd} (0.1 0.2 0.3 2.4 2.5 0.6){bu} |\n (0.1 0.2 0.3 2.4 2.5 0.6){bd 360} (0.1 0.2 0.3 2.4 2.5 0.6){bu 60}\n "},Le={property:"beam",snippet:"beam $1$0",shortDescription:"Beams and Stems",longDescription:"\n Changes the beaming and stem direction for the beat.\n Can be specified multiple times.\n ",signatures:[{parameters:[{name:"type",shortDescription:"The mode to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,values:[{name:"invert",snippet:"invert",shortDescription:"Inverts the default stem direction."},{name:"up",snippet:"up",shortDescription:"Forces the stem to point upwards."},{name:"down",snippet:"down",shortDescription:"Forces the stem to point downwards."},{name:"auto",snippet:"auto",shortDescription:"Sets the beaming mode to automatic."},{name:"split",snippet:"split",shortDescription:"Forces a split of the beam to the next beat (if there would be any)."},{name:"merge",snippet:"merge",shortDescription:"Forces a merge of the beam to the next beat (even if there would be none)."},{name:"splitsecondary",snippet:"splitsecondary",shortDescription:"Forces a split of the last bar connecting two beats (if there is any)."}]}]}],examples:"\n :8 3.3{ beam invert } 3.3 |\n 3.1{ beam up } 3.1 |\n 3.6{ beam down } 3.6 |\n 3.3{ beam auto } 3.3 |\n 3.3{ beam split } 3.3 |\n 3.3 3.3 { beam merge } 3.3 3.3 |\n 3.3.16 {beam splitsecondary} 3.3\n "},Oe={property:"bu",snippet:"bu$0",shortDescription:"Upwards brush-stroke",longDescription:"Adds a brush stroke effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :2 (0.1 0.2 0.3 2.4 2.5 0.6){bd} (0.1 0.2 0.3 2.4 2.5 0.6){bu} |\n (0.1 0.2 0.3 2.4 2.5 0.6){bd 360} (0.1 0.2 0.3 2.4 2.5 0.6){bu 60}\n "},Ie={property:"ch",snippet:'ch "$1"$0',shortDescription:"Chord",longDescription:"\n Adds a chord annotation to the beat.\n\n If the staff has a definition for this chord it will be shown in the chord diagram list to indicate its usage. The beat still has to define the notes separately.\n ",signatures:[{parameters:[{name:"chordName",shortDescription:"The name of the chord",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n 1.1.8{dy ppp} 1.1{dy pp} 1.1{dy p} 1.1{dy mp} 1.1{dy mf} 1.1{dy f} 1.1{dy ff} 1.1{dy fff}\n "},je={property:"cre",snippet:"cre",shortDescription:"Crescendo",longDescription:"Adds a crescendo effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 { cre } -.3 { cre }\n "},Ge={property:"d",snippet:"d",shortDescription:"Augmentation Dot",longDescription:"Marks the beat with a single augmentation dot.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { d }\n "},Re={property:"dd",snippet:"dd",shortDescription:"Double Augmentation Dot",longDescription:"Marks the beat with a double augmentation dot.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { dd }\n "},Ke={property:"dec",snippet:"dec",shortDescription:"Decrescendo",longDescription:"Adds a decrescendo (diminuendo) effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 { dec } -.3 { dec }\n "},Je={property:"ds",snippet:"ds",shortDescription:"Dead-Slap",longDescription:"\n Marks the beat to be a dead-slap beat.\n\n As no notes should be on such a beat, simply use () to indicate the empty beat which is not a rest.\n ",signatures:[{parameters:[]}],examples:"\n ().4 {ds} ().4 {ds}\n "},Ve={property:"dy",snippet:"dy $1$0",shortDescription:"Dynamics",longDescription:"Defines the play dynamics for this beat.",signatures:[{parameters:[{name:"dynamic",shortDescription:"The dynamic value to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("DynamicValue")}]}],examples:'\n \\chord ("C" 0 1 0 2 3 x)\n \\ts 2 4\n (0.1 1.2 0.3 2.4 3.5){ch "C"} (0.1 1.2 0.3 2.4 3.5) |\n (0.1 2.2 2.3 2.4 0.5){ch "A"}\n '},We={property:"f",snippet:"f",shortDescription:"Fade-In",longDescription:"Adds a fade-in effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).2 { f }\n "},ze={property:"fermata",snippet:"fermata $1$0",shortDescription:"Fermata",longDescription:"Adds a fermata to the beat.",signatures:[{parameters:[{name:"type",shortDescription:"The fermata type",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("FermataType")},{name:"length",shortDescription:"The fermata length",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat,defaultValue:0}]}],examples:"\n G4 G4 G4 { fermata medium 4 }\n "},qe={property:"fo",snippet:"fo",shortDescription:"Fade-Out",longDescription:"Adds a fade-out effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { fo }\n "},Ue={property:"glpf",snippet:"glpf",shortDescription:"Golpe (Finger)",longDescription:"Adds a golpe finger-tap effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3{glpf} 3.3{glpt}\n "},Ze={property:"glpt",snippet:"glpt",shortDescription:"Golpe (Thumb)",longDescription:"Adds a golpe thumb-tap effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3{glpf} 3.3{glpt}\n "},Qe={property:"gr",snippet:"gr $1$0",shortDescription:"Grace-Beat",longDescription:"\n Marks the beat as a grace beat holding grace notes.\n ",signatures:[{parameters:[{name:"type",shortDescription:"The type of grace notes",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"bb",...w("GraceType")}]}],examples:"\n C5\n D5 {gr} C5\n C5\n D5 {gr} C5\n |\n C5\n D5 {gr ob} C5\n C5\n D5 {gr ob} C5\n "},_e={property:"legatoOrigin",snippet:"legatoOrigin",shortDescription:"Legato",longDescription:"Adds a legato from this beat to the next one.",signatures:[{parameters:[]}],examples:"\n 3.3.4{ legatoOrigin } 10.3.4\n "},Xe={property:"lyrics",snippet:'lyrics "$1"$0',shortDescription:"Lyrics",longDescription:"\n Adds a lyric text to the beat.\n\n This is an alternative way of applying the exact lyrics to beats instead of using the `\\lyrics` metadata where a special syntax is used to spread the text across beats.\n ",signatures:[{parameters:[{name:"text",shortDescription:"The lyrics to show",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"line",shortDescription:"The line number (e.g. for multiple verses)",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"text",shortDescription:"The lyrics to show",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n C4 {lyrics "Do"} \n D4 {lyrics "Re"} \n E4 {lyrics "Mi"} \n F4 {lyrics "Fa"} |\n G4 {lyrics 0 "So" lyrics 1 "G"}\n A4 {lyrics 0 "La" lyrics 1 "A"}\n B4 {lyrics 0 "Ti" lyrics 1 "B"}\n r\n '},Ye={property:"ot",snippet:"ot $1$0",shortDescription:"Ottava",longDescription:"Adds a octave change (ottava) to the beat.",signatures:[{parameters:[{name:"value",shortDescription:"The octave shift to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Ottavia")}]}],examples:"\n 3.3.4{ ot 15ma } 3.3.4{ ot 8vb }\n "},et={property:"p",snippet:"p",shortDescription:"Pop",longDescription:"Adds a bass pop annotation to the beat.",signatures:[{parameters:[]}],examples:'\n \\track {instrument "Electric Bass Finger"}\n (3 4) 3.4.8 {s} (5.1 5.2).4 {p} 3.4.8 {s} (5.1 5.2).4 {p}\n '},tt={property:"rasg",snippet:"rags $1$0",shortDescription:"Rasgueado",longDescription:"Add a rasgueado play pattern to the beat.",signatures:[{parameters:[{name:"pattern",shortDescription:"The pattern to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Rasgueado")}]}],examples:"\n (1.1 3.2 2.3 0.4) * 4 {rasg amii}\n "},st={property:"s",snippet:"s",shortDescription:"Slap",longDescription:"Adds a bass slap annotation to the beat.",signatures:[{parameters:[]}],examples:'\n \\track {instrument "Electric Bass Finger"}\n (3 4) 3.4.8 {s} (5.1 5.2).4 {p} 3.4.8 {s} (5.1 5.2).4 {p}\n '},nt={property:"sd",snippet:"sd",shortDescription:"Pick-Stroke Down",longDescription:"Adds an downwards pick-stroke annotation to the beat.",signatures:[{parameters:[]}],examples:"\n 0.1 { sd }\n "},it={property:"slashed",snippet:"slashed",shortDescription:"Slash Notation",longDescription:"Marks the beat to be displayed with slash notation.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).2 (0.1 2.2 2.3 2.4 0.5).2 { slashed }\n "},at={property:"spd",snippet:"spd",shortDescription:"Sustain pedal down",longDescription:"Add a sustain pedal down-press to the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},rt={property:"spe",snippet:"spe",shortDescription:"Sustain pedal up (end)",longDescription:"Add a sustain pedal up (release) to the end of the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},ot={property:"sph",snippet:"sph",shortDescription:"Sustain pedal hold",longDescription:"Add a sustain pedal hold to the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},pt={property:"spu",snippet:"spu",shortDescription:"Sustain pedal up",longDescription:"Add a sustain pedal up (release) to the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},lt={property:"su",snippet:"su",shortDescription:"Pick-Stroke Up",longDescription:"Adds an upwards pick-stroke annotation to the beat.",signatures:[{parameters:[]}],examples:"\n 0.1 { su }\n "},ct={name:"type",shortDescription:"The type of whammy (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("WhammyType")},ht={name:"style",shortDescription:"The style of the whammy play style.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},dt={name:"values",shortDescription:"The values of the whammy in quarter-tones relative to the original note, decimals supported",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},mt={property:"tb",snippet:"tb ($1)$0",shortDescription:"Tremolo Bar (Whammy)",longDescription:"\n Adds a whammy bar (aka. tremolo bar) effect to the beat.\n\n * The `tb` variant automatically spreads the values across the duration of the beat.\n * The `tbe` (exact) variant allows specifying exactly at which offset a value is placed.\n \n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[dt]},{parameters:[ct,dt]},{parameters:[ht,dt]},{parameters:[ct,ht,dt]}],examples:"\n 3.3.1{tb (0 4 0 8)} | r |\n 3.3.1{tb (0 -4 0 -8)} | r |\n 3.3.1{tbe (0 0 5 4 30 8 60 0)}\n "},ut={name:"type",shortDescription:"The type of whammy (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("WhammyType")},ft={name:"style",shortDescription:"The style of the whammy.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},gt={name:"valuesAndOffsets",shortDescription:"The offset and then the value of the whammy",longDescription:"The offset at which the value becomes valid in range of 0-60 and \n The value of the whammy in quarter-tones relative to the original note, decimals supported.\n The offset and value are actually two parameters: \n `3.3.1{tbe (0 0 5 4 30 8 60 0)}`\n ",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},yt={property:"tbe",snippet:"tbe ($1)$0",shortDescription:"Tremolo Bar (Whammy) Exact",longDescription:"\n Adds a whammy bar (aka. tremolo bar) effect to the beat.\n\n * The `tb` variant automatically spreads the values across the duration of the beat.\n * The `tbe` (exact) variant allows specifying exactly at which offset a value is placed.\n \n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[gt]},{parameters:[ut,gt]},{parameters:[ft,gt]},{parameters:[ut,ft,gt]}],examples:"\n 3.3.1{tb (0 4 0 8)} | r |\n 3.3.1{tb (0 -4 0 -8)} | r |\n 3.3.1{tbe (0 0 5 4 30 8 60 0)}\n "},Dt={name:"bpm",shortDescription:"The new tempo in BPM",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},bt={name:"label",shortDescription:"A textual label for the tempo",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,defaultValue:'""'},wt={name:"hide",shortDescription:"If specified, the tempo change is not shown in the music sheet",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,values:[{name:"hide",shortDescription:"If specified, the tempo change is not shown in the music sheet",snippet:"hide"}]},vt={property:"tempo",snippet:"tempo $1$0",shortDescription:"Tempo Change",longDescription:"Add a tempo change to the beat.",signatures:[{parameters:[Dt,wt]},{parameters:[Dt,bt,wt]}],examples:"\n C4 {tempo 120} D4 E4 {tempo 140} F4 | C4.8 {tempo 80} C4 D4 {tempo 100} D4 E4 {tempo 120} E4 F4 {tempo 240} F4\n "},Tt={property:"timer",snippet:"timer",shortDescription:"Show timestamp",longDescription:"\n Adds a timestamp marker to the beat.\n\n Timers are showing the exact timestamp when a beat is played the first time (respecting aspects like repeats).\n ",signatures:[{parameters:[]}],examples:"\n \\tempo 120\n 3.3.4 { timer } 3.3.4*3 |\n \\ro 3.3.4 { timer } 3.3.4*3 |\n 3.3.4 { timer } 3.3.4*3 |\n \\jump fine 3.3.4 { timer } 3.3.4*3 |\n \\ae (1) 3.3.4 { timer } 3.3.4*3 |\n \\ae (2 3) \\rc 3 3.3.4 { timer } 3.3.4*3 |\n 3.3.4 { timer } 3.3.4*3 |\n \\jump DaCapoAlFine 3.3.4 { timer } 3.3.4*3 |\n 3.3.4 { timer } 3.3.4*3\n "},kt={property:"tp",snippet:"tp $1$0",shortDescription:"Tremolo Picking",longDescription:"Add a tremolo picking to the beat.",signatures:[{parameters:[{name:"speed",shortDescription:"The tremolo picking speed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,values:[{name:"8",snippet:"8",shortDescription:"8th Notes"},{name:"16",snippet:"16",shortDescription:"16th Notes"},{name:"32",snippet:"32",shortDescription:"32nd Notes"}]}]}],examples:"\n 3.3{tp 8} 3.3{tp 16} 3.3{tp 32}\n "},xt={property:"tt",snippet:"tt",shortDescription:"Tapping",longDescription:"Adds a guitar or bass tapping annotation to the beat.",signatures:[{parameters:[]}],examples:'\n \\track {instrument "Electric Bass Finger"}\n :8 {tu 3} \n 18.1 {tt h} 10.1 {h} 14.1\n 18.1 {tt h} 10.1 {h} 14.1\n 18.1 {tt h} 10.1 {h} 14.1\n 18.1 {tt h} 10.1 {h} 14.1\n '},St={property:"tu",snippet:"tu $1$0",shortDescription:"Tuplet",longDescription:"\n Adds a tuplet to the beat duration.\n\n There are some built-in simple tuplet variants or you can specify the exact division.\n ",signatures:[{parameters:[{name:"simple",shortDescription:"The simple tuplet",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,values:[{name:"3",snippet:"3",shortDescription:"3:2 Tuplet"},{name:"5",snippet:"5",shortDescription:"5:4 Tuplet"},{name:"6",snippet:"6",shortDescription:"6:4 Tuplet"},{name:"7",snippet:"7",shortDescription:"7:4 Tuplet"},{name:"9",snippet:"9",shortDescription:"9:8 Tuplet"},{name:"10",snippet:"10",shortDescription:"10:8 Tuplet"},{name:"12",snippet:"12",shortDescription:"12:8 Tuplet"}]}]},{parameters:[{name:"numerator",shortDescription:"The tuplet numerator",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"denominator",shortDescription:"The tuplet denominator",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n C4 {tu 3} * 3 |\n C4 {tu 5} * 5 |\n C4 {tu 5 2} * 5\n "},Ct={property:"txt",snippet:'txt "$1"$0',shortDescription:"Text",longDescription:"Adds a text annotation to the beat.",signatures:[{parameters:[{name:"text",shortDescription:"The text to show above the beat",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n C4 {txt "This is a C4 Note"}\n '},At={property:"v",snippet:"v",shortDescription:"Slight Vibrato",longDescription:"Adds a slight vibrato effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { v }\n "},Mt={property:"volume",snippet:"volume $1$0",shortDescription:"Volume Change",longDescription:"\n Add a volume change to the beat.\n\n The change affects all beats after this one.\n ",signatures:[{parameters:[{name:"value",shortDescription:"The new volume",longDescription:"The absolute volume of the track within the song in the range of 0-16",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n C4 {volume 8} D4 E4 {tempo 16} F4\n "},$t={property:"vs",snippet:"vs",shortDescription:"Volume-Swell",longDescription:"Adds a volume-swell effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { vs }\n "},Ft={property:"vw",snippet:"vw",shortDescription:"Wide Vibrato",longDescription:"Adds a wide vibrato effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { vw }\n "},Ht={property:"wahc",snippet:"wahc",shortDescription:"Wah-Wah (Close)",longDescription:"Adds a Wah-pedal close effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 3.3{waho} 3.3 3.3 {wahc}\n "},Pt={property:"waho",snippet:"waho",shortDescription:"Wah-Wah (Open)",longDescription:"Adds a Wah-pedal opening effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 3.3{waho} 3.3 3.3 {wahc}\n "},Et={property:"ac",snippet:"ac",shortDescription:"Accentuated",longDescription:"Applies a simple accentuation to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{ac} 3.3{hac} 3.3{ten}\n "},Nt={property:"acc",snippet:"acc $1$0",shortDescription:"Accidentals",longDescription:"Changes the mode to determine the accidentals for this note.",signatures:[{parameters:[{name:"mode",shortDescription:"The accidental mode",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("NoteAccidentalMode")}]}],examples:"\n :8 3.3{lf 1} 3.3{lf 2} 3.3{lf 3} 3.3{lf 4} 3.3{lf 5} (2.2{lf 4} 2.3{lf 3} 2.4{lf 2}) |\n :8 3.3{rf 1} 3.3{rf 2} 3.3{rf 3} 3.3{rf 4} 3.3{lf 5}\n "},Bt=["The harmonic value determines a relative fret-offset changing the note pitch when played. For natural harmonics the played fret determines the harmonic value. The rules are a bit special but mostly are aligned with the frequency adjustments happening when harmonics are played at respective frets:","","* `2.4` adds 36 frets","* `2.7` adds 34 frets","* `< 3` adds 0 frets","* `<= 3.5` adds 31 frets","* `<= 4` adds 28 frets","* `<= 5` adds 34 frets","* `<= 7` adds 19 frets","* `<= 8.5` adds 36 frets","* `<= 9` adds 28 frets","* `<= 10` adds 34 frets","* `<= 11` adds 0 frets","* `<= 12` adds 12 frets","* `< 14` adds 0 frets","* `<= 15` adds 34 frets","* `<= 16` adds 28 frets","* `<= 17` adds 36 frets","* `<= 18` adds 0 frets","* `<= 19` adds 19 frets","* `<= 21` adds 0 frets","* `<= 22` adds 36 frets","* `<= 24` adds 24 frets","* `other: adds 0 frets"].join("\n"),Lt={property:"ah",snippet:"ah$0",shortDescription:"Artificial Harmonic",longDescription:"Applies an artificial harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Bt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n C4 {volume 8} D4 E4 {tempo 16} F4\n "},Ot={name:"type",shortDescription:"The type of bend (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendType")},It={name:"style",shortDescription:"The style of the bend.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},jt={name:"values",shortDescription:"The values of the bend in quarter-tones relative to the original note, decimals supported",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},Gt={property:"b",snippet:"b ($1)$0",shortDescription:"Note Bend",longDescription:"\n Adds a bend effect to the note.\n\n * The `b` variant automatically spreads the values across the duration of the beat.\n * The `be` (exact) variant allows specifying exactly at which offset a value is placed.\n \n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[jt]},{parameters:[Ot,jt]},{parameters:[It,jt]},{parameters:[Ot,It,jt]}],examples:"\n 3.3{b (0 4)} |\n 3.3{b (0 4 0 8)} |\n "},Rt={name:"type",shortDescription:"The type of bend (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendType")},Kt={name:"style",shortDescription:"The style of the whammy play style.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},Jt={name:"valueAndOffset",shortDescription:"The offset and then the value of the bend",longDescription:"The offset at which the value becomes valid in range of 0-60 and \n The value of the bend in quarter-tones relative to the original note.\n The offset and value are actually two parameters: \n `3.3 {be (0 0 5 2 30 4)}`\n ",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},Vt={property:"be",snippet:"be ($1)$0",shortDescription:"Note Bend (exact)",longDescription:"\n Adds an exact bend effect to the note.\n\n * The `b` variant automatically spreads the values across the duration of the beat.\n * The `be` (exact) variant allows specifying exactly at which offset a value is placed.\n\n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[Jt]},{parameters:[Rt,Jt]},{parameters:[Kt,Jt]},{parameters:[Rt,Kt,Jt]}],examples:"\n :1 3.3 {be (0 0 5 2 30 4)}\n "},Wt={property:"fh",snippet:"fh$0",shortDescription:"Feedback Harmonic",longDescription:"Applies a feedback harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Bt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{fh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},zt={property:"g",snippet:"g",shortDescription:"Ghost Note",longDescription:"Marks the note as a ghost note.",signatures:[{parameters:[]}],examples:"\n 3.3{g}\n "},qt={property:"h",snippet:"h",shortDescription:"Hammer-On/Pull-Off",longDescription:"\n Applies a hammer on / pull-off effect to the note.\n\n The fret of the following note on the same string defines whether it is a hammer-on or pull-of.\n ",signatures:[{parameters:[]}],examples:"\n 3.3{h} 4.3 4.3{h} 3.3 | 3.3{h} 4.3{h} 3.3{h} 4.3\n "},Ut={property:"hac",snippet:"hac",shortDescription:"Heavy-Accentuated",longDescription:"Applies a heavy accentuation to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{ac} 3.3{hac} 3.3{ten}\n "},Zt={property:"hide",snippet:"hide",shortDescription:"Hide Note",longDescription:"Hides the note from being displayed in the music sheet.",signatures:[{parameters:[]}],examples:"\n :8 3.3 (4.4{hide} 5.5)\n "},Qt={property:"iturn",snippet:"iturn",shortDescription:"Inverted Turn Ornament",longDescription:"Applies an inverted turn ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{iturn} |\n "},_t={property:"lf",snippet:"lf $1$0",shortDescription:"Left-Hand Finger",longDescription:"Adds a left-hand fingering annotation to the note.",signatures:[{parameters:[{name:"finger",shortDescription:"The finger",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,values:[{name:"1",snippet:"1",shortDescription:"Thumb"},{name:"2",snippet:"2",shortDescription:"Index-Finger"},{name:"3",snippet:"3",shortDescription:"Middle-Finger"},{name:"4",snippet:"4",shortDescription:"Annual-Finger"},{name:"5",snippet:"5",shortDescription:"Little-Finger"}]}]}],examples:"\n :8 3.3{lf 1} 3.3{lf 2} 3.3{lf 3} 3.3{lf 4} 3.3{lf 5} (2.2{lf 4} 2.3{lf 3} 2.4{lf 2}) |\n :8 3.3{rf 1} 3.3{rf 2} 3.3{rf 3} 3.3{rf 4} 3.3{lf 5}\n "},Xt={property:"lht",snippet:"lht",shortDescription:"Left-Hand tap",longDescription:"Applies a left-hand-tapped annotation to the note.",signatures:[{parameters:[]}],examples:"\n :16 15.1{h} 13.1{h} 12.1{h} 15.2{lht}\n "},Yt={property:"lmordent",snippet:"lmordent",shortDescription:"Lower Mordent Ornament",longDescription:"Applies an lower mordent ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{lmordent} |\n "},es={property:"lr",snippet:"lr",shortDescription:"LetRing",longDescription:"Applies a LetRing effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.4{lr} 3.3{lr} 3.2{lr} 3.1{lr}\n "},ts={property:"nh",snippet:"nh",shortDescription:"Natural Harmonic",longDescription:"Applies a natural harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},ss={property:"ph",snippet:"ph$0",shortDescription:"Pinch Harmonic",longDescription:"Applies a pinch harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Bt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},ns={property:"pm",snippet:"pm",shortDescription:"Palm-Mute",longDescription:"Applies a palm mute effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{pm} 3.3{pm} 3.3{pm} 3.3{pm}\n "},is={property:"psd",snippet:"psd",shortDescription:"Pick-Slide (downwards)",longDescription:"Adds a pick slide effect out from note downwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{psd} 3.3{psd} 3.3{psd} |\n 3.3{sib psd} 3.3{sib psd} 3.3{psd psd} 3.3{psd psd} |\n x.3{psd} 3.3 |\n x.3{psd} 3.3 |\n "},as={property:"psu",snippet:"psu",shortDescription:"Pick-Slide (upwards)",longDescription:"Adds a pick slide effect out from note upwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{psu} 3.3{psu} 3.3{psu} |\n 3.3{sib psu} 3.3{sib psu} 3.3{psu psu} 3.3{psu psu} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},rs={property:"rf",snippet:"rf $1$0",shortDescription:"Right-Hand Finger",longDescription:"Adds a right-hand fingering annotation to the note.",signatures:_t.signatures,examples:"\n :8 3.3{lf 1} 3.3{lf 2} 3.3{lf 3} 3.3{lf 4} 3.3{lf 5} (2.2{lf 4} 2.3{lf 3} 2.4{lf 2}) |\n :8 3.3{rf 1} 3.3{rf 2} 3.3{rf 3} 3.3{rf 4} 3.3{lf 5}\n "},os={property:"sh",snippet:"sh$0",shortDescription:"Semi Harmonic",longDescription:"Applies a semi harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Bt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},ps={property:"sia",snippet:"sia",shortDescription:"Slide (into from-above)",longDescription:"Adds a slide effect into the note from above.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},ls={property:"sib",snippet:"sib",shortDescription:"Slide (into from-below)",longDescription:"Adds a slide effect into the note from below.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},cs={property:"sl",snippet:"sl",shortDescription:"Slide (legato)",longDescription:"Adds a legato slide effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},hs={property:"slur",snippet:"slur $1$0",shortDescription:"Slur",longDescription:"Marks the start or end of a slur for the note.",signatures:[{parameters:[{name:"id",shortDescription:"A unique ID to mark the start and end of the slur.",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"id",shortDescription:"A unique ID to mark the start and end of the slur.",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n (3.3 {slur s1} 4.4).4 7.3.8 8.3.8 10.3 {slur s1} .8\n "},ds={property:"sod",snippet:"sod",shortDescription:"Slide (out downwards)",longDescription:"Adds a slide effect out from note downwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sod} 3.3{sod} 3.3{sod} |\n 3.3{sib sod} 3.3{sib sod} 3.3{sod sod} 3.3{sod sod} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},ms={property:"sou",snippet:"sou",shortDescription:"Slide (out upwards)",longDescription:"Adds a slide effect out from note upwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sou} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sou sod} 3.3{sou sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},us={property:"ss",snippet:"ss",shortDescription:"Slide (shift)",longDescription:"Adds a shift slide effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},fs={property:"st",snippet:"st",shortDescription:"Staccato",longDescription:"Applies a staccato effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{st}\n "},gs={property:"string",snippet:"string",shortDescription:"Show String Number",longDescription:"Adds an annotation showing the string number of the note above the staff.",signatures:[{parameters:[]}],examples:"\n 3.3{string} 3.4{string} 3.5{string}\n "},ys={property:"t",snippet:"t",shortDescription:"Tied-Note",longDescription:"\n Marks the note as a tied note.\n \n This is an alternative syntax to directly specifying the fret as `-`.\n\n For non stringed instrument it can be a bit more tricky as we cannot use the string to identify which note to tie. There are multiple ways to work around this problem. AlphaTab will try to find the start note for the tie via several rules, if this does not match the desired behavior, you can specify the note value as alternative and indicate the tie via a note effect.\n ",signatures:[{parameters:[]}],examples:["\n 3.3 -.3 | (1.1 3.2 2.3 0.4) (-.1 -.4)\n ","\n \\tuning piano\n .\n // If there is a single note on the previous beat, we tie to this one\n // Then a simple - is enough for a tie\n :2 a4 - |\n // Alternatively you can specify a '-' or 't' as note effect to indicate a tie\n :2 a4 a4{-} |\n :2 a4 a4{t} |\n // This also works for chords using correct note ordering\n :2 (a4 a3) (- a3) |\n :2 (a4 a3) (a4 -) |\n // If nothing helps, always the explicit note value and tie effect should allow\n // specifying the correct behavior\n :2 (a4 a3) (a4{t} a3) |\n :4 (a4 a3) (b2 b3) a4{t} a3{-} |\n "]},Ds={...ys,property:"-",snippet:"-",hidden:!0},bs={property:"ten",snippet:"ten",shortDescription:"Tenuto",longDescription:"Applies a tenuto accentuation to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{ac} 3.3{ten} 3.3{ten}\n "},ws={property:"th",snippet:"th$0",shortDescription:"Tapped Harmonic",longDescription:"Applies a tapped harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Bt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},vs={property:"tr",snippet:"tr$0",shortDescription:"Trill",longDescription:"Applies a trill effect to the note.",signatures:[{parameters:[{name:"fret",shortDescription:"The fret on which to trill",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"duration",shortDescription:"The duration/speed of the trills",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"16",values:[{name:"16",snippet:"16",shortDescription:"16th Note"},{name:"32",snippet:"32",shortDescription:"32nd Note"},{name:"64",snippet:"64",shortDescription:"64th Note"}]}]}],examples:"\n :4 3.3{tr 4} 3.3{tr 4 16} 3.3{tr 5 32} 3.3{tr 6 64}\n "},Ts={property:"turn",snippet:"turn",shortDescription:"Turn Ornament",longDescription:"Applies a turn ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{turn} |\n "},ks={property:"umordent",snippet:"umordent",shortDescription:"Upper Mordent Ornament",longDescription:"Applies an upper mordent ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{umordent} |\n "},xs={property:"v",snippet:"v",shortDescription:"Slight Vibrato",longDescription:"Adds a slight vibrato effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{v}\n "},Ss={property:"vw",snippet:"vw",shortDescription:"Wide Vibrato",longDescription:"Adds a wide vibrato effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{vw}\n "},Cs={property:"x",snippet:"x",shortDescription:"Dead-Note",longDescription:"Marks the note as a dead note.",signatures:[{parameters:[]}],examples:"\n x.3 3.3{x}\n "},As={tag:"\\db",snippet:"\\db $0",shortDescription:"Mark a double-bar",hidden:!0,deprecated:"Use barLineLeft and barLineRight instead",signatures:[{parameters:[]}],examples:""},Ms={tag:"\\extendBarLines",snippet:"\\extendBarLines",shortDescription:"Extend the bar lines across staves in the same system.",signatures:[{parameters:[]}],examples:'\n \\extendBarLines\n \\track "Piano1"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\staff {score}\n \\clef f4 C3 D3 E3 F3\n \\track "Piano2"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\track "Flute 1"\n \\staff { score }\n \\instrument flute\n C4 D4 E4 F4\n \\track "Flute 2"\n \\staff { score }\n \\instrument flute\n \\clef f4 C3 D3 E3 F3\n \\track "Guitar 1"\n \\staff { score tabs }\n 0.3.4 2.3.4 5.3.4 7.3.4\n '},$s={tag:"\\instrument",snippet:'\\instrument "$1"$0',shortDescription:"Instrument",hidden:!0,longDescription:"Defines the instrument for the track.",deprecated:"Use the track property instead",signatures:Ae.signatures,examples:""},Fs=we(Me,Ce,$e),Hs=we(W,ce,q,z,ue,ie,fe,Z,Q,te,ae,de,he,_,pe,ee,me,se,U,le,ne,X,re,Y,oe,Ms),Ps=we(Se,ve,De,ke,ye,Te,xe,$s),Es=we(R,H,F,T,M,S,$,j,G,D,E,A,C,N,k,x,P,K,I,v,B,L,O,As),Ns=new Map([...Fs.entries(),...Hs.entries(),...Ps.entries(),...Es.entries()]),Bs=be(St),Ls=be(We,qe,$t,At,Ft,st,et,xt,Ge,Re,lt,nt,je,Ke,at,ot,pt,rt,it,Je,Ue,Ze,Pt,Ht,_e,Tt,St,Ct,Xe,mt,yt,Oe,Be,He,Fe,Ie,Qe,Ve,vt,Mt,Pe,kt,Ne,tt,Ye,Ae,Ee,ze,Le),Os=be(ts,Lt,ws,ss,os,Wt,xs,Ss,cs,us,ls,ps,ms,ds,as,is,qt,Xt,zt,Et,Ut,bs,vs,ns,fs,es,Cs,ys,Ts,Qt,ks,Yt,gs,Zt,Gt,Vt,_t,rs,Nt,hs,Ds),Is=/^([ ]+)/;function js(e){const t=e.split("\n"),s=t.findIndex(e=>""!==e.trim());if(-1===s)return e;t.splice(0,s);const n=Is.exec(t[0]);if(n){return t.map(e=>e.substring(n[0].length)).join("\n")}return t.join("\n")}function Gs(e){const t=e.longDescription;if(void 0===t)return;const s=t.split("\n");""===s[0].trim()&&s.splice(0,1);const n=Is.exec(s[0]);if(n){const t=s.map(e=>e.substring(n[0].length));e.longDescription=t.join("\n"),e.shortDescription||(e.shortDescription=t[0].substring(0,100))}else e.shortDescription||(e.shortDescription=s[0].substring(0,100))}function Rs(e){return"string"==typeof e?js(e):(e.tex=js(e.tex),e)}function Ks(e){Gs(e);for(const t of e.signatures)for(const e of t.parameters)Gs(e);if(Array.isArray(e.examples))for(const[t,s]of e.examples.entries())e.examples[t]=Rs(s);else e.examples=Rs(e.examples)}for(const e of Ns.values())if(Ks(e),e.properties)for(const t of e.properties.values())Ks(t);for(const e of Ls.values())Ks(e);for(const e of Os.values())Ks(e);function Js(e,t,s=0,n=e.length,i){if(s>n)return;const a=Math.trunc((s+n)/2),r=e[a],o=a===e.length-1?i:e[a+1].start.offset;return r.start.offset<=t&&t<=o?r:t<r.start.offset?Js(e,t,s,a,i):Js(e,t,a,n,i)}function Vs(e,t,s=(e.length>0?e[e.length-1].end.offset:0)){if(0===e.length)return;return t<e[0].start.offset||t>s?void 0:Js(e,t,0,e.length,s)}function Ws(e,t){const s=new Map;if(void 0!==t.signatureCandidateIndices)for(const n of t.signatureCandidateIndices)s.set(n,e[n]);return s}function zs(t,s){let n=t.name;if(!s){switch(t.parseMode){case e.importer.alphaTex.ArgumentListParseTypesMode.Optional:case e.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat:n+="?"}n+=`: ${qs(t)}`,t.defaultValue&&(n+=` = ${t.defaultValue}`)}return n}function qs(t){const s=Array.isArray(t.type)?t.type:[t.type];let n="";if(t.values&&!t.valuesOnlyForCompletion&&t.values.length<5){const i=t.values.map(e=>e.name);if(s[0]===e.importer.alphaTex.AlphaTexNodeType.String)n=i.map(e=>`"${e}"`).join("|");else n=i.join("|")}else n=s.map(t=>e.importer.alphaTex.AlphaTexNodeType[t]).join("|");switch(t.parseMode){case e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList:case e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis:n+="[]"}return n}const Us=[...sn(Fs),...sn(Ps),...sn(Hs),...sn(Es)];function Zs(e,t){e.onCompletion(s=>{const n=t.get(s.textDocument.uri);if(!n?.ast)return Us;const i=n.offsetAt(s.position),a=Vs(n.ast.bars,i,Number.MAX_SAFE_INTEGER),r=a?n.ast.bars.indexOf(a):0;if(!a)return Qs(en(r,void 0,i,Number.MAX_SAFE_INTEGER),e.console);const o=a.pipe?.start.offset??(r===n.ast.bars.length-1?Number.MAX_SAFE_INTEGER:n.ast.bars[r+1].start.offset),l=a.beats[0]?.start.offset??o,c=a?Vs(a.metaData,i,l):void 0;if(c){const t=a.metaData.indexOf(c);return Qs(en(r,c,i,t===a.metaData.length-1?l:a.metaData[t+1].start.offset),e.console)}const h=Vs(a.beats,i,o);if(h){const t=a.beats.indexOf(h);return Qs(function(e,t,s){const n=[];if(e.durationChange&&e.durationChange.start.offset<t&&t<=e.durationChange.end.offset){const n=e.notes?.start.offset??s;return function(e,t,s){const n=[];if(!e.properties||t<e.properties.start.offset){const t=e.properties?.start??e.end,s=e.properties?[p.del({start:{line:e.colon.start.line-1,character:e.colon.start.col-1},end:{line:t.line-1,character:t.col-1}})]:void 0;n.push(..._s.map(e=>({...e,additionalTextEdits:s})))}else if(e.properties&&e.properties.start.offset<t&&e.properties.end.offset){const i=e.properties?.closeBrace?.start.offset??s;n.push(...nn(e.properties,t,Bs,i))}return n}(e.durationChange,t,n)}if(e.notes&&e.notes.start.offset<t&&t<=e.notes.end.offset){const n=e.notes?.closeParenthesis?.start.offset??e.durationDot?.start.offset??e.beatEffects?.start.offset??e.beatMultiplier?.start.offset??s,i=Vs(e.notes.notes,t,n);if(i){const s=e.notes.notes.indexOf(i);return function(e,t,s,n){const i=[];if(t.noteEffects&&t.noteEffects.start.offset<s&&t.noteEffects.end.offset){const a=t.noteEffects.closeBrace?.start.offset??n;1===e.notes.notes.length&&i.splice(0,0,...nn(t.noteEffects,s,Ls,a)),i.splice(0,0,...nn(t.noteEffects,s,Os,a))}return i}(e,i,t,s===e.notes.notes.length-1?n:e.notes.notes[s+1].start.offset)}}const i=e.beatMultiplier?.start?.offset??e.beatEffects?.start?.offset??e.end.offset;if(e.durationDot&&e.durationDot.start.offset<t&&(t<=i||!e.beatEffects)){const t=e.durationValue?[p.del({start:{line:e.durationDot.end.line-1,character:e.durationDot.end.col-1},end:{line:e.durationValue.end.line-1,character:e.durationValue.end.col-1}})]:void 0;n.push(..._s.map(e=>({...e,additionalTextEdits:t})))}if(e.beatEffects&&e.beatEffects.start.offset<t&&e.beatEffects.end.offset){const i=e.beatEffects?.closeBrace?.start.offset??e.beatMultiplier?.start.offset??s;n.splice(0,0,...nn(e.beatEffects,t,Ls,i))}return n}(h,i,t===a.beats.length-1?o:a.beats[t+1].start.offset),e.console)}return Qs(en(r,void 0,i,Number.MAX_SAFE_INTEGER),e.console)}),e.onCompletionResolve(e=>e)}function Qs(e,t){let s="a".charCodeAt(0);for(const t of e)t.sortText=`${String.fromCharCode(s++)}`;return t.debug(`Provide completions: ${JSON.stringify(e)}`),e}const _s=[["Whole Note",e.model.Duration.Whole],["Half Note",e.model.Duration.Half],["Quarter Note",e.model.Duration.Quarter],["8th Note",e.model.Duration.Eighth],["16th Note",e.model.Duration.Sixteenth],["32nd Note",e.model.Duration.ThirtySecond],["64th Note",e.model.Duration.SixtyFourth],["128th Note",e.model.Duration.OneHundredTwentyEighth],["256th Note",e.model.Duration.TwoHundredFiftySixth],["Quadruple Whole Note",e.model.Duration.QuadrupleWhole],["Double Whole Note",e.model.Duration.DoubleWhole]].map(e=>({label:`${e[1]}`,labelDetails:{description:e[0]},kind:o.Value,insertText:`${e[1]} `,insertTextFormat:r.Snippet}));function Xs(e,t){return{label:e.name,kind:o.Value,labelDetails:e.shortDescription?{description:e.shortDescription}:void 0,documentation:e.longDescription?{kind:"markdown",value:e.longDescription}:void 0,insertText:e.snippet,insertTextFormat:r.Snippet,...t}}function Ys(e){return{label:e.tag,kind:o.Function,labelDetails:e.shortDescription?{description:e.shortDescription}:void 0,documentation:e.longDescription?{kind:"markdown",value:e.longDescription}:void 0,insertText:e.snippet,insertTextFormat:r.Snippet,data:{tag:e.tag.substring(1),tagLowerCase:e.tag.substring(1).toLowerCase()}}}function en(e,t,s,n){let i=[];if(!t||t.tag.start.offset<=s&&s<=t.tag.end.offset){if(0===e?i.push(...Us):i.push(...sn(Fs),...sn(Es)),t){const e=t.arguments||t.properties;i=i.map(s=>({...s,insertText:e?s.label:s.insertText,additionalTextEdits:[p.del({start:{line:t.tag.start.line-1,character:t.tag.start.col-1},end:{line:t.tag.end.line-1,character:t.tag.end.col-1}})]}))}return i}s>=t.end.offset&&(0===e?i.push(...Us):i.push(...sn(Fs),...sn(Es)));const a=Ns.get(`\\${t.tag.tag.text.toLowerCase()}`);if(!a)return i;const r=t.arguments?.closeParenthesis?.start.offset??t.arguments?.end.offset??t.properties?.start.offset??n;if(i.splice(0,0,...tn(a.signatures,t.arguments,s,r)),a?.properties){const e=t.properties?.closeBrace?.start.offset??n;i.splice(0,0,...nn(t.properties,s,a.properties,e))}return i}function tn(e,t,s,n){if(!t){const t=e.flatMap(e=>e.parameters.length>0?e.parameters[0].values??[]:[]);return t.map(e=>Xs(e))}{const i=Vs(t.arguments,s,n);if(i?.parameterIndices){const n=s>i.end.offset,a=Ws(e,t);for(const[e,t]of a){let s=i.parameterIndices.get(e);void 0!==s&&n&&s<t.parameters.length-1&&s++;const a=void 0!==s?t.parameters[s].values:void 0;if(a)return a.map(e=>Xs(e,{additionalTextEdits:[p.del({start:{line:i.start.line-1,character:i.start.col-1},end:{line:i.end.line-1,character:i.end.col-1}})]}))}}}return[]}function sn(e){return Array.from(e.values()).map(Ys)}function nn(e,t,s,n){if(!e)return[];const i=e.closeBrace?.start?.offset??e.end.offset;if(t<e.openBrace.start.offset||t>i)return[];const a=Array.from(s.values()).map(e=>function(e,t){return{label:e.property,kind:o.Property,insertText:e.snippet,labelDetails:e.shortDescription?{description:e.shortDescription}:void 0,documentation:e.longDescription?{kind:"markdown",value:e.longDescription}:void 0,insertTextFormat:r.Snippet,...t}}(e)),l=e?Vs(e.properties,t,n):void 0;if(l){const i=e.properties.indexOf(l);return function(e,t,s,n,i){const a=[],r=!e||e.property.start.offset<=t&&t<=e.property.end.offset;if(r)return a.push(...n.map(t=>({...t,additionalTextEdits:[p.del({start:{line:e.property.start.line-1,character:e.property.start.col-1},end:{line:e.property.end.line-1,character:e.property.end.col-1}})]}))),a;t>=e.end.offset&&a.push(...n);const o=s.get(e.property.text.toLowerCase());if(!o)return a;return a.splice(0,0,...tn(o.signatures,e.arguments,t,i)),a}(l,t,s,a,i===e.properties.length-1?n:e.properties[i+1].start.offset)}return a}function an(t){const s=[];for(const n of t){const t={severity:l.Warning,range:{start:{line:n.start.line-1,character:n.start.col-1},end:{line:n.end.line-1,character:n.end.col-1}},message:n.message,code:`AT${n.code}`,source:"alphaTab"};switch(n.severity){case e.importer.alphaTex.AlphaTexDiagnosticsSeverity.Hint:t.severity=l.Hint;break;case e.importer.alphaTex.AlphaTexDiagnosticsSeverity.Warning:t.severity=l.Warning;break;case e.importer.alphaTex.AlphaTexDiagnosticsSeverity.Error:t.severity=l.Error}s.push(t)}return s}async function rn(t){const s=[],n=t.getText(),i=new e.importer.AlphaTexImporter;i.initFromString(n,new e.Settings),i.parser.mode=e.importer.alphaTex.AlphaTexParseMode.Full;try{t.score=i.readScore(),t.ast=i.scoreNode,s.push(...an(i.lexerDiagnostics)),s.push(...an(i.parserDiagnostics)),s.push(...an(i.semanticDiagnostics))}catch(n){t.score=void 0,t.ast=i.scoreNode,s.push(...function(t){let s;return t instanceof e.importer.AlphaTexErrorWithDiagnostics?s=t:t instanceof e.importer.UnsupportedFormatError&&t.cause instanceof e.importer.AlphaTexErrorWithDiagnostics&&(s=t.cause),s?an(s.iterateDiagnostics()):[{severity:l.Warning,range:{start:{line:0,character:0},end:{line:0,character:c.MAX_VALUE}},message:`Unexpected error parsing alphaTex: ${t.message}`,source:"alphaTab"}]}(n))}return s}function on(e,t){e.onHover(e=>{const s=t.get(e.textDocument.uri);if(!s?.ast)return null;const n=s.offsetAt(e.position),i=Vs(s.ast.bars,n);if(!i)return null;const a=Vs(i.metaData,n);if(a)return function(e,t){const s=Ns.get(`\\${e.tag.tag.text.toLowerCase()}`);if(!s)return null;if(e.tag.start.offset<=t&&t<=e.tag.end.offset)return{contents:{kind:"markdown",value:cn(s,s.tag,"Tag Syntax")}};if(e.arguments){const n=ln(e.arguments,s.signatures,t);if(null!=n)return n}if(e.properties&&s.properties){const n=pn(e.properties,s.properties,t);if(null!=n)return n}return null}(a,n);const r=Vs(i.beats,n);return r?function(e,t){if(e.durationChange?.properties){const s=pn(e.durationChange.properties,Bs,t);if(null!=s)return s}if(e.notes){const s=Vs(e.notes.notes,t);if(s)return function(e,t){if(e?.noteEffects){const s=pn(e.noteEffects,[Os,Ls],t);if(null!=s)return s}return null}(s,t)}if(e.beatEffects){const s=pn(e.beatEffects,Ls,t);if(null!=s)return s}return null}(r,n):null})}function pn(e,t,s){const n=Vs(e.properties,s);if(n){let e;if(Array.isArray(t)){for(const s of t)if(e=s.get(n.property.text.toLowerCase()),e)break}else e=t.get(n.property.text.toLowerCase());if(e){if(n.property.start.offset<=s&&s<=n.property.end.offset)return{contents:{kind:"markdown",value:cn(e,e.property)}};if(n.arguments){const t=ln(n.arguments,e.signatures,s);if(t)return t}}}return null}function ln(t,s,n){const i=Vs(t.arguments,n);if(i){const n=t.arguments.indexOf(i),r=Ws(s,t).values().next().value;if(r&&n<r.parameters.length){const t=r.parameters[n],s=function(t){switch(t.nodeType){case e.importer.alphaTex.AlphaTexNodeType.Ident:case e.importer.alphaTex.AlphaTexNodeType.String:return t.text;case e.importer.alphaTex.AlphaTexNodeType.Number:return t.value.toString()}return""}(i).toLowerCase(),o=t.values?.find(e=>e.name.toLowerCase()===s);if(o)return{contents:{kind:"markdown",value:(a=o,[`## ${a.name}`,a.longDescription??a.shortDescription,""].join("\n"))}}}}var a;return null}function cn(e,t,s="Syntax"){return[`## ${e.shortDescription}`,e.longDescription?`**Description:** ${e.longDescription}`:"","",`**${s}:**`,"```alphatex",...e.signatures.map((s,n)=>function(e,t,s,n){let i="";n?i+=`// [${s+1}]: ${t.description??""}\n`:t.description&&(i+=`// ${t.description}\n`);i+=e,t.parameters.length>0&&(i+=`(${t.parameters.map(e=>zs(e,!0)).join(" ")})`);return i}(t,s,n,e.signatures.length>1)),"```","",hn(e.signatures)].join("\n")}function hn(e){if(0===e.length||1===e.length&&0===e[0].parameters.length)return"";return e.length>1?["","**Parameters:**","| Overload | Name | Description | Type | Required |","|----------|------|-------------|------|----------|",...e.flatMap((e,t)=>e.parameters.map(e=>`| \`[${t+1}]\` | \`${e.name}\` | ${(e.longDescription??e.shortDescription)?.replaceAll("\n","<br />")??""} | \`${qs(e).replaceAll("|","\\|")}\` | ${dn(e.parseMode)?"yes":"no"} ${e.defaultValue??""} |`))].join("\n"):["","**Parameters:**","| Name | Description | Type | Required |","|------|-------------|------|----------|",...e.flatMap(e=>e.parameters.map(e=>`| \`${e.name}\` | ${(e.longDescription??e.shortDescription)?.replaceAll("\n","<br />")??""} | \`${qs(e).replaceAll("|","\\|")}\` | ${dn(e.parseMode)?"yes":"no"} ${e.defaultValue??""} |`))].join("\n")}function dn(t){switch(t){case e.importer.alphaTex.ArgumentListParseTypesMode.Required:case e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat:case e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList:return!0;default:return!1}}function mn(e,t){e.onSignatureHelp(e=>{const s=t.get(e.textDocument.uri);if(!s?.ast)return null;const n=s.offsetAt(e.position),i=Vs(s.ast.bars,n);if(!i)return null;const a=Vs(i.metaData,n);if(a)return function(e,t){const s=Ns.get(`\\${e.tag.tag.text.toLowerCase()}`);if(!s)return null;const n=e.arguments?.end.offset??e.properties?.start.offset??e.end.offset;if(e.start.offset<=t&&t<n)return fn(`\\${e.tag.tag.text}`,s,e.arguments,t);if(e.properties&&s.properties){const n=un(e.properties,s.properties,t);if(null!=n)return n}return null}(a,n);const r=Vs(i.beats,n);return r?function(e,t){if(e.durationChange?.properties){const s=un(e.durationChange.properties,Bs,t);if(null!=s)return s}if(e.notes){const s=Vs(e.notes.notes,t);if(s)return function(e,t){if(e?.noteEffects){const s=un(e.noteEffects,[Os,Ls],t);if(null!=s)return s}return null}(s,t)}if(e.beatEffects){const s=un(e.beatEffects,Ls,t);if(null!=s)return s}return null}(r,n):null})}function un(e,t,s){const n=Vs(e.properties,s);if(!n)return null;let i;if(Array.isArray(t)){for(const e of t)if(i=e.get(n.property.text.toLowerCase()),i)break}else i=t.get(n.property.text.toLowerCase());return i?fn(n.property.text,i,n.arguments,s):null}function fn(e,t,s,n){const i={signatures:t.signatures.map(s=>function(e,t,s){const n=h.create(`${e} `,t.longDescription??t.shortDescription);n.label+=" (";for(let e=0;e<s.parameters.length;e++)e>0&&(n.label+=" "),gn(n,s.parameters[e]);return n.label+=")",n}(e,t,s)),activeSignature:void 0,activeParameter:void 0};if(!s)return i;if(void 0!==s.signatureCandidateIndices){i.activeSignature=s.signatureCandidateIndices[0];const e=Vs(s.arguments,n);if(e&&void 0!==e.parameterIndices)for(const[t,s]of e.parameterIndices)s>=0&&(i.signatures[t].activeParameter=s)}return i}function gn(e,t){const s=e.label.length;e.label+=zs(t,!1);const n=e.label.length;e.parameters.push(d.create([s,n],t.longDescription??t.shortDescription))}function yn(e){const r=new t(a);e.onInitialize(e=>{const t=e.capabilities,s=!(!t.workspace||!t.workspace.workspaceFolders),a={capabilities:{textDocumentSync:i.Incremental,positionEncoding:n.UTF16,completionProvider:{resolveProvider:!0},signatureHelpProvider:{triggerCharacters:["("]},diagnosticProvider:{interFileDependencies:!1,workspaceDiagnostics:!1},hoverProvider:{}}};return s&&(a.capabilities.workspace={workspaceFolders:{supported:!0}}),a}),function(e,t){e.languages.diagnostics.on(async e=>{const n=t.get(e.textDocument.uri);return void 0!==n?{kind:s.Full,items:await rn(n)}:{kind:s.Full,items:[]}}),t.onDidChangeContent(async e=>{await rn(e.document)})}(e,r),Zs(e,r),on(e,r),mn(e,r),r.listen(e),e.listen()}function Dn(e,t){yn(m(new u(e),new f(t)))}function bn(){yn(g(y.all))}const wn={structuralMetaData:Fs,scoreMetaData:Hs,staffMetaData:Ps,barMetaData:Es,durationChangeProperties:Bs,beatProperties:Ls,noteProperties:Os},vn={$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"alphaTex",scopeName:"source.alphatex",uuid:"1ebe68ca-6558-428e-a6af-90831f41e88e",patterns:[{include:"#statements"}],repository:{statements:{patterns:[{include:"#string"},{include:"#comment"},{include:"#metadata"},{include:"#literal"},{include:"#expression"},{include:"#punctuation-pipe"},{include:"#punctuation-dot"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"}]},"qstring-single":{name:"string.quoted.single.alphatex",begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.alphatex"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.alphatex"},2:{name:"invalid.illegal.newline.alphatex"}},patterns:[{include:"#string-character-escape"}]},"qstring-double":{name:"string.quoted.double.alphatex",begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.alphatex"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.alphatex"},2:{name:"invalid.illegal.newline.alphatex"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.alphatex",match:"\\\\(u[0-9A-Fa-f]{4}|.|$)"},comment:{patterns:[{name:"comment.block.alphatex",begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.alphatex"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.alphatex"}}},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.alphatex"}},end:"(?=$)",patterns:[{name:"comment.line.double-slash.alphatex",begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.alphatex"}},end:"(?=$)"}]}]},literal:{patterns:[{include:"#numeric-literal"}]},"numeric-literal":{name:"constant.numeric.decimal.alphatex",match:"[0-9]+",captures:{0:{name:"constant.numeric.decimal.alphatex"}}},expression:{patterns:[{include:"#string"},{include:"#comment"},{include:"#literal"},{include:"#identifier"},{include:"#valueList"},{include:"#properties"},{include:"#punctuation"}]},valueList:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.value-list.begin.js"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.value-list.end.js"}},patterns:[{include:"#string"},{include:"#comment"},{include:"#literal"},{include:"#identifier"}]},properties:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.properties.begin.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.properties.end.js"}},patterns:[{include:"#string"},{include:"#comment"},{include:"#literal"},{include:"#identifier"},{include:"#valueList"}]},metadata:{name:"keyword.metadata.alphatex",match:"\\\\{1,2}[^\\s]+",captures:{0:{name:"keyword.metadata.alphatex"}}},identifier:{name:"variable.identifier.alphatex",match:"[^/\"'-\\.:\\(\\)\\{\\}\\|\\*\\\\\\s][^/\"'\\.:\\(\\)\\{\\}\\|\\*\\\\\\s]+",captures:{0:{name:"variable.identifier.alphatex"}}},punctuation:{patterns:[{include:"#punctuation-dot"},{include:"#punctuation-pipe"},{include:"#punctuation-asterisk"}]},"punctuation-pipe":{name:"punctuation.bar.alphatex",match:"\\|"},"punctuation-dot":{name:"punctuation.dot.alphatex",match:"\\."},"punctuation-asterisk":{name:"punctuation.asterisk.alphatex",match:"\\*"}}},Tn={comments:{lineComment:{comment:"//",noIndent:!1},blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]};import.meta.main&&bn();export{wn as documentation,Tn as languageConfiguration,bn as startNodeLanguageServer,Dn as startWebWorkerLanguageServer,vn as textMateGrammar};
|
|
13
|
+
import*as e from"@coderline/alphatab";import{TextDocuments as t}from"vscode-languageserver";import{DocumentDiagnosticReportKind as n,PositionEncodingKind as s,TextDocumentSyncKind as i}from"vscode-languageserver-protocol";import{TextDocument as a}from"vscode-languageserver-textdocument";import{InsertTextFormat as r,CompletionItemKind as o,TextEdit as p,DiagnosticSeverity as l,uinteger as c,SignatureInformation as h,ParameterInformation as d}from"vscode-languageserver-types";import{createConnection as m,BrowserMessageReader as u,BrowserMessageWriter as f}from"vscode-languageserver/lib/browser/main.js";import{createConnection as g,ProposedFeatures as y}from"vscode-languageserver/lib/node/main.js";const D={tag:"\\ac",snippet:"\\ac $0",shortDescription:"Mark an anacrusis (pick-up) bar",longDescription:"\n Marks the bar as an anacrusis (pick-up) bar.\n\n By default bars follow a strict timing defined by the time signature and tempo. Anacrusis (aka. pickup bars) do not follow this rule. The length of those bars is defined by the actual beats/notes in the bar.\n ",signatures:[{parameters:[]}],examples:"\n \\ks D \\ts 24 16 \\ac r.16 6.3 7.3 9.3 7.3 6.3 | r.16 5.4 7.4 9.4 7.4 5.4 6.3.4{d} 9.6.16 10.6 12.6 10.6 9.6 14.6.4{d} r.16\n "};e.model.WhammyType,e.model.BendStyle,e.model.GraceType,e.model.FermataType,e.importer.alphaTex.AlphaTexAccidentalMode,e.importer.alphaTex.AlphaTexVoiceMode,e.model.NoteAccidentalMode,e.model.BarreShape,e.model.Ottavia,e.model.Rasgueado,e.model.DynamicValue,e.model.BracketExtendMode,e.model.TrackNamePolicy,e.model.TrackNameOrientation,e.model.TrackNameMode,e.platform.TextAlign,e.model.BendType,e.model.KeySignature,e.model.KeySignatureType,e.model.Clef,e.model.TripletFeel,e.model.BarLineStyle,e.model.SimileMark,e.model.Direction;const b={WhammyType:{None:null,Custom:{snippet:"custom",shortDescription:"Non standard custom whammys with multiple points"},Dive:{snippet:"dive",shortDescription:"A gradual change between two points"},Dip:{snippet:"dip",shortDescription:"A A->B->A whammy pattern."},Hold:{snippet:"hold",shortDescription:"Holding whammys (on tied notes)."},Predive:{snippet:"predive",shortDescription:"Press/pull before playing the note and then kept"},PrediveDive:{snippet:"prediveDive",shortDescription:"Whammy bar is pressed/pulled before playing the note and then further pressed/released"}},BendStyle:{Default:{snippet:"default",shortDescription:"",longDescription:"No additional text is shown, the offsets and values are respected as specified."},Gradual:{snippet:"gradual",shortDescription:"",longDescription:'Will show an additional "grad." on the line. The audio is generated according to the type spread evenly across the play duration.'},Fast:{snippet:"fast",shortDescription:"",longDescription:"No additional text is shown. The audio is generated according to the type spread evenly across the fixed duration set via settings.player.songBookBendDuration."}},GraceType:{None:null,OnBeat:{snippet:"onBeat",shortDescription:"On-Beat",longDescription:"An On-Beat grace note where this beat will start at the play time of the next beat and steal its play time from the next beat.",aliases:["ob"]},BeforeBeat:{snippet:"beforeBeat",shortDescription:"Before-Beat",longDescription:"A Before-Beat grace note where this beat will start before the next beat and steal its play time from the previous beat.",aliases:["bb"]},BendGrace:{snippet:"bendGrace",shortDescription:"Bend",longDescription:"A bend grace note, a mechanism used in alphaTab for the 'songbook style' bends notes. You will likely not apply this type manually.",aliases:["b"]}},FermataType:{Short:{snippet:"short",shortDescription:""},Medium:{snippet:"medium",shortDescription:""},Long:{snippet:"long",shortDescription:""}},AlphaTexAccidentalMode:{Auto:{snippet:"auto",shortDescription:"Automatic (Based on Pitch)"},Explicit:{snippet:"explicit",shortDescription:"Explicit (as Written)"}},AlphaTexVoiceMode:{StaffWise:{snippet:"staffWise",shortDescription:"Staff-Wise voices",longDescription:"A new voice resets to bar 1 from where the notation of a new voice can be added."},BarWise:{snippet:"barWise",shortDescription:"Bar-Wise voices",longDescription:"A new voice adds a new voice to the current bar only."}},NoteAccidentalMode:{Default:{snippet:"default",shortDescription:"Auto-detect the accidentals",aliases:["d"]},ForceNone:{snippet:"forceNone",shortDescription:"Force no accidentals",aliases:["-"]},ForceNatural:{snippet:"forceNatural",shortDescription:"Force a naturalize accidental",aliases:["n"]},ForceSharp:{snippet:"forceSharp",shortDescription:"Force a sharp accidental",aliases:["#"]},ForceDoubleSharp:{snippet:"forceDoubleSharp",shortDescription:"Force a double-sharp accidental",aliases:["##","x"]},ForceFlat:{snippet:"forceFlat",shortDescription:"Force a flat accidental",aliases:["b"]},ForceDoubleFlat:{snippet:"forceDoubleFlat",shortDescription:"Force a double flat accidental",aliases:["bb"]}},BarreShape:{None:null,Full:{snippet:"full",shortDescription:""},Half:{snippet:"half",shortDescription:""}},Ottavia:{t:{snippet:"15ma",shortDescription:"Quindicesima (+2 octaves)",aliases:["15ma"]},i:{snippet:"8va",shortDescription:"Ottava (+1 octave)",aliases:["8va"]},Regular:{snippet:"regular",shortDescription:"Regular"},o:{snippet:"8vb",shortDescription:"Ottava Bassa (-1 octave)",aliases:["8vb"]},p:{snippet:"15mb",shortDescription:"Quindicesima bassa (-2 octaves)",aliases:["15mb"]}},Rasgueado:{None:null,Ii:{snippet:"ii",shortDescription:"ii"},Mi:{snippet:"mi",shortDescription:"mi"},MiiTriplet:{snippet:"miiTriplet",shortDescription:"mii (triplet)"},MiiAnapaest:{snippet:"miiAnapaest",shortDescription:"mii (anapaest)"},PmpTriplet:{snippet:"pmpTriplet",shortDescription:"pmp (triplet)"},PmpAnapaest:{snippet:"pmpAnapaest",shortDescription:"pmp (anapaest)"},PeiTriplet:{snippet:"peiTriplet",shortDescription:"pei (triplet)"},PeiAnapaest:{snippet:"peiAnapaest",shortDescription:"pei (anapaest)"},PaiTriplet:{snippet:"paiTriplet",shortDescription:"pai (triplet)"},PaiAnapaest:{snippet:"paiAnapaest",shortDescription:"pai (anapaest)"},AmiTriplet:{snippet:"amiTriplet",shortDescription:"ami (triplet)"},AmiAnapaest:{snippet:"amiAnapaest",shortDescription:"ami (anapaest)"},Ppp:{snippet:"ppp",shortDescription:"ppp"},Amii:{snippet:"amii",shortDescription:"amii"},Amip:{snippet:"amip",shortDescription:"amip"},Eami:{snippet:"eami",shortDescription:"eami"},Eamii:{snippet:"eamii",shortDescription:"eamii"},Peami:{snippet:"peami",shortDescription:"peami"}},DynamicValue:{PPP:{snippet:"ppp",shortDescription:""},PP:{snippet:"pp",shortDescription:""},P:{snippet:"p",shortDescription:""},MP:{snippet:"mp",shortDescription:""},MF:{snippet:"mf",shortDescription:""},F:{snippet:"f",shortDescription:""},FF:{snippet:"ff",shortDescription:""},FFF:{snippet:"fff",shortDescription:""},PPPP:{snippet:"pppp",shortDescription:""},PPPPP:{snippet:"ppppp",shortDescription:""},PPPPPP:{snippet:"pppppp",shortDescription:""},FFFF:{snippet:"ffff",shortDescription:""},FFFFF:{snippet:"fffff",shortDescription:""},FFFFFF:{snippet:"ffffff",shortDescription:""},SF:{snippet:"sf",shortDescription:""},SFP:{snippet:"sfp",shortDescription:""},SFPP:{snippet:"sfpp",shortDescription:""},FP:{snippet:"fp",shortDescription:""},RF:{snippet:"rf",shortDescription:""},RFZ:{snippet:"rfz",shortDescription:""},SFZ:{snippet:"sfz",shortDescription:""},SFFZ:{snippet:"sffz",shortDescription:""},FZ:{snippet:"fz",shortDescription:""},N:{snippet:"n",shortDescription:""},PF:{snippet:"pf",shortDescription:""},SFZP:{snippet:"sfzp",shortDescription:""}},BracketExtendMode:{NoBrackets:{snippet:"noBrackets",shortDescription:"No brackets",longDescription:"No brackets will be draw at all."},GroupStaves:{snippet:"groupStaves",shortDescription:"Group staves of same track",longDescription:'The staves of the same track will be grouped together. If there are multiple "standard notation" staves a brace will be drawn, otherwise a bracket.'},GroupSimilarInstruments:{snippet:"groupSimilarInstruments",shortDescription:"Group similar instruments",longDescription:"Multiple tracks of the same instrument will be grouped together. No grouping happens if the staves of an instrument require a brace."}},TrackNamePolicy:{Hidden:{snippet:"hidden",shortDescription:"Track names are hidden everywhere."},FirstSystem:{snippet:"firstSystem",shortDescription:"Track names are displayed on the first system."},AllSystems:{snippet:"allSystems",shortDescription:"Track names are displayed on all systems."}},TrackNameOrientation:{Horizontal:{snippet:"horizontal",shortDescription:"Text is shown horizontally (left-to-right)."},Vertical:{snippet:"vertical",shortDescription:"Vertically rotated (bottom-to-top)."}},TrackNameMode:{FullName:{snippet:"fullName",shortDescription:"Short track names (abbreviations) are displayed."},ShortName:{snippet:"shortName",shortDescription:"Full track names are displayed."}},TextAlign:{Left:{snippet:"left",shortDescription:"Left-align the text"},Center:{snippet:"center",shortDescription:"Center-align the text"},Right:{snippet:"right",shortDescription:"Right-align the text"}},BendType:{None:null,Custom:{snippet:"custom",shortDescription:"A non-standard custom bends with multiple points"},Bend:{snippet:"bend",shortDescription:"A simple bend up to a higher note"},Release:{snippet:"release",shortDescription:"A release of bends down to a lower note"},BendRelease:{snippet:"bendRelease",shortDescription:"A bend directly followed by a release"},Hold:{snippet:"hold",shortDescription:"A bend which is held from the previous note"},Prebend:{snippet:"prebend",shortDescription:"A bend applied before the note is played"},PrebendBend:{snippet:"prebendBend",shortDescription:"A pre-bend followed by a bend"},PrebendRelease:{snippet:"prebendRelease",shortDescription:"A pre-bend followed by a release"}},KeySignature:{Cb:{snippet:"cb",shortDescription:"",aliases:["cbmajor","abminor"]},Gb:{snippet:"gb",shortDescription:"",aliases:["gbmajor","ebminor"]},Db:{snippet:"db",shortDescription:"",aliases:["dbmajor","bbminor"]},Ab:{snippet:"ab",shortDescription:"",aliases:["abmajor","fminor"]},Eb:{snippet:"eb",shortDescription:"",aliases:["ebmajor","cminor"]},Bb:{snippet:"bb",shortDescription:"",aliases:["bbmajor","gminor"]},F:{snippet:"f",shortDescription:"",aliases:["fmajor","dminor"]},C:{snippet:"c",shortDescription:"",aliases:["cmajor","aminor"]},G:{snippet:"g",shortDescription:"",aliases:["gmajor","eminor"]},D:{snippet:"d",shortDescription:"",aliases:["dmajor","bminor"]},A:{snippet:"a",shortDescription:"",aliases:["amajor","f#minor"]},E:{snippet:"e",shortDescription:"",aliases:["emajor","c#minor"]},B:{snippet:"b",shortDescription:"",aliases:["bmajor","g#minor"]},FSharp:{snippet:"f#",shortDescription:"",aliases:["f#major","d#minor","f#"]},CSharp:{snippet:"c#",shortDescription:"",aliases:["c#major","a#minor","c#"]}},KeySignatureType:{Major:{snippet:"major",shortDescription:"",aliases:["cb","cbmajor","gb","gbmajor","db","dbmajor","ab","abmajor","eb","ebmajor","bb","bbmajor","f","fmajor","c","cmajor","g","gmajor","d","dmajor","a","amajor","e","emajor","b","bmajor","f#","f#major","c#","c#major"]},Minor:{snippet:"minor",shortDescription:"",aliases:["abminor","ebminor","bbminor","fminor","cminor","gminor","dminor","aminor","eminor","bminor","f#minor","c#minor","g#minor","d#minor","a#minor"]}},Clef:{Neutral:{snippet:"neutral",shortDescription:"",aliases:["n"],allowNumeric:!0},C3:{snippet:"c3",shortDescription:"",aliases:["alto"],allowNumeric:!0},C4:{snippet:"c4",shortDescription:"",aliases:["tenor"],allowNumeric:!0},F4:{snippet:"f4",shortDescription:"",aliases:["bass"],allowNumeric:!0},G2:{snippet:"g2",shortDescription:"",aliases:["treble"],allowNumeric:!0}},TripletFeel:{NoTripletFeel:{snippet:"none",shortDescription:"No triplet feel",aliases:["none","no","noTripletFeel"],allowNumeric:!0},Triplet16th:{snippet:"triplet16th",shortDescription:"Triplet 16th",aliases:["t16","triplet-16th"],allowNumeric:!0},Triplet8th:{snippet:"triplet8th",shortDescription:"Triplet 8th",aliases:["t8","triplet-8th"],allowNumeric:!0},Dotted16th:{snippet:"dotted16th",shortDescription:"Dotted 16th",aliases:["d16","dotted-16th"],allowNumeric:!0},Dotted8th:{snippet:"dotted8th",shortDescription:"Dotted 8th",aliases:["d8","dotted-8th"],allowNumeric:!0},Scottish16th:{snippet:"scottish16th",shortDescription:"Scottish 16th",aliases:["s16","scottish-16th"],allowNumeric:!0},Scottish8th:{snippet:"scottish8th",shortDescription:"Scottish 8th",aliases:["s8","scottish-8th"],allowNumeric:!0}},BarLineStyle:{Automatic:{snippet:"automatic",shortDescription:"Auto detect line to show"},Dashed:{snippet:"dashed",shortDescription:""},Dotted:{snippet:"dotted",shortDescription:""},Heavy:{snippet:"heavy",shortDescription:""},HeavyHeavy:{snippet:"heavyHeavy",shortDescription:""},HeavyLight:{snippet:"heavyLight",shortDescription:""},LightHeavy:{snippet:"lightHeavy",shortDescription:""},LightLight:{snippet:"lightLight",shortDescription:""},None:{snippet:"none",shortDescription:""},Regular:{snippet:"regular",shortDescription:""},Short:{snippet:"short",shortDescription:""},Tick:{snippet:"tick",shortDescription:""}},SimileMark:{None:{snippet:"none",shortDescription:"No simile mark is applied",deprecated:"Do not apply a `\\simile` if there is none."},Simple:{snippet:"simple",shortDescription:"A simple simile mark. The previous bar is repeated."},FirstOfDouble:{snippet:"firstOfDouble",shortDescription:"A double simile mark. This value is assigned to the first bar of the 2 repeat bars."},SecondOfDouble:{snippet:"secondOfDouble",shortDescription:"A double simile mark. This value is assigned to the second bar of the 2 repeat bars."}},Direction:{TargetFine:{snippet:"fine",shortDescription:"Fine (Target)"},TargetSegno:{snippet:"segno",shortDescription:"Segno (Target)"},TargetSegnoSegno:{snippet:"segnoSegno",shortDescription:"SegnoSegno (Target)"},TargetCoda:{snippet:"coda",shortDescription:"Coda (Target)"},TargetDoubleCoda:{snippet:"doubleCoda",shortDescription:"DoubleCoda (Target)"},JumpDaCapo:{snippet:"daCapo",shortDescription:"DaCapo (Jump)"},JumpDaCapoAlCoda:{snippet:"daCapoAlCoda",shortDescription:"DaCapoAlCoda (Jump)"},JumpDaCapoAlDoubleCoda:{snippet:"daCapoAlDoubleCoda",shortDescription:"DaCapoAlDoubleCoda (Jump)"},JumpDaCapoAlFine:{snippet:"daCapoAlFine",shortDescription:"DaCapoAlFine (Jump)"},JumpDalSegno:{snippet:"dalSegno",shortDescription:"DalSegno (Jump)"},JumpDalSegnoAlCoda:{snippet:"dalSegnoAlCoda",shortDescription:"DalSegnoAlCoda (Jump)"},JumpDalSegnoAlDoubleCoda:{snippet:"dalSegnoAlDoubleCoda",shortDescription:"DalSegnoAlDoubleCoda (Jump)"},JumpDalSegnoAlFine:{snippet:"dalSegnoAlFine",shortDescription:"DalSegnoAlFine (Jump)"},JumpDalSegnoSegno:{snippet:"dalSegnoSegno",shortDescription:"DalSegnoSegno (Jump)"},JumpDalSegnoSegnoAlCoda:{snippet:"dalSegnoSegnoAlCoda",shortDescription:"DalSegnoSegnoAlCoda (Jump)"},JumpDalSegnoSegnoAlDoubleCoda:{snippet:"dalSegnoSegnoAlDoubleCoda",shortDescription:"DalSegnoSegnoAlDoubleCoda (Jump)"},JumpDalSegnoSegnoAlFine:{snippet:"dalSegnoSegnoAlFine",shortDescription:"DalSegnoSegnoAlFine (Jump)"},JumpDaCoda:{snippet:"daCoda",shortDescription:"DaCoda (Jump)"},JumpDaDoubleCoda:{snippet:"daDoubleCoda",shortDescription:"DaDoubleCoda (Jump)"}}};function w(t){const n=b[t],s=Object.values(n).some(e=>e?.allowNumeric);return{type:s?[e.importer.alphaTex.AlphaTexNodeType.Ident,e.importer.alphaTex.AlphaTexNodeType.Number]:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,values:[...Object.values(n).filter(e=>null!==e).map(e=>({name:e.snippet,snippet:e.snippet,shortDescription:e.shortDescription,deprecated:e.deprecated,longDescription:e.longDescription,skip:e.skip})),...Object.values(n).filter(e=>null!==e&&e.aliases).flatMap(e=>e.aliases.map(t=>({name:t,snippet:t,shortDescription:e.shortDescription,deprecated:e.deprecated,longDescription:e.longDescription,skip:e.skip})))]}}const v={tag:"\\accidentals",snippet:"\\accidentals $1 $0",shortDescription:"Changes the mode how accidentals are treated",longDescription:"\n Changes the mode how alphaTab should treat accidentals when writing pitched notes.\n\n alphaTab can use the accidentals as specified in alphaTex, or apply accidentals automatically based on the note pitch.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode which should be active",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("AlphaTexAccidentalMode")}]}],examples:"\n \\accidentals explicit\n C#4 C4 Eb4 Ax4 |\n \\accidentals auto\n C#4 C4 Eb4 Ax4 |\n "},T={tag:"\\ae",snippet:"\\ae $1 $0",shortDescription:"Specify the alternate ending repeats.",longDescription:"Specifies on which repeats a bar should be played (to build alternate endings).",signatures:[{parameters:[{name:"ending",shortDescription:"The repeats on which the bar should be played",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\ro 1.3 2.3 3.3 4.3 | \\ae (1 2 3) 5.3 6.3 7.3 8.3 | \\ae 4 \rc 4 5.3 8.3 7.3 6.3\n "},k={tag:"\\barlineLeft",snippet:"\\barlineLeft $1 $0",shortDescription:"The lines style shown left on the bar.",longDescription:"\n Adjusts the lines which will be shown left on the bar.\n\n For some special notation needs, the default bar line can be adjusted on every bar. The bar line styles are aligned with the ones from [MusicXML](https://www.w3.org/2021/06/musicxml40/musicxml-reference/data-types/bar-style/).\n\n alphaTab attempts to reuse lines on overlapping styles across bars.\n ",signatures:[{parameters:[{name:"style",shortDescription:"The line style to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BarLineStyle")}]}],examples:'\n \\instrument piano\n \\track "Overlapping"\n \\staff \n \\barlineleft dashed \n \\barlineright dotted \n | \n \\barlineleft heavyheavy\n \\barlineright heavyheavy\n \n \\staff \n \\barlineleft lightlight \n \\barlineright lightheavy \n | \n \\barlineleft heavylight\n \\barlineright dashed\n \\track "All Styles"\n \\staff \n \\barlineright dashed |\n \\barlineright dotted |\n \\barlineright heavy |\n \\barlineright heavyHeavy |\n \\barlineright heavyLight |\n \\barlineright lightHeavy |\n \\barlineright lightlight |\n \\barlineright none |\n \\barlineright regular |\n \\barlineright short |\n \\barlineright tick |\n '},x={tag:"\\barlineRight",snippet:"\\barlineRight $1 $0",shortDescription:"The lines style shown right on the bar.",longDescription:"\n Adjusts the lines which will be shown right on the bar.\n\n For some special notation needs, the default bar line can be adjusted on every bar. The bar line styles are aligned with the ones from [MusicXML](https://www.w3.org/2021/06/musicxml40/musicxml-reference/data-types/bar-style/).\n\n alphaTab attempts to reuse lines on overlapping styles across bars.\n ",signatures:[{parameters:[{name:"style",shortDescription:"The line style to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BarLineStyle")}]}],examples:'\n \\instrument piano\n \\track "Overlapping"\n \\staff \n \\barlineleft dashed \n \\barlineright dotted \n | \n \\barlineleft heavyheavy\n \\barlineright heavyheavy\n \n \\staff \n \\barlineleft lightlight \n \\barlineright lightheavy \n | \n \\barlineleft heavylight\n \\barlineright dashed\n \\track "All Styles"\n \\staff \n \\barlineright dashed |\n \\barlineright dotted |\n \\barlineright heavy |\n \\barlineright heavyHeavy |\n \\barlineright heavyLight |\n \\barlineright lightHeavy |\n \\barlineright lightlight |\n \\barlineright none |\n \\barlineright regular |\n \\barlineright short |\n \\barlineright tick |\n '},C={tag:"\\clef",snippet:"\\clef $1 $0",shortDescription:"Set the clef.",longDescription:"Changes the clef for this and subsequent bars.",signatures:[{parameters:[{name:"clef",shortDescription:"The clef",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Clef")}]}],examples:"\n \\clef G2 | \\clef F4 | \\clef C3 | \\clef C4 | \\clef N |\n \\clef Treble | \\clef Bass | \\clef Tenor | \\clef Alto | \\clef Neutral |\n "},S={tag:"\\ft",snippet:"\\ft $0",shortDescription:"Marks the bar as a free-time bar",longDescription:"\n Marks the bar as a free-time bar where players are free to vary the timing.\n ",signatures:[{parameters:[]}],examples:"\n :2 \n C4*2 |\n \\ft C4*2 |\n \\ft C4*2 |\n C4*2 |\n "},A={tag:"\\jump",snippet:"\\jump $1 $0",shortDescription:"Adds a direction/jump instruction to the bar.",signatures:[{parameters:[{name:"direction",shortDescription:"The direction to add",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Direction")}]}],examples:"\n \\ro \\rc 2 3.3*4 | \n 3.3*4 | \n \\jump Segno 3.3*4 |\n \\ro \rc 2 3.3*4 | \n \\jump DaCoda 3.3*4 |\n 3.3*4 | 3.3*4\n \\jump DalSegnoAlCoda 3.3*4 |\n 3.3*4 |\n \\jump Coda 3.3*4 |\n 3.3*4 |\n 3.3*4\n "},M={tag:"\\ks",snippet:"\\ks $1 $0",shortDescription:"Set the key signature",longDescription:"Specifies the key signature for this and subsequent bars.",signatures:[{parameters:[{name:"key",shortDescription:"The key signature",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("KeySignature")}]}],examples:"\n \\ks Cb | \\ks C | \\ks C# |\n \\ks Aminor | \\ks Dmajor | \\ks Bminor\n "},$={tag:"\\ottava",snippet:"\\ottava $1 $0",shortDescription:"Set the clef ottava.",longDescription:"Changes the clef ottave for this and subsequent bars.",signatures:[{parameters:[{name:"ottava",shortDescription:"The clef ottava",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Ottavia")}]}],examples:"\n \\clef F4 \\ottava 15ma | | \\ottava regular | | \\clef C3 \\ottava 8vb | |\n "},F={tag:"\\rc",snippet:"\\rc ${1:2} $0",shortDescription:"End a repeat ",longDescription:"Marks the end of a repeat.",signatures:[{parameters:[{name:"repeats",shortDescription:"The number of repeats which should be played",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\ro 1.3 2.3 3.3 4.3 | 5.3 6.3 7.3 8.3 | \\rc 2 1.3 2.3 3.3 4.3 |\n \\ro \\rc 3 1.3 2.3 3.3 4.3\n "},B={tag:"\\ro",snippet:"\\ro $0",shortDescription:"Start a repeat",signatures:[{parameters:[]}],examples:"\n \\ro 1.3 2.3 3.3 4.3 | 5.3 6.3 7.3 8.3 | \\rc 2 1.3 2.3 3.3 4.3 |\n \\ro \\rc 3 1.3 2.3 3.3 4.3\n "},H={tag:"\\scale",snippet:"\\scale $1 $0",shortDescription:"Adjusts the relative scale of the bar",longDescription:"Adjusts the relative scale of the bar when using `systemsLayoutMode: 'UseModelLayout'` with the page layout.",signatures:[{parameters:[{name:"scale",shortDescription:"The scale of the bar within the system",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:"\n \\track { defaultSystemsLayout 3 }\n \\scale 0.25 :1 c4 | \\scale 0.5 c4 | \\scale 0.25 c4 | \n \\scale 0.5 c4 | \\scale 2 c4 | \\scale 0.5 c4 |\n c4 | c4\n "}},P={tag:"\\section",snippet:'\\section "$1" $0',shortDescription:"Starts a new section",signatures:[{parameters:[{name:"text",shortDescription:"The text/description of the new section",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"marker",shortDescription:"The marker for the section, typically a single letter",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"text",shortDescription:"The text/description of the new section",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,reservedIdentifiers:["x","-","r"]}]}],examples:'\n \\section "Intro" // simple section\n 1.1 1.1 1.1 1.1 | 1.1 1.1 1.1 1.1 |\n \\section "S" "Solo" // with marker and section name differently\n 1.1 1.1 1.1 1.1\n '},E={tag:"\\simile",snippet:"\\simile $1 $0",shortDescription:"Adds a simile mark to the bar.",longDescription:"Adds a simile mark to the bar indicating that the content of the last, or previous two bars should be repeated.",signatures:[{parameters:[{name:"mark",shortDescription:"The mark to add",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("SimileMark")}]}],examples:"\n 3.3*4 | \\simile simple | 3.3*4 | 4.3*4 | \\simile firstofdouble | \\simile secondofdouble\n "},N={tag:"\\spd",snippet:"\\spd $1 $0",shortDescription:"Add a sustain pedal down press",longDescription:"\n Specifies how the sustain petal should be pressed down (`spd`), held (`sph`) or lifted up (`spu`).\n\n This tag allows specifying the sustain pedal relative to the bar. The sustain pedal can also be applied via beat properties.\n ",signatures:[{parameters:[{name:"position",shortDescription:"The relative position within the bar for the marker (0-1)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\spd 0\n \\spu 0.25\n \\spd 0.5\n \\sph 0.75\n \\spu 1\n :8 C4 * 8\n "},L={tag:"\\sph",snippet:"\\sph $1 $0",shortDescription:"Add a sustain pedal hold",longDescription:"\n Specifies how the sustain petal should be pressed down (`spd`), held (`sph`) or lifted up (`spu`).\n\n This tag allows specifying the sustain pedal relative to the bar. The sustain pedal can also be applied via beat properties.\n ",signatures:[{parameters:[{name:"position",shortDescription:"The relative position within the bar for the marker (0-1)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\spd 0\n \\spu 0.25\n \\spd 0.5\n \\sph 0.75\n \\spu 1\n :8 C4 * 8\n "},O={tag:"\\spu",snippet:"\\spu $1 $0",shortDescription:"Add a sustain pedal lift up",longDescription:"\n Specifies how the sustain petal should be pressed down (`spd`), held (`sph`) or lifted up (`spu`).\n\n This tag allows specifying the sustain pedal relative to the bar. The sustain pedal can also be applied via beat properties.\n ",signatures:[{parameters:[{name:"position",shortDescription:"The relative position within the bar for the marker (0-1)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\spd 0\n \\spu 0.25\n \\spd 0.5\n \\sph 0.75\n \\spu 1\n :8 C4 * 8\n "},I={tag:"\\sync",snippet:"\\tempo ($1 $2 $3) $0",shortDescription:"Adds a sync point to the data model.",longDescription:"\n Adds a new sync point for synchronizing the music sheet with an external media source like a backing track or video player.\n\n alphaTex support specifying sync points for the [synchronization with external media](https://alphatab.net/docs/guides/audio-video-sync).\n\n It is recommended to add the sync points at the very end of the song but it is also possible to define them inbetween.\n\n The `barIndex`, `occurence`, `ratioPosition` parameters define the absolute position within the music sheet. The millisecondOffset defines the absolute position within the external media.\n\n With this information known, alphaTab can synchronize the external media with the music sheet.\n ",signatures:[{parameters:[{name:"barIndex",shortDescription:"The index of the bar being synced",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"occurence",shortDescription:"The occurence of the bar for which this sync point applies (on repeats)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"millisecondOffset",shortDescription:"The absolute millisecond offset within the external media",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"ratioPosition",shortDescription:"The relative position within the bar where the synchronization happens",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat,defaultValue:"0",type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:{websiteMdx:["import { AlphaTexSyncPointSample } from '@site/src/components/AlphaTexSyncPointSample';","","<AlphaTexSyncPointSample />"].join("\n"),tex:'\n \\title "Prelude in D Minor"\n \\artist "J.S. Bach (1685-1750)"\n \\copyright "Public Domain"\n \\tempo 80\n\n \\ts 3 4\n 0.4.16 (3.2 -.4) (1.1 -.4) (5.1 -.4) 1.1 3.2 1.1 3.2 2.3.8 (3.2 3.4) |\n (3.2 0.4).16 (3.2 -.4) (1.1 -.4) (5.1 -.4) 1.1 3.2 1.1 3.2 2.3.8 (3.2 3.4) | \n (3.2 0.4).16 (3.2 -.4) (3.1 -.4) (6.1 -.4) 3.1 3.2 3.1 3.2 3.3.8 (3.2 0.3) | \n (3.2 0.4).16 (3.2 -.4) (3.1 -.4) (6.1 -.4) 3.1 3.2 3.1 3.2 3.3.8 (3.2 0.3) |\n \n \\sync 0 0 0\n \\sync 0 0 1500 0.666\n \\sync 1 0 4075 0.666\n \\sync 2 0 6475 0.333\n \\sync 3 0 10223 1\n '}},j={tag:"\\tempo",snippet:"\\tempo $1 $0",shortDescription:"Add a tempo change to the bar.",longDescription:"\n Adds a tempo change to the bar.\n\n A bar can have multiple tempo changes. They can either be relatively positioned using this metadata tag or applied via the `tempo` property as beat effect.\n\n Tempo changes affect the whole song and not only an individual track. To avoid unexpected side effects, we recomment to specify the tempo changes only once on the first track/staff.\n ",signatures:[{parameters:[{name:"tempo",shortDescription:"The new tempo in BPM",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat},{name:"label",shortDescription:"A textual label for the tempo",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:'""'}]},{strict:!0,parameters:[{name:"tempo",shortDescription:"The new tempo in BPM",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat},{name:"label",shortDescription:"A textual label for the tempo",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,defaultValue:'""'},{name:"position",shortDescription:"A relative (ratio) position where within the bar the tempo change should happen",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"0",type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"hide",shortDescription:"If specified the tempo change is not visually shown",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,values:[{name:"hide",shortDescription:"If specified the tempo change is not visually shown",snippet:"hide"}]}]}],examples:'\n \\tempo 30\n C4 D4 E4 F4 |\n \\tempo (120 "Moderate")\n \\tempo (60 "" 0.5 hide)\n C4 D4 E4 F4 |\n '},G={tag:"\\tf",snippet:"\\tf $1 $0",shortDescription:"Set the triplet feel (swing)",longDescription:"Changes the triplet feel (aka. swing) play style.",signatures:[{parameters:[{name:"tripletFeel",shortDescription:"The triplet feel style",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TripletFeel")}]}],examples:"\n \\tf none 3.3*4 |\n \\tf triplet16th 3.3*4 | \\tf triplet8th 3.3*4 |\n \\tf dotted16th 3.3*4 | \\tf dotted8th 3.3*4 |\n \\tf scottish16th 3.3*4 | \\tf scottish8th 3.3*4 |\n "},R={tag:"\\ts",snippet:"\\ts ($1 $2) $0",shortDescription:"Set the time signature",longDescription:"\n Defines the time signature for this and subsequent bars.\n\n AlphaTab does not yet support polytempo notation where instruments might use different time signatures. Therefore be sure to only specify the timesignatures once as part of the first track/staff or ensure they are consistent across the whole document.\n ",signatures:[{description:"Specifies a common (4/4) time signature using the special C symbol",parameters:[{name:"common",shortDescription:"",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,allowAllStringTypes:!0,values:[{name:"common",shortDescription:"Specifies a common (4/4) time signature using the special C symbol",snippet:"common"}]}]},{parameters:[{name:"numerator",shortDescription:"The time signature numerator",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"denominator",shortDescription:"The time signature denominator",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\ts 3 4 | \\ts 4 4 | \\ts 6 8 | \\ts common\n "},V={tag:"\\width",snippet:"\\width $1 $0",shortDescription:"Adjusts the absolute of the bar",longDescription:"Adjusts the absolute of the bar when using `systemsLayoutMode: 'UseModelLayout'` with the horizontal layout.",signatures:[{parameters:[{name:"width",shortDescription:"The absolute width of the bar",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat}]}],examples:{options:{display:{layoutMode:"Horizontal",systemsLayoutMode:"UseModelLayout"}},tex:"\n \\track\n \\width 100 :1 c4 | \\width 300 c4 | \\width 350 c4\n "}},K=[{parameters:[{name:"value",shortDescription:"The value to set",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"template",shortDescription:"The template used to render the text",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional},{name:"textAlign",shortDescription:"The alignment of the text on the music sheet",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,...w("TextAlign")}]}],W=[{parameters:[{name:"template",shortDescription:"The template used to render the text",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"textAlign",shortDescription:"The alignment of the text on the music sheet",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,...w("TextAlign")}]}],J={tag:"\\title",snippet:'\\title "$1"$0',shortDescription:"Set the title of the song.",signatures:K,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n C4\n '},z={tag:"\\album",snippet:'\\album "$1"$0',shortDescription:"Set the album of the song.",signatures:K,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n \\album "alphaTab vol.1"\n C4\n '},q={tag:"\\artist",snippet:'\\artist "$1"$0',shortDescription:"Set the artist of the song.",signatures:K,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n \\artist "alphaTab"\n C4\n '},U={tag:"\\bracketExtendMode",snippet:"\\bracketExtendMode ${1:groupStaves}$0",shortDescription:"Set the mode for brackets and braces.",longDescription:"Set the mode for [brackets and braces](https://alphatab.net/docs/showcase/general#brackets-and-braces).",signatures:[{parameters:[{name:"mode",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,shortDescription:"The mode to use",...w("BracketExtendMode")}]}],examples:'\n \\bracketextendmode GroupSimilarInstruments\n \\track "Piano1"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\staff {score}\n \\clef f4 C3 D3 E3 F3\n \\track "Piano2"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\track "Flute 1"\n \\staff { score }\n \\instrument flute\n C4 D4 E4 F4\n \\track "Flute 2"\n \\staff { score }\n \\instrument flute\n \\clef f4 C3 D3 E3 F3\n \\track "Guitar 1"\n \\staff { score tabs }\n 0.3.4 2.3.4 5.3.4 7.3.4\n '},Z={tag:"\\copyright",snippet:'\\copyright "$1"$0',shortDescription:"Set the copyright owner of the song.",signatures:K,examples:'\n \\copyright "CoderLine"\n C4\n '},Q={tag:"\\copyright2",snippet:'\\copyright2 ("${1:All Rights Reserved - International Copyright Secured}" ${2:center})$0',shortDescription:"Sets the template and text align for the second copyright line.",longDescription:'Sets the template and text align for the second copyright line.\n \n There is no own "value" as it is typically used to just define a static text like "All rights reserved". The "template" can be used for defining the display.',signatures:W,examples:'\n \\copyright "CoderLine"\n \\copyright2 "All rights reserved"\n C4\n '},_={tag:"\\defaultSystemsLayout",snippet:"\\defaultSystemsLayout ${1:3}$0",shortDescription:"Set the default number of bars per system.",longDescription:"\n Defines the default number of bars to display per system when rendering multiple tracks.\n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net/docs/reference/settings/display/systemslayoutmode).\n ",signatures:[{parameters:[{name:"numberOfBars",shortDescription:"The number of bars the system should contain.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:"\n \\defaultSystemsLayout 2\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n "}},X={tag:"\\firstSystemTrackNameMode",snippet:"\\firstSystemTrackNameMode ${1:shortName}$0",shortDescription:"The text how to show as track names",longDescription:"\n Configures the text how to show as [track names](https://alphatab.net/docs/showcase/general#track-names) on the first system.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameMode")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},Y={tag:"\\firstSystemTrackNameOrientation",snippet:"\\firstSystemTrackNameOrientation ${1:horizontal}$0",shortDescription:"Set the orientation of the track names",longDescription:"\n Configures the orientation of the [track names](https://alphatab.net/docs/showcase/general#track-names) on the first system.\n ",signatures:[{parameters:[{name:"orientation",shortDescription:"The orientation to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameOrientation")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\firstsystemtracknameorientation horizontal\n \\othersystemstracknameorientation vertical\n\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n \\staff {score}\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},ee={tag:"\\hideDynamics",snippet:"\\hideDynamics",shortDescription:"Disables the display of dynamics.",signatures:[{parameters:[]}],examples:"\n \\hideDynamics\n C4 {dy FFF} D4\n E4 {dy PP} F4\n "},te={tag:"\\instructions",snippet:'\\instructions "$1"$0',shortDescription:"Sets additional textual instructions for the song (not displayed).",signatures:[{parameters:[{name:"value",shortDescription:"The value to set",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\instructions "Practice this piece until you get it perfect."\n C4\n '},ne={tag:"\\multiBarRest",snippet:"\\multiBarRest",shortDescription:"Show multibar rests when rendering multiple tracks.",signatures:[{parameters:[]}],examples:'\n \\title "Multi Track"\n \\multiBarRest\n \\track "Piano 1" "pno1"\n \\staff {score}\n C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | C4\n \n \\track "Piano 2" "pno1"\n \\staff {score}\n C4 D4 E4 F4 | r | r | C4 D4 E4 F4 | r | r | r | r |\n '},se={tag:"\\multiTrackTrackNamePolicy",snippet:"\\multiTrackTrackNamePolicy ${1:firstSystem}$0",shortDescription:"Sets the track name visibility when rendering multiple tracks.",longDescription:"\n Configures on which systems to show the [track names](https://alphatab.net/docs/showcase/general#track-names) when multiple tracks are rendered.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNamePolicy")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},ie={tag:"\\music",snippet:'\\music "$1"$0',shortDescription:"Set the music author of the song.",signatures:K,examples:'\n \\music "CoderLine and Contributors"\n C4\n '},ae={tag:"\\notices",snippet:'\\notices "$1"$0',shortDescription:"Sets general notices for the song (not displayed).",signatures:[{parameters:[{name:"value",shortDescription:"The value to set",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\notices "I hope you appreciate this music sheet, it was a lot of effort to create!"\n C4\n '},re={tag:"\\otherSystemsTrackNameMode",snippet:"\\otherSystemsTrackNameMode ${1:shortName}$0",shortDescription:"Which track names to show for systems after the first one.",longDescription:"\n Configures the text how to show as [track names](https://alphatab.net/docs/showcase/general#track-names) on the second and subsequent systems.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameMode")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},oe={tag:"\\otherSystemsTrackNameOrientation",snippet:"\\otherSystemsTrackNameOrientation ${1:vertical}$0",shortDescription:"The orientation of track names to show for systems after the first one.",longDescription:"\n Configures the orientation of the [track names](https://alphatab.net/docs/showcase/general#track-names) on the second and subsequent systems.\n ",signatures:[{parameters:[{name:"orientation",shortDescription:"The orientation to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNameOrientation")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\firstsystemtracknamemode fullname\n \\othersystemstracknamemode shortname\n \\firstsystemtracknameorientation horizontal\n \\othersystemstracknameorientation vertical\n\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n \\staff {score}\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},pe={tag:"\\showDynamics",snippet:"\\showDynamics",shortDescription:"Enables the display of dynamics.",signatures:[{parameters:[]}],examples:"\n \\showDynamics\n C4 {dy FFF} D4\n E4 {dy PP} F4\n "},le={tag:"\\singleTrackTrackNamePolicy",snippet:"\\singleTrackTrackNamePolicy ${1:firstSystem}$0",shortDescription:"Sets the track name visibility when rendering single tracks.",longDescription:"\n Configures on which systems to show the [track names](https://alphatab.net/docs/showcase/general#track-names) when only a single track is rendered.\n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode to use",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("TrackNamePolicy")}]}],examples:'\n \\singletracktracknamepolicy AllSystems\n \\track "Piano 1" "pno1" { defaultsystemslayout 3 }\n C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 | C4 D4 E4 F4 |\n '},ce={tag:"\\subtitle",snippet:'\\subtitle "$1"$0',shortDescription:"Set the subtitle of the song.",signatures:K,examples:'\n \\title ("Song Title" "Title: %TITLE%" left)\n \\subtitle ("Subtitle" "[%SUBTITLE%]" left)\n C4\n '},he={tag:"\\systemsLayout",snippet:"\\systemsLayout (${1:3})$0",shortDescription:"Set the number of bars for every system.",longDescription:"\n Defines the number of bars to display per system when rendering multiple tracks.\n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net/docs/reference/settings/display/systemslayoutmode).\n ",signatures:[{parameters:[{name:"numberOfBars",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number,shortDescription:"Defines for every system (line) the number of bars it should contain"}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:"\n \\systemsLayout (2 3 2)\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n \\track \n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n "}},de={tag:"\\tab",snippet:'\\tab "$1"$0',shortDescription:"Set the transcriber of the music sheet.",signatures:K,examples:'\n \\tab "Transcribed by me"\n C4\n '},me={tag:"\\useSystemSignSeparator",snippet:"\\useSystemSignSeparator",shortDescription:"Show the system separator when rendering multiple tracks",longDescription:"Configures whether a system sign separator should be added (in case multiple tracks are shown).",signatures:[{parameters:[]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:'\n \\useSystemSignSeparator\n \\defaultSystemsLayout 2\n \\track "T1"\n :1 C4 | C4 | C4\n \\track "T2"\n :1 C4 | C4 | C4\n '}},ue={tag:"\\words",snippet:'\\words "$1"$0',shortDescription:"Set the lyrics author of the song.",signatures:K,examples:'\n \\words "CoderLine"\n C4\n '},fe={tag:"\\wordsAndMusic",snippet:'\\wordsAndMusic ("${1:Words & Music by %MUSIC%}" ${2:left})$0',shortDescription:"Sets the template and text align for combined words and music authors.",signatures:W,examples:'\n \\words "CoderLine"\n \\music "CoderLine"\n \\wordsAndMusic ("Words & Music: %WORDS%")\n C4\n '},ge=["| Number | Name Long | Name Short |","|--------|-----------|------------|",...[["Ride (choke)",29],["Cymbal (hit)",30],["Snare (side stick)",31],["Snare (side stick) 2",33],["Snare (hit)",34],["Kick (hit)",35],["Kick (hit) 2",36],["Snare (side stick) 3",37],["Snare (hit) 2",38],["Hand Clap (hit)",39],["Snare (hit) 3",40],["Low Floor Tom (hit)",41],["Hi-Hat (closed)",42],["Very Low Tom (hit)",43],["Pedal Hi-Hat (hit)",44],["Low Tom (hit)",45],["Hi-Hat (open)",46],["Mid Tom (hit)",47],["High Tom (hit)",48],["Crash high (hit)",49],["High Floor Tom (hit)",50],["Ride (middle)",51],["China (hit)",52],["Ride (bell)",53],["Tambourine (hit)",54],["Splash (hit)",55],["Cowbell medium (hit)",56],["Crash medium (hit)",57],["Vibraslap (hit)",58],["Ride (edge)",59],["Hand (hit)",60],["Hand (hit)",61],["Conga high (mute)",62],["Conga high (hit)",63],["Conga low (hit)",64],["Timbale high (hit)",65],["Timbale low (hit)",66],["Agogo high (hit)",67],["Agogo tow (hit)",68],["Cabasa (hit)",69],["Left Maraca (hit)",70],["Whistle high (hit)",71],["Whistle low (hit)",72],["Guiro (hit)",73],["Guiro (scrap-return)",74],["Claves (hit)",75],["Woodblock high (hit)",76],["Woodblock low (hit)",77],["Cuica (mute)",78],["Cuica (open)",79],["Triangle (rnute)",80],["Triangle (hit)",81],["Shaker (hit)",82],["Tinkle Bell (hat)",83],["Jingle Bell (hit)",83],["Bell Tree (hit)",84],["Castanets (hit)",85],["Surdo (hit)",86],["Surdo (mute)",87],["Snare (rim shot)",91],["Hi-Hat (half)",92],["Ride (edge) 2",93],["Ride (choke) 2",94],["Splash (choke)",95],["China (choke)",96],["Crash high (choke)",97],["Crash medium (choke)",98],["Cowbell low (hit)",99],["Cowbell low (tip)",100],["Cowbell medium (tip)",101],["Cowbell high (hit)",102],["Cowbell high (tip)",103],["Hand (mute)",104],["Hand (slap)",105],["Hand (mute) 2",106],["Hand (slap) 2",107],["Conga low (slap)",108],["Conga low (mute)",109],["Conga high (slap)",110],["Tambourine (return)",111],["Tambourine (roll)",112],["Tambourine (hand)",113],["Grancassa (hit)",114],["Piatti (hat)",115],["Piatti (hand)",116],["Cabasa (return)",117],["Left Maraca (return)",118],["Right Maraca (hit)",119],["Right Maraca (return)",120],["Shaker (return)",122],["Bell Tee (return)",123],["Golpe (thumb)",124],["Golpe (finger)",125],["Ride (middle) 2",126],["Ride (bell) 2",127]].map(e=>`| \`${e[1]}\` | \`${e[0]}\` | \`${e[0].replace(/[^a-zA-Z0-9]/g,"")}\` |`)],ye={tag:"\\articulation",snippet:"\\articulation $1$0",shortDescription:"Define percussion articulations",longDescription:`\n Defines the articulations available to write percussion and drum tabs.\n\n Currently alphaTex does not defining completely custom articulations (note heads, staff line, technical symbols etc.).\n\n ${ge.map(e=>` ${e}`).join("\n")}\n `,signatures:[{description:"Registers all standard articulation names",parameters:[{name:"defaults",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,shortDescription:"",values:[{name:"defaults",shortDescription:"",snippet:"defaults"}]}]},{parameters:[{name:"name",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,shortDescription:"The string used in the note values"},{name:"value",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,shortDescription:"The numeric value of the built-in articulation"}]}],examples:'\n \\track "Drums"\n \\instrument percussion\n \\tempo 120\n \\clef neutral\n \\articulation defaults\n (KickHit RideBell).16 r KickHit KickHit (KickHit RideBell).16 r KickHit KickHit (KickHit RideBell).16 r KickHit KickHit (KickHit RideBell).16 r KickHit KickHit |\n (KickHit HiHatOpen) KickHit KickHit KickHit (KickHit HiHatOpen) KickHit KickHit KickHit (KickHit SnareHit HiHatOpen) KickHit KickHit.32 KickHit KickHit.16 (KickHit HiHatOpen) KickHit KickHit KickHit |\n (KickHit HiHatOpen).8{tu 3} KickHit{tu 3} KickHit{tu 3} (KickHit SnareHit HiHatOpen){tu 3} KickHit.16{tu 3} KickHit{tu 3} KickHit.8{tu 3} (KickHit HiHatOpen).8{tu 3} KickHit{tu 3} KickHit{tu 3} (KickHit SnareHit HiHatOpen).8{tu 3} KickHit{tu 3} KickHit{tu 3}\n '},De={tag:"\\capo",snippet:"\\capo {$1}$0",shortDescription:"Set the capo fret",longDescription:"Defines the fret on which a capo should be placed.",signatures:[{parameters:[{name:"fret",shortDescription:"The fret on which a capo is placed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\track "Guitar"\n \\staff{tabs} \n \\capo 5\n 1.2 3.2 0.1 1.1\n '};function be(...e){return new Map(e.map(e=>[e.property.toLowerCase(),e]))}function we(...e){return new Map(e.map(e=>[e.tag.toLowerCase(),e]))}const ve={tag:"\\chord",snippet:'\\chord ("{$1}" $2)$0',shortDescription:"Define a new chord",longDescription:"\n Defines a new chord for a chord diagram display defining how to play it.\n\n To avoid inconsistencies with tunings, chords should be defined after the tuning is set.\n\n To use the defined chord the `ch chordName` beat property has to be applied. The notes for the chord still have to be specified separately, the definition in this metadata is purely for the chord diagram.",signatures:[{parameters:[{name:"name",shortDescription:"The name of the chord",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0},{name:"strings",shortDescription:"For every string of the staff tuning, the fret to be played or `x` for strings not played.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:[e.importer.alphaTex.AlphaTexNodeType.Ident,e.importer.alphaTex.AlphaTexNodeType.String,e.importer.alphaTex.AlphaTexNodeType.Number]}]}],examples:'\n \\chord ("C" 0 1 0 2 3 x)\n \\ts 2 4\n (0.1 1.2 0.3 2.4 3.5){ch "C"} (0.1 1.2 0.3 2.4 3.5)\n ',properties:be({property:"firstFret",snippet:"firstFret $0",shortDescription:"Shifts the first fret shown in the diagram higher",signatures:[{parameters:[{name:"fret",shortDescription:"The index of the first fret",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:'\n \\chord ("D#" 6 8 8 8 6 x) {firstfret 6}\n (6.1 8.2 8.3 8.4 6.5){ch "D#"}\n '},{property:"barre",snippet:"barre $0",shortDescription:"Defines on which frets a barré should be played.",longDescription:"Defines on which frets a barré should be played (visually joins the dots to a bar).",signatures:[{parameters:[{name:"fret",shortDescription:"The frets on which a barré should be played",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:'\n \\chord ("D#" 6 8 8 8 6 x) {firstfret 6 barre 6}\n \\chord ("Special" 3 3 3 1 1 1) {showname false barre (1 3)}\n (6.1 8.2 8.3 8.4 6.5){ch "D#"} \n (3.1 3.2 3.3 1.4 1.5 1.6){ch "Special"}\n '},{property:"showDiagram",snippet:"showDiagram",shortDescription:"Set the chord diagram visibility.",signatures:[{parameters:[]},{parameters:[{name:"visibility",shortDescription:"The visibility of the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,values:[{name:"true",snippet:'"true"',shortDescription:"Show the diagram"},{name:"false",snippet:'"false"',shortDescription:"Hide the diagram"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"true",snippet:"true",shortDescription:"Show the diagram"},{name:"false",snippet:"false",shortDescription:"Hide the diagram"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,values:[{name:"1",snippet:"1",shortDescription:"Show the diagram"},{name:"0",snippet:"0",shortDescription:"Hide the diagram"}]}]}],examples:'\n \\chord ("E" 0 0 1 2 2 0) {showdiagram false}\n (0.1 0.2 1.3 2.4 2.5 0.6){ch "E"}\n '},{property:"showFingering",snippet:"showFingering",shortDescription:"Set the finger position visibility.",signatures:[{parameters:[]},{parameters:[{name:"visibility",shortDescription:"The visibility of the finger position",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,values:[{name:"true",snippet:'"true"',shortDescription:"Show the fingering"},{name:"false",snippet:'"false"',shortDescription:"Hide the fingering"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the finger position",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"true",snippet:"true",shortDescription:"Show the fingering"},{name:"false",snippet:"false",shortDescription:"Hide the fingering"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the finger position",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,values:[{name:"1",snippet:"1",shortDescription:"Show the fingering"},{name:"0",snippet:"0",shortDescription:"Hide the fingering"}]}]}],examples:'\n \\chord ("E" 0 0 1 2 2 0) {showfingers false}\n (0.1 0.2 1.3 2.4 2.5 0.6){ch "E"}\n '},{property:"showName",snippet:"showName",shortDescription:"Set the chord name visibility.",signatures:[{parameters:[]},{parameters:[{name:"visibility",shortDescription:"The visibility of the chord name in the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,values:[{name:"true",snippet:'"true"',shortDescription:"Show the chord name"},{name:"false",snippet:'"false"',shortDescription:"Hide the chord name"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the chord name in the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"true",snippet:"true",shortDescription:"Show the chord name"},{name:"false",snippet:"false",shortDescription:"Hide the chord name"}]}]},{parameters:[{name:"visibility",shortDescription:"The visibility of the chord name in the diagram",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number,values:[{name:"1",snippet:"1",shortDescription:"Show the chord name"},{name:"0",snippet:"0",shortDescription:"Hide the chord name"}]}]}],examples:'\n // Hide name\n \\chord ("Special" 3 3 3 1 1 1) {showname false}\n .\n (3.1 3.2 3.3 1.4 1.5 1.6){ch "Special"}\n '})},Te={tag:"\\displayTranspose",snippet:"\\displayTranspose {$1}$0",shortDescription:"Set the transpose for the standard notation display.",longDescription:"\n Defines the number of semitones by which the standard notation should be transposed.\n\n This only affects the display of the notes, not their audio.\n\n It is typically used in situations like for guitars where the standard notation is displayed 1 octave lower to fit better into the standard staff.\n\n It is a common practice to show a standard clef on guitar notes even though they are transposed by 1 octave to better fit into the standard staff lines.\n ",signatures:[{parameters:[{name:"semitones",shortDescription:"The number of semitones by which the notes should be transposed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track \\staff \\instrument piano\n \\displayTranspose -12\n C4.4 D4 E4 F4 | r.1\n "},ke={tag:"\\lyrics",snippet:'\\lyrics "{$1}"$0',shortDescription:"Set the lyrics shown for the current staff.",longDescription:'\n Define the lyrics shown on the beats of the staff.\n\n The lyrics system of alphaTab is borrowed from Guitar Pro. For every track multiple "lines" of lyrics can be defined which can either start at the beginning or at a later bar. The syllables of the provided lyrics are spread automatically across the beats of the track. Syllables are separated with spaces. If multiple words/syllables should stay on the same beat the space can be replaced with a `+`. Comments which should not be displayed can be put `[into brackets]`.\n ',signatures:[{parameters:[{name:"lyrics",shortDescription:"The lyrics text to apply to the beats",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"startBar",shortDescription:"The first bar on which the notes should be applied",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"lyrics",shortDescription:"The lyrics text to apply to the beats",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:['\n \\title "With Lyrics"\n \\instrument piano\n \\lyrics "Do Re Mi Fa So La Ti"\n C4 D4 E4 F4 | G4 A4 B4 r\n ','\n \\title "Combine Syllables (and empty beats)"\n \\instrument piano\n \\lyrics "Do+Do Mi+Mi"\n C4 C4 E4 E4\n ','\n \\title "Start Later"\n \\instrument piano\n \\lyrics 2 "Do Re Mi Fa So La Ti"\n r r r r | r r r r |\n C4 D4 E4 F4 | G4 A4 B4 r\n ','\n \\title "Comment"\n \\subtitle "Useful when loading lyrics from a different source"\n \\instrument piano\n \\lyrics "[This is a comment]Do Re Mi Fa"\n C4 D4 E4 F4 \n ']},xe={tag:"\\transpose",snippet:"\\transpose $1$0",shortDescription:"Set the transpose for the standard notation.",longDescription:"\n Defines the number of semitones by which the standard notation should be transposed.\n\n This affects the display and audio.\n ",signatures:[{parameters:[{name:"semitones",shortDescription:"The number of semitones by which the notes should be transposed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track \\staff \\instrument piano\n \\transpose -12\n C4.4 D4 E4 F4 | r.1\n "},Ce={tag:"\\tuning",snippet:"\\tuning {$1}$0",shortDescription:"Set the string tuning for the staff.",longDescription:"Defines the number of strings and their tuning for stringed (and fretted) instruments.",signatures:[{parameters:[{name:"mode",shortDescription:"A built-in standard mode for tunings",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,values:[{name:"piano",snippet:"piano",shortDescription:"Indicates that this staff is NOT stringed, but a piano with pitched notes."},{name:"none",snippet:"none",shortDescription:"Indicates that this staff is NOT stringed and has no tuning and uses pitched notes."},{name:"voice",snippet:"voice",shortDescription:"Indicates that this staff is NOT stringed, but a vocal voice with pitched notes."}]}]},{parameters:[{name:"strings",shortDescription:"The tuning values as pitched notes",longDescription:"The tuning values as [pitched notes](https://alphatab.net/docs/alphatex/document-structure#pitched-notes)",type:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis}]}],examples:'\n \\track "Track 1"\n \\staff {tabs}\n \\tuning (A1 D2 A2 D3 G3 B3 E4) { hide label "Special Guitar Tuning" }\n 4.1 3.1 2.1 1.1\n \\track "Track 2"\n \\tuning piano\n C4 D4 E4 F4\n ',properties:be({property:"hide",snippet:"hide",shortDescription:"Hides the tuning from being displayed above the first staff.",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {tabs}\n \\tuning (E4 B3 G3 D3 A2 D2)\n 4.1 3.1 2.1 1.1 \n \\track\n \\staff {tabs}\n \\tuning (F2 C2 G1 D1) { hide}\n 4.1 3.1 2.1 1.1\n "},{property:"label",snippet:'label "$1"$0',shortDescription:"Defines the textual label for the tuning.",signatures:[{parameters:[{name:"text",shortDescription:"The label to set.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String}]}],examples:'\n \\track\n \\staff {tabs}\n \\tuning (E4 B3 G3 D3 A2 D2) { label "Dropped D Tuning" }\n 4.1 3.1 2.1 1.1\n '})},Se={tag:"\\staff",snippet:"\\staff {$1}$0",shortDescription:"Start a new staff",longDescription:"Marks the start of a new staff.\n \n The staff with the largest number of bars defines how long the overall song is. There is no need to manually ensure that all staves have the correct number of bars. AlphaTab will create missing empty bars automatically.\n \n If no properties describing the visible notation are provided, the default is `score tabs`.\n ",signatures:[{parameters:[]}],examples:'\n \\track "Piano with Grand Staff" "pno."\n \\staff{score} \\tuning piano \\instrument acousticgrandpiano\n c4 d4 e4 f4 |\n \\staff{score} \\tuning piano \\clef F4\n c2 c2 c2 c2 |\n \\track "Guitar"\n \\staff{tabs slash} \\capo 5\n 1.2 3.2 0.1 1.1\n ',properties:be({property:"score",snippet:"score $0",shortDescription:"Enable the display of standard notation.",signatures:[{parameters:[{name:"lineCount",shortDescription:"The number of staff lines",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,type:e.importer.alphaTex.AlphaTexNodeType.Number,defaultValue:5}]}],examples:"\n \\track\n \\staff {score 3}\n D4 D4 D4 D4\n \\staff {score}\n C4 C4 C4 C4\n "},{property:"tabs",snippet:"tabs $0",shortDescription:"Enable the display of guitar tablature.",longDescription:"\n Enable the display of guitar tablature.\n\n Guitar tabs are only shown if the contained notes are stringed/fretted notes.\n ",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {tabs}\n 3.3 4.3 5.3 5.5\n "},{property:"slash",snippet:"slash $0",shortDescription:"Enable the display of slash notation.",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {tabs slash}\n 3.3 4.3 5.3 5.5\n "},{property:"numbered",snippet:"numbered $0",shortDescription:"Enable the display of numbered notation (Jianpu).",signatures:[{parameters:[]}],examples:"\n \\track\n \\staff {score numbered}\n C4 D4 E4 F4\n "})},Ae={property:"instrument",snippet:'instrument "$1"$0',shortDescription:"Instrument Change",longDescription:"Adds a instrument change to the beat.",signatures:[{description:"Set the midi instrument as midi program number",parameters:[{name:"program",shortDescription:"MIDI program number (0-127)",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]},{description:"Set the midi instrument as midi program name",parameters:[{name:"programName",shortDescription:"MIDI program name",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,valuesOnlyForCompletion:!0,values:["Acoustic Grand Piano","Bright Grand Piano","Electric Grand Piano","Honky tonk Piano","Electric Piano 1","Electric Piano 2","Harpsichord","Clavinet","Celesta","Glockenspiel","Musicbox","Vibraphone","Marimba","Xylophone","Tubularbells","Dulcimer","Drawbar Organ","Percussive Organ","Rock Organ","Church Organ","Reed Organ","Accordion","Harmonica","Tango Accordion","Acoustic Guitar Nylon","Acoustic Guitar Steel","Electric Guitar Jazz","Electric Guitar Clean","Electric Guitar Muted","Overdriven Guitar","Distortion Guitar","Guitar Harmonics","Acoustic Bass","Electric Bass Finger","Electric Bass Pick","Fretless Bass","Slap Bass 1","Slap Bass 2","Synth Bass 1","Synth Bass 2","Violin","Viola","Cello","Contrabass","Tremolo Strings","Pizzicato Strings","Orchestral Harp","Timpani","String Ensemble 1","String Ensemble 2","Synth Strings 1","Synth Strings 2","Choir Aahs","Voice Oohs","Synth Voice","Orchestra Hit","Trumpet","Trombone","Tuba","Muted Trumpet","French Horn","Brass Section","Synth Brass 1","Synth Brass 2","Soprano Sax","Alto Sax","Tenor Sax","Baritone Sax","Oboe","English Horn","Bassoon","Clarinet","Piccolo","Flute","Recorder","Pan Flute","Blown bottle","Shakuhachi","Whistle","Ocarina","Lead 1 Square","Lead 2 Sawtooth","Lead 3 Calliope","Lead 4 Chiff","Lead 5 Charang","Lead 6 Voice","Lead 7 Fifths","Lead 8 Bass and Lead","Pad 1 newage","Pad 2 warm","Pad 3 polysynth","Pad 4 choir","Pad 5 bowed","Pad 6 metallic","Pad 7 halo","Pad 8 sweep","Fx 1 rain","Fx 2 soundtrack","Fx 3 crystal","Fx 4 atmosphere","Fx 5 brightness","Fx 6 goblins","Fx 7 echoes","Fx 8 scifi","Sitar","Banjo","Shamisen","Koto","Kalimba","Bag pipe","Fiddle","Shanai","Tinkle Bell","Agogo","Steel Drums","Woodblock","Taiko Drum","Melodic Tom","Synth Drum","Reverse Cymbal","Guitar Fret Noise","Breath Noise","Seashore","Bird Tweet","Telephone Ring","Helicopter","Applause","Gunshot"].map(e=>({name:e,snippet:JSON.stringify(e),shortDescription:""}))}]},{description:"Set the instrument to percussion",parameters:[{name:"percussion",shortDescription:"Percussion",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,values:[{name:"percussion",snippet:"percussion",shortDescription:""}]}]}],examples:"\n 3.3.4{ ot 15ma } 3.3.4{ ot 8vb }\n "},Me={tag:"\\track",snippet:'\\track "$1"$0',shortDescription:"Start a new track",remarks:"The displayed name depends on the configured [Track Name Policy](https://alphatab.net/docs/alphatex/score-metadata#singletracktracknamepolicy-and-multitracktracknamepolicy). If the short name is not specified, the first 10 characters of the long name are used as short name.",signatures:[{parameters:[{name:"name",shortDescription:"The full name of the track",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"",type:e.importer.alphaTex.AlphaTexNodeType.String},{name:"shortName",shortDescription:"The short name of the track",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"`/*computed from name*/`",type:e.importer.alphaTex.AlphaTexNodeType.String}]}],examples:'\n \\track "First Track" "frst" \n C4 D4 E4 F4\n \\track\n C5 D5 E5 F5\n ',properties:be({property:"color",snippet:"color $0",shortDescription:"The color for use in a custom UI",longDescription:"The data model holds information about the color of the track which might be used by user interfaces to visually differenciate them. This data mainly originates from the Guitar Pro file format where colors are used to differenciate the tracks in the track picker and some other visualizations. It does not have an impact on the color of the music notation but can be used in a custom UI.",signatures:[{parameters:[{name:"colorCode",shortDescription:"The color as CSS color",longDescription:"The colorCode in [any supported color format](https://alphatab.net/docs/reference/settings/display/resources#colors)",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n \\track { color "#FF0000" }\n 1.1 2.1 3.1 4.1\n '},{property:"systemsLayout",snippet:"systemsLayout ($1)$0",shortDescription:"Set the number of bars to display per system.",longDescription:"\n Defines the number of bars to display per system. \n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. \n The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net/docs/reference/settings/display/systemslayoutmode).\n ",signatures:[{parameters:[{name:"numberOfBars",shortDescription:"The number of bars to display per system",longDescription:"Defines for every system (line) the number of bars it should contain",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:'\n \\title "Single Track"\n \\track { systemsLayout (2 3 2) }\n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n '}},{property:"defaultSystemsLayout",snippet:"defaultSystemsLayout $0",shortDescription:"Set the default number of bars to display per system",longDescription:"\n Defines the default number of bars to display per system. \n\n The `systemsLayout` and `defaultSystemsLayout` allow configuring the system layout. \n The system layout, defines how many bars should be displayed per system (line) if enabled via [`systemsLayoutMode`](https://alphatab.net//docs/reference/settings/display/systemslayoutmode).",signatures:[{parameters:[{name:"numberOfBars",shortDescription:"Defines for every system (line) the number of bars it should contain",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:{options:{display:{systemsLayoutMode:"UseModelLayout"}},tex:'\n \\title "Single Track"\n \\track { defaultSystemsLayout 2 }\n :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n '}},{property:"solo",snippet:"solo",shortDescription:"Set the track to be played solo.",signatures:[{parameters:[]}],examples:"\n \\track { solo }\n 1.1 2.1 3.1 4.1\n \\track \n 10.1 11.1 12.1 13.1\n "},{property:"mute",snippet:"mute",shortDescription:"Set the track to be muted.",signatures:[{parameters:[]}],examples:"\n \\track \n 1.1 2.1 3.1 4.1\n \\track { mute }\n 10.1 11.1 12.1 13.1\n "},{property:"volume",snippet:"volume $0",shortDescription:"Set the track volume.",signatures:[{parameters:[{name:"value",shortDescription:"The volume to set (0-16)",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track { volume 0 } \n 1.1 2.1 3.1 4.1\n \\track { volume 16 }\n 10.1 11.1 12.1 13.1\n "},{property:"balance",snippet:"balance $0",shortDescription:"Set the track balance.",signatures:[{parameters:[{name:"value",shortDescription:"The balance to set (0-16; 8 is centered)",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n \\track { volume 0 } \n 1.1 2.1 3.1 4.1\n \\track { volume 16 }\n 10.1 11.1 12.1 13.1\n "},{property:"instrument",snippet:'instrument "$1"$0',shortDescription:"Set the midi instrument for this track.",signatures:Ae.signatures,examples:'\n \\track { instrument 0 } \n C4 C5 r r\n \\track { instrument "Acoustic Steel Guitar" }\n \\tuning (E4 B3 G3 D3 A2 E2)\n r r 12.1 13.1\n '},{property:"bank",snippet:"bank $1$0",shortDescription:"Set the MIDI bank for this track.",longDescription:"\n Set the MIDI bank to select when playing this track.\n\n The loaded soundfont needs to have this bank defined, otherwise there might be no audio.",signatures:[{parameters:[{name:"value",shortDescription:"The midi bank to set",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n \\track { instrument 25 bank 2 }\n "},{property:"multiBarRest",snippet:"multiBarRest$0",shortDescription:"Display multibar rests",longDescription:"Enables the display of multibar rests if this track is shown as standalone.",signatures:[{parameters:[]}],examples:["\n \\track { multiBarRest } \n C4*4 | r.1 | r.1 | r.1 | C4 * 4\n ","\n \\track\n C4*4 | r.1 | r.1 | r.1 | C4 * 4\n "]})},$e={tag:"\\voice",snippet:"\\voice $0",shortDescription:"Start a new voice",longDescription:"Marks the start of a new voice.\n\n Unlike the structure in the data model, alphaTex expects you to define all bars of a voice, then all the bars of the next voice.\n\n It structure is: `\\voice /* Voice 1 Bar 1*/ | /* Voice 1 Bar 2*/ \voice /* Voice 2 Bar 1*/ | /* Voice21 Bar 2*/` Once a new voice starts, you again can define the notes starting from the first bar. alphaTab will try to consolidate inconsistencies in the number of bars across voices.\n ",signatures:[{parameters:[]}],examples:'\n \\track "Piano"\n \\staff{score} \\tuning piano \\instrument acousticgrandpiano\n \\voice \n c4 d4 e4 f4 | c4 d4 e4 f4\n \\voice \n c3 d3 e3 f3 | c3 d3 e3 f3\n \n \\track "Piano2"\n \\staff{score} \\tuning piano \\instrument acousticgrandpiano\n \\voice \n c4 d4 e4 f4 | c4 d4 e4 f4\n \\voice \n c3 d3 e3 f3\n '},Fe={property:"ad",snippet:"ad",shortDescription:"Downwards Arpeggio",longDescription:"Adds an arpeggio effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n (0.1 0.2 0.3 2.4 2.5 0.6){ad} (0.1 0.2 0.3 2.4 2.5 0.6){au} |\n "},Be={property:"au",snippet:"au$0",shortDescription:"Upwards Arpeggio",longDescription:"Adds an arpeggio effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n (0.1 0.2 0.3 2.4 2.5 0.6){ad} (0.1 0.2 0.3 2.4 2.5 0.6){au} |\n "},He={property:"balance",snippet:"balance $1$0",shortDescription:"Balance Change",longDescription:"\n Add a balance (pan) change to the beat.\n\n The change affects all beats after this one.\n ",signatures:[{parameters:[{name:"value",shortDescription:"The new balance",longDescription:"The new balance where 0 is left, 16 is right, and 8 is centered.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n C4 {balance 0} D4 E4 {balance 16} F4\n "},Pe={property:"bank",snippet:"bank $1$0",shortDescription:"MIDI Bank Change",longDescription:"Adds a instrument bank change to the beat.",signatures:[{parameters:[{name:"value",shortDescription:"The new MIDI bank",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n C4 C4 C4 {instrument 25 bank 2} C4\n "},Ee={property:"barre",snippet:"barre $1$0",shortDescription:"Barré",longDescription:"Add a barré chord notation to the beat.",signatures:[{parameters:[{name:"fret",shortDescription:"The numeric fret for the barre chord",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number},{name:"mode",shortDescription:"The barre mode",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"Full",...w("BarreShape")}]}],examples:"\n 1.1 {barre 24} 2.1 {barre 24} 3.1 {barre 24} 4.1 |\n 1.1 {barre 4 half} 2.1 {barre 4 half} 3.1 {barre 4 half} 4.1 {barre 4 half} |\n "},Ne={property:"bd",snippet:"bd$0",shortDescription:"Downwards brush-stroke",longDescription:"Adds a brush stroke effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :2 (0.1 0.2 0.3 2.4 2.5 0.6){bd} (0.1 0.2 0.3 2.4 2.5 0.6){bu} |\n (0.1 0.2 0.3 2.4 2.5 0.6){bd 360} (0.1 0.2 0.3 2.4 2.5 0.6){bu 60}\n "},Le={property:"beam",snippet:"beam $1$0",shortDescription:"Beams and Stems",longDescription:"\n Changes the beaming and stem direction for the beat.\n Can be specified multiple times.\n ",signatures:[{parameters:[{name:"type",shortDescription:"The mode to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Ident,allowAllStringTypes:!0,values:[{name:"invert",snippet:"invert",shortDescription:"Inverts the default stem direction."},{name:"up",snippet:"up",shortDescription:"Forces the stem to point upwards."},{name:"down",snippet:"down",shortDescription:"Forces the stem to point downwards."},{name:"auto",snippet:"auto",shortDescription:"Sets the beaming mode to automatic."},{name:"split",snippet:"split",shortDescription:"Forces a split of the beam to the next beat (if there would be any)."},{name:"merge",snippet:"merge",shortDescription:"Forces a merge of the beam to the next beat (even if there would be none)."},{name:"splitsecondary",snippet:"splitsecondary",shortDescription:"Forces a split of the last bar connecting two beats (if there is any)."}]}]}],examples:"\n :8 3.3{ beam invert } 3.3 |\n 3.1{ beam up } 3.1 |\n 3.6{ beam down } 3.6 |\n 3.3{ beam auto } 3.3 |\n 3.3{ beam split } 3.3 |\n 3.3 3.3 { beam merge } 3.3 3.3 |\n 3.3.16 {beam splitsecondary} 3.3\n "},Oe={property:"bu",snippet:"bu$0",shortDescription:"Upwards brush-stroke",longDescription:"Adds a brush stroke effect to the beat.",signatures:[{parameters:[{name:"duration",shortDescription:"A custom duration of the stroke speed in MIDI ticks",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :2 (0.1 0.2 0.3 2.4 2.5 0.6){bd} (0.1 0.2 0.3 2.4 2.5 0.6){bu} |\n (0.1 0.2 0.3 2.4 2.5 0.6){bd 360} (0.1 0.2 0.3 2.4 2.5 0.6){bu 60}\n "},Ie={property:"ch",snippet:'ch "$1"$0',shortDescription:"Chord",longDescription:"\n Adds a chord annotation to the beat.\n\n If the staff has a definition for this chord it will be shown in the chord diagram list to indicate its usage. The beat still has to define the notes separately.\n ",signatures:[{parameters:[{name:"chordName",shortDescription:"The name of the chord",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n 1.1.8{dy ppp} 1.1{dy pp} 1.1{dy p} 1.1{dy mp} 1.1{dy mf} 1.1{dy f} 1.1{dy ff} 1.1{dy fff}\n "},je={property:"cre",snippet:"cre",shortDescription:"Crescendo",longDescription:"Adds a crescendo effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 { cre } -.3 { cre }\n "},Ge={property:"d",snippet:"d",shortDescription:"Augmentation Dot",longDescription:"Marks the beat with a single augmentation dot.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { d }\n "},Re={property:"dd",snippet:"dd",shortDescription:"Double Augmentation Dot",longDescription:"Marks the beat with a double augmentation dot.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { dd }\n "},Ve={property:"dec",snippet:"dec",shortDescription:"Decrescendo",longDescription:"Adds a decrescendo (diminuendo) effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 { dec } -.3 { dec }\n "},Ke={property:"ds",snippet:"ds",shortDescription:"Dead-Slap",longDescription:"\n Marks the beat to be a dead-slap beat.\n\n As no notes should be on such a beat, simply use () to indicate the empty beat which is not a rest.\n ",signatures:[{parameters:[]}],examples:"\n ().4 {ds} ().4 {ds}\n "},We={property:"dy",snippet:"dy $1$0",shortDescription:"Dynamics",longDescription:"Defines the play dynamics for this beat.",signatures:[{parameters:[{name:"dynamic",shortDescription:"The dynamic value to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("DynamicValue")}]}],examples:'\n \\chord ("C" 0 1 0 2 3 x)\n \\ts 2 4\n (0.1 1.2 0.3 2.4 3.5){ch "C"} (0.1 1.2 0.3 2.4 3.5) |\n (0.1 2.2 2.3 2.4 0.5){ch "A"}\n '},Je={property:"f",snippet:"f",shortDescription:"Fade-In",longDescription:"Adds a fade-in effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).2 { f }\n "},ze={property:"fermata",snippet:"fermata $1$0",shortDescription:"Fermata",longDescription:"Adds a fermata to the beat.",signatures:[{parameters:[{name:"type",shortDescription:"The fermata type",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("FermataType")},{name:"length",shortDescription:"The fermata length",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat,defaultValue:0}]}],examples:"\n G4 G4 G4 { fermata medium 4 }\n "},qe={property:"fo",snippet:"fo",shortDescription:"Fade-Out",longDescription:"Adds a fade-out effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { fo }\n "},Ue={property:"glpf",snippet:"glpf",shortDescription:"Golpe (Finger)",longDescription:"Adds a golpe finger-tap effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3{glpf} 3.3{glpt}\n "},Ze={property:"glpt",snippet:"glpt",shortDescription:"Golpe (Thumb)",longDescription:"Adds a golpe thumb-tap effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3{glpf} 3.3{glpt}\n "},Qe={property:"gr",snippet:"gr $1$0",shortDescription:"Grace-Beat",longDescription:"\n Marks the beat as a grace beat holding grace notes.\n ",signatures:[{parameters:[{name:"type",shortDescription:"The type of grace notes",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"bb",...w("GraceType")}]}],examples:"\n C5\n D5 {gr} C5\n C5\n D5 {gr} C5\n |\n C5\n D5 {gr ob} C5\n C5\n D5 {gr ob} C5\n "},_e={property:"legatoOrigin",snippet:"legatoOrigin",shortDescription:"Legato",longDescription:"Adds a legato from this beat to the next one.",signatures:[{parameters:[]}],examples:"\n 3.3.4{ legatoOrigin } 10.3.4\n "},Xe={property:"lyrics",snippet:'lyrics "$1"$0',shortDescription:"Lyrics",longDescription:"\n Adds a lyric text to the beat.\n\n This is an alternative way of applying the exact lyrics to beats instead of using the `\\lyrics` metadata where a special syntax is used to spread the text across beats.\n ",signatures:[{parameters:[{name:"text",shortDescription:"The lyrics to show",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"line",shortDescription:"The line number (e.g. for multiple verses)",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"text",shortDescription:"The lyrics to show",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n C4 {lyrics "Do"} \n D4 {lyrics "Re"} \n E4 {lyrics "Mi"} \n F4 {lyrics "Fa"} |\n G4 {lyrics 0 "So" lyrics 1 "G"}\n A4 {lyrics 0 "La" lyrics 1 "A"}\n B4 {lyrics 0 "Ti" lyrics 1 "B"}\n r\n '},Ye={property:"ot",snippet:"ot $1$0",shortDescription:"Ottava",longDescription:"Adds a octave change (ottava) to the beat.",signatures:[{parameters:[{name:"value",shortDescription:"The octave shift to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Ottavia")}]}],examples:"\n 3.3.4{ ot 15ma } 3.3.4{ ot 8vb }\n "},et={property:"p",snippet:"p",shortDescription:"Pop",longDescription:"Adds a bass pop annotation to the beat.",signatures:[{parameters:[]}],examples:'\n \\track {instrument "Electric Bass Finger"}\n (3 4) 3.4.8 {s} (5.1 5.2).4 {p} 3.4.8 {s} (5.1 5.2).4 {p}\n '},tt={property:"rasg",snippet:"rags $1$0",shortDescription:"Rasgueado",longDescription:"Add a rasgueado play pattern to the beat.",signatures:[{parameters:[{name:"pattern",shortDescription:"The pattern to apply",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("Rasgueado")}]}],examples:"\n (1.1 3.2 2.3 0.4) * 4 {rasg amii}\n "},nt={property:"s",snippet:"s",shortDescription:"Slap",longDescription:"Adds a bass slap annotation to the beat.",signatures:[{parameters:[]}],examples:'\n \\track {instrument "Electric Bass Finger"}\n (3 4) 3.4.8 {s} (5.1 5.2).4 {p} 3.4.8 {s} (5.1 5.2).4 {p}\n '},st={property:"sd",snippet:"sd",shortDescription:"Pick-Stroke Down",longDescription:"Adds an downwards pick-stroke annotation to the beat.",signatures:[{parameters:[]}],examples:"\n 0.1 { sd }\n "},it={property:"slashed",snippet:"slashed",shortDescription:"Slash Notation",longDescription:"Marks the beat to be displayed with slash notation.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).2 (0.1 2.2 2.3 2.4 0.5).2 { slashed }\n "},at={property:"spd",snippet:"spd",shortDescription:"Sustain pedal down",longDescription:"Add a sustain pedal down-press to the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},rt={property:"spe",snippet:"spe",shortDescription:"Sustain pedal up (end)",longDescription:"Add a sustain pedal up (release) to the end of the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},ot={property:"sph",snippet:"sph",shortDescription:"Sustain pedal hold",longDescription:"Add a sustain pedal hold to the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},pt={property:"spu",snippet:"spu",shortDescription:"Sustain pedal up",longDescription:"Add a sustain pedal up (release) to the beat.",signatures:[{parameters:[]}],examples:"\n C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n "},lt={property:"su",snippet:"su",shortDescription:"Pick-Stroke Up",longDescription:"Adds an upwards pick-stroke annotation to the beat.",signatures:[{parameters:[]}],examples:"\n 0.1 { su }\n "},ct={name:"type",shortDescription:"The type of whammy (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("WhammyType")},ht={name:"style",shortDescription:"The style of the whammy play style.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},dt={name:"values",shortDescription:"The values of the whammy in quarter-tones relative to the original note, decimals supported",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},mt={property:"tb",snippet:"tb ($1)$0",shortDescription:"Tremolo Bar (Whammy)",longDescription:"\n Adds a whammy bar (aka. tremolo bar) effect to the beat.\n\n * The `tb` variant automatically spreads the values across the duration of the beat.\n * The `tbe` (exact) variant allows specifying exactly at which offset a value is placed.\n \n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[dt]},{parameters:[ct,dt]},{parameters:[ht,dt]},{parameters:[ct,ht,dt]}],examples:"\n 3.3.1{tb (0 4 0 8)} | r |\n 3.3.1{tb (0 -4 0 -8)} | r |\n 3.3.1{tbe (0 0 5 4 30 8 60 0)}\n "},ut={name:"type",shortDescription:"The type of whammy (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("WhammyType")},ft={name:"style",shortDescription:"The style of the whammy.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},gt={name:"valuesAndOffsets",shortDescription:"The offset and then the value of the whammy",longDescription:"The offset at which the value becomes valid in range of 0-60 and \n The value of the whammy in quarter-tones relative to the original note, decimals supported.\n The offset and value are actually two parameters: \n `3.3.1{tbe (0 0 5 4 30 8 60 0)}`\n ",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},yt={property:"tbe",snippet:"tbe ($1)$0",shortDescription:"Tremolo Bar (Whammy) Exact",longDescription:"\n Adds a whammy bar (aka. tremolo bar) effect to the beat.\n\n * The `tb` variant automatically spreads the values across the duration of the beat.\n * The `tbe` (exact) variant allows specifying exactly at which offset a value is placed.\n \n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[gt]},{parameters:[ut,gt]},{parameters:[ft,gt]},{parameters:[ut,ft,gt]}],examples:"\n 3.3.1{tb (0 4 0 8)} | r |\n 3.3.1{tb (0 -4 0 -8)} | r |\n 3.3.1{tbe (0 0 5 4 30 8 60 0)}\n "},Dt={name:"bpm",shortDescription:"The new tempo in BPM",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},bt={name:"label",shortDescription:"A textual label for the tempo",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.String,defaultValue:'""'},wt={name:"hide",shortDescription:"If specified, the tempo change is not shown in the music sheet",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,values:[{name:"hide",shortDescription:"If specified, the tempo change is not shown in the music sheet",snippet:"hide"}]},vt={property:"tempo",snippet:"tempo $1$0",shortDescription:"Tempo Change",longDescription:"Add a tempo change to the beat.",signatures:[{parameters:[Dt,wt]},{parameters:[Dt,bt,wt]}],examples:"\n C4 {tempo 120} D4 E4 {tempo 140} F4 | C4.8 {tempo 80} C4 D4 {tempo 100} D4 E4 {tempo 120} E4 F4 {tempo 240} F4\n "},Tt={property:"timer",snippet:"timer",shortDescription:"Show timestamp",longDescription:"\n Adds a timestamp marker to the beat.\n\n Timers are showing the exact timestamp when a beat is played the first time (respecting aspects like repeats).\n ",signatures:[{parameters:[]}],examples:"\n \\tempo 120\n 3.3.4 { timer } 3.3.4*3 |\n \\ro 3.3.4 { timer } 3.3.4*3 |\n 3.3.4 { timer } 3.3.4*3 |\n \\jump fine 3.3.4 { timer } 3.3.4*3 |\n \\ae (1) 3.3.4 { timer } 3.3.4*3 |\n \\ae (2 3) \\rc 3 3.3.4 { timer } 3.3.4*3 |\n 3.3.4 { timer } 3.3.4*3 |\n \\jump DaCapoAlFine 3.3.4 { timer } 3.3.4*3 |\n 3.3.4 { timer } 3.3.4*3\n "},kt={property:"tp",snippet:"tp $1$0",shortDescription:"Tremolo Picking",longDescription:"Add a tremolo picking to the beat.",signatures:[{parameters:[{name:"speed",shortDescription:"The tremolo picking speed",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,values:[{name:"8",snippet:"8",shortDescription:"8th Notes"},{name:"16",snippet:"16",shortDescription:"16th Notes"},{name:"32",snippet:"32",shortDescription:"32nd Notes"}]}]}],examples:"\n 3.3{tp 8} 3.3{tp 16} 3.3{tp 32}\n "},xt={property:"tt",snippet:"tt",shortDescription:"Tapping",longDescription:"Adds a guitar or bass tapping annotation to the beat.",signatures:[{parameters:[]}],examples:'\n \\track {instrument "Electric Bass Finger"}\n :8 {tu 3} \n 18.1 {tt h} 10.1 {h} 14.1\n 18.1 {tt h} 10.1 {h} 14.1\n 18.1 {tt h} 10.1 {h} 14.1\n 18.1 {tt h} 10.1 {h} 14.1\n '},Ct={property:"tu",snippet:"tu $1$0",shortDescription:"Tuplet",longDescription:"\n Adds a tuplet to the beat duration.\n\n There are some built-in simple tuplet variants or you can specify the exact division.\n ",signatures:[{parameters:[{name:"simple",shortDescription:"The simple tuplet",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,values:[{name:"3",snippet:"3",shortDescription:"3:2 Tuplet"},{name:"5",snippet:"5",shortDescription:"5:4 Tuplet"},{name:"6",snippet:"6",shortDescription:"6:4 Tuplet"},{name:"7",snippet:"7",shortDescription:"7:4 Tuplet"},{name:"9",snippet:"9",shortDescription:"9:8 Tuplet"},{name:"10",snippet:"10",shortDescription:"10:8 Tuplet"},{name:"12",snippet:"12",shortDescription:"12:8 Tuplet"}]}]},{parameters:[{name:"numerator",shortDescription:"The tuplet numerator",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"denominator",shortDescription:"The tuplet denominator",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n C4 {tu 3} * 3 |\n C4 {tu 5} * 5 |\n C4 {tu 5 2} * 5\n "},St={property:"txt",snippet:'txt "$1"$0',shortDescription:"Text",longDescription:"Adds a text annotation to the beat.",signatures:[{parameters:[{name:"text",shortDescription:"The text to show above the beat",type:e.importer.alphaTex.AlphaTexNodeType.String,allowAllStringTypes:!0,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:'\n C4 {txt "This is a C4 Note"}\n '},At={property:"v",snippet:"v",shortDescription:"Slight Vibrato",longDescription:"Adds a slight vibrato effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { v }\n "},Mt={property:"volume",snippet:"volume $1$0",shortDescription:"Volume Change",longDescription:"\n Add a volume change to the beat.\n\n The change affects all beats after this one.\n ",signatures:[{parameters:[{name:"value",shortDescription:"The new volume",longDescription:"The absolute volume of the track within the song in the range of 0-16",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,type:e.importer.alphaTex.AlphaTexNodeType.Number}]}],examples:"\n C4 {volume 8} D4 E4 {tempo 16} F4\n "},$t={property:"vs",snippet:"vs",shortDescription:"Volume-Swell",longDescription:"Adds a volume-swell effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { vs }\n "},Ft={property:"vw",snippet:"vw",shortDescription:"Wide Vibrato",longDescription:"Adds a wide vibrato effect to the beat. Applies to all notes.",signatures:[{parameters:[]}],examples:"\n (0.1 2.2 2.3 2.4 0.5).1 { vw }\n "},Bt={property:"wahc",snippet:"wahc",shortDescription:"Wah-Wah (Close)",longDescription:"Adds a Wah-pedal close effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 3.3{waho} 3.3 3.3 {wahc}\n "},Ht={property:"waho",snippet:"waho",shortDescription:"Wah-Wah (Open)",longDescription:"Adds a Wah-pedal opening effect to the beat.",signatures:[{parameters:[]}],examples:"\n 3.3 3.3{waho} 3.3 3.3 {wahc}\n "},Pt={property:"ac",snippet:"ac",shortDescription:"Accentuated",longDescription:"Applies a simple accentuation to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{ac} 3.3{hac} 3.3{ten}\n "},Et={property:"acc",snippet:"acc $1$0",shortDescription:"Accidentals",longDescription:"Changes the mode to determine the accidentals for this note.",signatures:[{parameters:[{name:"mode",shortDescription:"The accidental mode",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("NoteAccidentalMode")}]}],examples:"\n :8 3.3{lf 1} 3.3{lf 2} 3.3{lf 3} 3.3{lf 4} 3.3{lf 5} (2.2{lf 4} 2.3{lf 3} 2.4{lf 2}) |\n :8 3.3{rf 1} 3.3{rf 2} 3.3{rf 3} 3.3{rf 4} 3.3{lf 5}\n "},Nt=["The harmonic value determines a relative fret-offset changing the note pitch when played. For natural harmonics the played fret determines the harmonic value. The rules are a bit special but mostly are aligned with the frequency adjustments happening when harmonics are played at respective frets:","","* `2.4` adds 36 frets","* `2.7` adds 34 frets","* `< 3` adds 0 frets","* `<= 3.5` adds 31 frets","* `<= 4` adds 28 frets","* `<= 5` adds 34 frets","* `<= 7` adds 19 frets","* `<= 8.5` adds 36 frets","* `<= 9` adds 28 frets","* `<= 10` adds 34 frets","* `<= 11` adds 0 frets","* `<= 12` adds 12 frets","* `< 14` adds 0 frets","* `<= 15` adds 34 frets","* `<= 16` adds 28 frets","* `<= 17` adds 36 frets","* `<= 18` adds 0 frets","* `<= 19` adds 19 frets","* `<= 21` adds 0 frets","* `<= 22` adds 36 frets","* `<= 24` adds 24 frets","* `other: adds 0 frets"].join("\n"),Lt={property:"ah",snippet:"ah$0",shortDescription:"Artificial Harmonic",longDescription:"Applies an artificial harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Nt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n C4 {volume 8} D4 E4 {tempo 16} F4\n "},Ot={name:"type",shortDescription:"The type of bend (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendType")},It={name:"style",shortDescription:"The style of the bend.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},jt={name:"values",shortDescription:"The values of the bend in quarter-tones relative to the original note, decimals supported",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},Gt={property:"b",snippet:"b ($1)$0",shortDescription:"Note Bend",longDescription:"\n Adds a bend effect to the note.\n\n * The `b` variant automatically spreads the values across the duration of the beat.\n * The `be` (exact) variant allows specifying exactly at which offset a value is placed.\n \n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[jt]},{parameters:[Ot,jt]},{parameters:[It,jt]},{parameters:[Ot,It,jt]}],examples:"\n 3.3{b (0 4)} |\n 3.3{b (0 4 0 8)} |\n "},Rt={name:"type",shortDescription:"The type of bend (affects the display).",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendType")},Vt={name:"style",shortDescription:"The style of the whammy play style.",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("BendStyle")},Kt={name:"valueAndOffset",shortDescription:"The offset and then the value of the bend",longDescription:"The offset at which the value becomes valid in range of 0-60 and \n The value of the bend in quarter-tones relative to the original note.\n The offset and value are actually two parameters: \n `3.3 {be (0 0 5 2 30 4)}`\n ",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,type:e.importer.alphaTex.AlphaTexNodeType.Number},Wt={property:"be",snippet:"be ($1)$0",shortDescription:"Note Bend (exact)",longDescription:"\n Adds an exact bend effect to the note.\n\n * The `b` variant automatically spreads the values across the duration of the beat.\n * The `be` (exact) variant allows specifying exactly at which offset a value is placed.\n\n It is recommended to rely on the auto-detection of the type and only specify the type explicitly if something is wrong.\n ",signatures:[{parameters:[Kt]},{parameters:[Rt,Kt]},{parameters:[Vt,Kt]},{parameters:[Rt,Vt,Kt]}],examples:"\n :1 3.3 {be (0 0 5 2 30 4)}\n "},Jt={property:"fh",snippet:"fh$0",shortDescription:"Feedback Harmonic",longDescription:"Applies a feedback harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Nt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{fh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},zt={property:"g",snippet:"g",shortDescription:"Ghost Note",longDescription:"Marks the note as a ghost note.",signatures:[{parameters:[]}],examples:"\n 3.3{g}\n "},qt={property:"h",snippet:"h",shortDescription:"Hammer-On/Pull-Off",longDescription:"\n Applies a hammer on / pull-off effect to the note.\n\n The fret of the following note on the same string defines whether it is a hammer-on or pull-of.\n ",signatures:[{parameters:[]}],examples:"\n 3.3{h} 4.3 4.3{h} 3.3 | 3.3{h} 4.3{h} 3.3{h} 4.3\n "},Ut={property:"hac",snippet:"hac",shortDescription:"Heavy-Accentuated",longDescription:"Applies a heavy accentuation to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{ac} 3.3{hac} 3.3{ten}\n "},Zt={property:"hide",snippet:"hide",shortDescription:"Hide Note",longDescription:"Hides the note from being displayed in the music sheet.",signatures:[{parameters:[]}],examples:"\n :8 3.3 (4.4{hide} 5.5)\n "},Qt={property:"iturn",snippet:"iturn",shortDescription:"Inverted Turn Ornament",longDescription:"Applies an inverted turn ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{iturn} |\n "},_t={property:"lf",snippet:"lf $1$0",shortDescription:"Left-Hand Finger",longDescription:"Adds a left-hand fingering annotation to the note.",signatures:[{parameters:[{name:"finger",shortDescription:"The finger",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,values:[{name:"1",snippet:"1",shortDescription:"Thumb"},{name:"2",snippet:"2",shortDescription:"Index-Finger"},{name:"3",snippet:"3",shortDescription:"Middle-Finger"},{name:"4",snippet:"4",shortDescription:"Annual-Finger"},{name:"5",snippet:"5",shortDescription:"Little-Finger"}]}]}],examples:"\n :8 3.3{lf 1} 3.3{lf 2} 3.3{lf 3} 3.3{lf 4} 3.3{lf 5} (2.2{lf 4} 2.3{lf 3} 2.4{lf 2}) |\n :8 3.3{rf 1} 3.3{rf 2} 3.3{rf 3} 3.3{rf 4} 3.3{lf 5}\n "},Xt={property:"lht",snippet:"lht",shortDescription:"Left-Hand tap",longDescription:"Applies a left-hand-tapped annotation to the note.",signatures:[{parameters:[]}],examples:"\n :16 15.1{h} 13.1{h} 12.1{h} 15.2{lht}\n "},Yt={property:"lmordent",snippet:"lmordent",shortDescription:"Lower Mordent Ornament",longDescription:"Applies an lower mordent ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{lmordent} |\n "},en={property:"lr",snippet:"lr",shortDescription:"LetRing",longDescription:"Applies a LetRing effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.4{lr} 3.3{lr} 3.2{lr} 3.1{lr}\n "},tn={property:"nh",snippet:"nh",shortDescription:"Natural Harmonic",longDescription:"Applies a natural harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},nn={property:"ph",snippet:"ph$0",shortDescription:"Pinch Harmonic",longDescription:"Applies a pinch harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Nt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},sn={property:"pm",snippet:"pm",shortDescription:"Palm-Mute",longDescription:"Applies a palm mute effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{pm} 3.3{pm} 3.3{pm} 3.3{pm}\n "},an={property:"psd",snippet:"psd",shortDescription:"Pick-Slide (downwards)",longDescription:"Adds a pick slide effect out from note downwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{psd} 3.3{psd} 3.3{psd} |\n 3.3{sib psd} 3.3{sib psd} 3.3{psd psd} 3.3{psd psd} |\n x.3{psd} 3.3 |\n x.3{psd} 3.3 |\n "},rn={property:"psu",snippet:"psu",shortDescription:"Pick-Slide (upwards)",longDescription:"Adds a pick slide effect out from note upwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{psu} 3.3{psu} 3.3{psu} |\n 3.3{sib psu} 3.3{sib psu} 3.3{psu psu} 3.3{psu psu} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},on={property:"rf",snippet:"rf $1$0",shortDescription:"Right-Hand Finger",longDescription:"Adds a right-hand fingering annotation to the note.",signatures:_t.signatures,examples:"\n :8 3.3{lf 1} 3.3{lf 2} 3.3{lf 3} 3.3{lf 4} 3.3{lf 5} (2.2{lf 4} 2.3{lf 3} 2.4{lf 2}) |\n :8 3.3{rf 1} 3.3{rf 2} 3.3{rf 3} 3.3{rf 4} 3.3{lf 5}\n "},pn={property:"sh",snippet:"sh$0",shortDescription:"Semi Harmonic",longDescription:"Applies a semi harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Nt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},ln={property:"sia",snippet:"sia",shortDescription:"Slide (into from-above)",longDescription:"Adds a slide effect into the note from above.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},cn={property:"sib",snippet:"sib",shortDescription:"Slide (into from-below)",longDescription:"Adds a slide effect into the note from below.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},hn={property:"sl",snippet:"sl",shortDescription:"Slide (legato)",longDescription:"Adds a legato slide effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},dn={property:"slur",snippet:"slur $1$0",shortDescription:"Slur",longDescription:"Marks the start or end of a slur for the note.",signatures:[{parameters:[{name:"id",shortDescription:"A unique ID to mark the start and end of the slur.",type:e.importer.alphaTex.AlphaTexNodeType.String,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]},{parameters:[{name:"id",shortDescription:"A unique ID to mark the start and end of the slur.",type:e.importer.alphaTex.AlphaTexNodeType.Ident,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required}]}],examples:"\n (3.3 {slur s1} 4.4).4 7.3.8 8.3.8 10.3 {slur s1} .8\n "},mn={property:"sod",snippet:"sod",shortDescription:"Slide (out downwards)",longDescription:"Adds a slide effect out from note downwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sod} 3.3{sod} 3.3{sod} |\n 3.3{sib sod} 3.3{sib sod} 3.3{sod sod} 3.3{sod sod} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},un={property:"sou",snippet:"sou",shortDescription:"Slide (out upwards)",longDescription:"Adds a slide effect out from note upwards.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sou} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sou sod} 3.3{sou sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},fn={property:"ss",snippet:"ss",shortDescription:"Slide (shift)",longDescription:"Adds a shift slide effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{sl} 4.3 3.3{ss} 4.3 |\n 3.3{sib} 3.3{sia} 3.3{sou} 3.3{sod} |\n 3.3{sib sou} 3.3{sib sod} 3.3{sia sod} 3.3{sia sou} |\n x.3{psd} 3.3 |\n x.3{psu} 3.3 |\n "},gn={property:"st",snippet:"st",shortDescription:"Staccato",longDescription:"Applies a staccato effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{st}\n "},yn={property:"string",snippet:"string",shortDescription:"Show String Number",longDescription:"Adds an annotation showing the string number of the note above the staff.",signatures:[{parameters:[]}],examples:"\n 3.3{string} 3.4{string} 3.5{string}\n "},Dn={property:"t",snippet:"t",shortDescription:"Tied-Note",longDescription:"\n Marks the note as a tied note.\n \n This is an alternative syntax to directly specifying the fret as `-`.\n\n For non stringed instrument it can be a bit more tricky as we cannot use the string to identify which note to tie. There are multiple ways to work around this problem. AlphaTab will try to find the start note for the tie via several rules, if this does not match the desired behavior, you can specify the note value as alternative and indicate the tie via a note effect.\n ",signatures:[{parameters:[]}],examples:["\n 3.3 -.3 | (1.1 3.2 2.3 0.4) (-.1 -.4)\n ","\n \\tuning piano\n .\n // If there is a single note on the previous beat, we tie to this one\n // Then a simple - is enough for a tie\n :2 a4 - |\n // Alternatively you can specify a '-' or 't' as note effect to indicate a tie\n :2 a4 a4{-} |\n :2 a4 a4{t} |\n // This also works for chords using correct note ordering\n :2 (a4 a3) (- a3) |\n :2 (a4 a3) (a4 -) |\n // If nothing helps, always the explicit note value and tie effect should allow\n // specifying the correct behavior\n :2 (a4 a3) (a4{t} a3) |\n :4 (a4 a3) (b2 b3) a4{t} a3{-} |\n "]},bn={...Dn,property:"-",snippet:"-",hidden:!0},wn={property:"ten",snippet:"ten",shortDescription:"Tenuto",longDescription:"Applies a tenuto accentuation to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{ac} 3.3{ten} 3.3{ten}\n "},vn={property:"th",snippet:"th$0",shortDescription:"Tapped Harmonic",longDescription:"Applies a tapped harmonic effect to the note (for fretted instruments).",signatures:[{parameters:[{name:"value",shortDescription:"The harmonic value",longDescription:Nt,type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional}]}],examples:"\n :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n "},Tn={property:"tr",snippet:"tr$0",shortDescription:"Trill",longDescription:"Applies a trill effect to the note.",signatures:[{parameters:[{name:"fret",shortDescription:"The fret on which to trill",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required},{name:"duration",shortDescription:"The duration/speed of the trills",type:e.importer.alphaTex.AlphaTexNodeType.Number,parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Optional,defaultValue:"16",values:[{name:"16",snippet:"16",shortDescription:"16th Note"},{name:"32",snippet:"32",shortDescription:"32nd Note"},{name:"64",snippet:"64",shortDescription:"64th Note"}]}]}],examples:"\n :4 3.3{tr 4} 3.3{tr 4 16} 3.3{tr 5 32} 3.3{tr 6 64}\n "},kn={property:"turn",snippet:"turn",shortDescription:"Turn Ornament",longDescription:"Applies a turn ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{turn} |\n "},xn={property:"umordent",snippet:"umordent",shortDescription:"Upper Mordent Ornament",longDescription:"Applies an upper mordent ornament to the note.",signatures:[{parameters:[]}],examples:"\n :1 C4{umordent} |\n "},Cn={property:"v",snippet:"v",shortDescription:"Slight Vibrato",longDescription:"Adds a slight vibrato effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{v}\n "},Sn={property:"vw",snippet:"vw",shortDescription:"Wide Vibrato",longDescription:"Adds a wide vibrato effect to the note.",signatures:[{parameters:[]}],examples:"\n 3.3{vw}\n "},An={property:"x",snippet:"x",shortDescription:"Dead-Note",longDescription:"Marks the note as a dead note.",signatures:[{parameters:[]}],examples:"\n x.3 3.3{x}\n "},Mn={tag:"\\db",snippet:"\\db $0",shortDescription:"Mark a double-bar",hidden:!0,deprecated:"Use barLineLeft and barLineRight instead",signatures:[{parameters:[]}],examples:""},$n={tag:"\\voiceMode",snippet:"\\voiceMode $1 $0",shortDescription:"Changes the mode how voices are treated",longDescription:"\n Changes the mode how alphaTab should treat voices when adding `\\voice`.\n\n You can either choose to write voice-by-voice where each voice has all bars defined. \n You write bar-by-bar where a new voice is only added to the current bar. \n ",signatures:[{parameters:[{name:"mode",shortDescription:"The mode which should be active",parseMode:e.importer.alphaTex.ArgumentListParseTypesMode.Required,...w("AlphaTexVoiceMode")}]}],examples:['\n \\title "Staff Wise Voices"\n \\voiceMode staffWise\n // Voice 1\n \\voice\n // Bar 1 Voice 1\n C4*4 | \n // Bar 2 Voice 1\n C5*4 | \n // Bar 3 Voice 1\n C6*4\n // Voice 2\n \\voice\n // Bar 1 Voice 2\n C3*4 | \n // Bar 2 Voice 2\n C4*4 | \n // Bar 3 Voice 2\n C5 * 4\n ','\n \\title "Bar Wise Voices"\n \\voiceMode barWise\n // Bar 1\n // Bar 1 Voice 1\n \\voice\n C4*4 \n // Bar 1 Voice 2\n \\voice \n C3*4 \n | \n // Bar 2\n // Bar 2 Voice 1\n \\voice\n C5*4 \n // Bar 2 Voice 2\n \\voice\n C4*4 \n | \n // Bar 3\n // Bar 3 Voice 1\n \\voice\n C6*4\n // Bar 3 Voice 2\n \\voice \n C5 * 4\n ']},Fn={tag:"\\extendBarLines",snippet:"\\extendBarLines",shortDescription:"Extend the bar lines across staves in the same system.",signatures:[{parameters:[]}],examples:'\n \\extendBarLines\n \\track "Piano1"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\staff {score}\n \\clef f4 C3 D3 E3 F3\n \\track "Piano2"\n \\staff {score}\n \\instrument piano\n C4 D4 E4 F4\n \\track "Flute 1"\n \\staff { score }\n \\instrument flute\n C4 D4 E4 F4\n \\track "Flute 2"\n \\staff { score }\n \\instrument flute\n \\clef f4 C3 D3 E3 F3\n \\track "Guitar 1"\n \\staff { score tabs }\n 0.3.4 2.3.4 5.3.4 7.3.4\n '},Bn={tag:"\\instrument",snippet:'\\instrument "$1"$0',shortDescription:"Instrument",hidden:!0,longDescription:"Defines the instrument for the track.",deprecated:"Use the track property instead",signatures:Ae.signatures,examples:""},Hn=we(Me,Se,$e),Pn=we(J,ce,q,z,ue,ie,fe,Z,Q,te,ae,de,he,_,pe,ee,me,ne,U,le,se,X,re,Y,oe,Fn),En=we(Ce,ve,De,ke,ye,Te,xe,Bn),Nn=we(R,B,F,T,M,C,$,j,G,D,P,A,S,E,k,x,H,V,I,v,N,L,O,Mn,$n),Ln=new Map([...Hn.entries(),...Pn.entries(),...En.entries(),...Nn.entries()]),On=be(Ct),In=be(Je,qe,$t,At,Ft,nt,et,xt,Ge,Re,lt,st,je,Ve,at,ot,pt,rt,it,Ke,Ue,Ze,Ht,Bt,_e,Tt,Ct,St,Xe,mt,yt,Oe,Ne,Be,Fe,Ie,Qe,We,vt,Mt,He,kt,Ee,tt,Ye,Ae,Pe,ze,Le),jn=be(tn,Lt,vn,nn,pn,Jt,Cn,Sn,hn,fn,cn,ln,un,mn,rn,an,qt,Xt,zt,Pt,Ut,wn,Tn,sn,gn,en,An,Dn,kn,Qt,xn,Yt,yn,Zt,Gt,Wt,_t,on,Et,dn,bn),Gn=/^([ ]+)/;function Rn(e){const t=e.split("\n"),n=t.findIndex(e=>""!==e.trim());if(-1===n)return e;t.splice(0,n);const s=Gn.exec(t[0]);if(s){return t.map(e=>e.substring(s[0].length)).join("\n")}return t.join("\n")}function Vn(e){const t=e.longDescription;if(void 0===t)return;const n=t.split("\n");""===n[0].trim()&&n.splice(0,1);const s=Gn.exec(n[0]);if(s){const t=n.map(e=>e.substring(s[0].length));e.longDescription=t.join("\n"),e.shortDescription||(e.shortDescription=t[0].substring(0,100))}else e.shortDescription||(e.shortDescription=n[0].substring(0,100))}function Kn(e){return"string"==typeof e?Rn(e):(e.tex=Rn(e.tex),e)}function Wn(e){Vn(e);for(const t of e.signatures)for(const e of t.parameters)Vn(e);if(Array.isArray(e.examples))for(const[t,n]of e.examples.entries())e.examples[t]=Kn(n);else e.examples=Kn(e.examples)}for(const e of Ln.values())if(Wn(e),e.properties)for(const t of e.properties.values())Wn(t);for(const e of In.values())Wn(e);for(const e of jn.values())Wn(e);function Jn(e,t,n=0,s=e.length,i){if(n>s)return;const a=Math.trunc((n+s)/2),r=e[a],o=a===e.length-1?i:e[a+1].start.offset;return r.start.offset<=t&&t<=o?r:t<r.start.offset?Jn(e,t,n,a,i):Jn(e,t,a,s,i)}function zn(e,t,n=(e.length>0?e[e.length-1].end.offset:0)){if(0===e.length)return;return t<e[0].start.offset||t>n?void 0:Jn(e,t,0,e.length,n)}function qn(e,t){const n=new Map;if(void 0!==t.signatureCandidateIndices)for(const s of t.signatureCandidateIndices)n.set(s,e[s]);return n}function Un(t,n){let s=t.name;if(!n){switch(t.parseMode){case e.importer.alphaTex.ArgumentListParseTypesMode.Optional:case e.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat:s+="?"}s+=`: ${Zn(t)}`,t.defaultValue&&(s+=` = ${t.defaultValue}`)}return s}function Zn(t){const n=Array.isArray(t.type)?t.type:[t.type];let s="";if(t.values&&!t.valuesOnlyForCompletion&&t.values.length<5){const i=t.values.map(e=>e.name);if(n[0]===e.importer.alphaTex.AlphaTexNodeType.String)s=i.map(e=>`"${e}"`).join("|");else s=i.join("|")}else s=n.map(t=>e.importer.alphaTex.AlphaTexNodeType[t]).join("|");switch(t.parseMode){case e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList:case e.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis:s+="[]"}return s}const Qn=[...is(Hn),...is(En),...is(Pn),...is(Nn)];function _n(e,t){e.onCompletion(n=>{const s=t.get(n.textDocument.uri);if(!s?.ast)return Qn;const i=s.offsetAt(n.position),a=zn(s.ast.bars,i,Number.MAX_SAFE_INTEGER),r=a?s.ast.bars.indexOf(a):0;if(!a)return Xn(ns(r,void 0,i,Number.MAX_SAFE_INTEGER),e.console);const o=a.pipe?.start.offset??(r===s.ast.bars.length-1?Number.MAX_SAFE_INTEGER:s.ast.bars[r+1].start.offset),l=a.beats[0]?.start.offset??o,c=a?zn(a.metaData,i,l):void 0;if(c){const t=a.metaData.indexOf(c);return Xn(ns(r,c,i,t===a.metaData.length-1?l:a.metaData[t+1].start.offset),e.console)}const h=zn(a.beats,i,o);if(h){const t=a.beats.indexOf(h);return Xn(function(e,t,n){const s=[];if(e.durationChange&&e.durationChange.start.offset<t&&t<=e.durationChange.end.offset){const s=e.notes?.start.offset??n;return function(e,t,n){const s=[];if(!e.properties||t<e.properties.start.offset){const t=e.properties?.start??e.end,n=e.properties?[p.del({start:{line:e.colon.start.line-1,character:e.colon.start.col-1},end:{line:t.line-1,character:t.col-1}})]:void 0;s.push(...Yn.map(e=>({...e,additionalTextEdits:n})))}else if(e.properties&&e.properties.start.offset<t&&e.properties.end.offset){const i=e.properties?.closeBrace?.start.offset??n;s.push(...as(e.properties,t,On,i))}return s}(e.durationChange,t,s)}if(e.notes&&e.notes.start.offset<t&&t<=e.notes.end.offset){const s=e.notes?.closeParenthesis?.start.offset??e.durationDot?.start.offset??e.beatEffects?.start.offset??e.beatMultiplier?.start.offset??n,i=zn(e.notes.notes,t,s);if(i){const n=e.notes.notes.indexOf(i);return function(e,t,n,s){const i=[];if(t.noteEffects&&t.noteEffects.start.offset<n&&t.noteEffects.end.offset){const a=t.noteEffects.closeBrace?.start.offset??s;1===e.notes.notes.length&&i.splice(0,0,...as(t.noteEffects,n,In,a)),i.splice(0,0,...as(t.noteEffects,n,jn,a))}return i}(e,i,t,n===e.notes.notes.length-1?s:e.notes.notes[n+1].start.offset)}}const i=e.beatMultiplier?.start?.offset??e.beatEffects?.start?.offset??e.end.offset;if(e.durationDot&&e.durationDot.start.offset<t&&(t<=i||!e.beatEffects)){const t=e.durationValue?[p.del({start:{line:e.durationDot.end.line-1,character:e.durationDot.end.col-1},end:{line:e.durationValue.end.line-1,character:e.durationValue.end.col-1}})]:void 0;s.push(...Yn.map(e=>({...e,additionalTextEdits:t})))}if(e.beatEffects&&e.beatEffects.start.offset<t&&e.beatEffects.end.offset){const i=e.beatEffects?.closeBrace?.start.offset??e.beatMultiplier?.start.offset??n;s.splice(0,0,...as(e.beatEffects,t,In,i))}return s}(h,i,t===a.beats.length-1?o:a.beats[t+1].start.offset),e.console)}return Xn(ns(r,void 0,i,Number.MAX_SAFE_INTEGER),e.console)}),e.onCompletionResolve(e=>e)}function Xn(e,t){let n="a".charCodeAt(0);for(const t of e)t.sortText=`${String.fromCharCode(n++)}`;return t.debug(`Provide completions: ${JSON.stringify(e)}`),e}const Yn=[["Whole Note",e.model.Duration.Whole],["Half Note",e.model.Duration.Half],["Quarter Note",e.model.Duration.Quarter],["8th Note",e.model.Duration.Eighth],["16th Note",e.model.Duration.Sixteenth],["32nd Note",e.model.Duration.ThirtySecond],["64th Note",e.model.Duration.SixtyFourth],["128th Note",e.model.Duration.OneHundredTwentyEighth],["256th Note",e.model.Duration.TwoHundredFiftySixth],["Quadruple Whole Note",e.model.Duration.QuadrupleWhole],["Double Whole Note",e.model.Duration.DoubleWhole]].map(e=>({label:`${e[1]}`,labelDetails:{description:e[0]},kind:o.Value,insertText:`${e[1]} `,insertTextFormat:r.Snippet}));function es(e,t){return{label:e.name,kind:o.Value,labelDetails:e.shortDescription?{description:e.shortDescription}:void 0,documentation:e.longDescription?{kind:"markdown",value:e.longDescription}:void 0,insertText:e.snippet,insertTextFormat:r.Snippet,...t}}function ts(e){return{label:e.tag,kind:o.Function,labelDetails:e.shortDescription?{description:e.shortDescription}:void 0,documentation:e.longDescription?{kind:"markdown",value:e.longDescription}:void 0,insertText:e.snippet,insertTextFormat:r.Snippet,data:{tag:e.tag.substring(1),tagLowerCase:e.tag.substring(1).toLowerCase()}}}function ns(e,t,n,s){let i=[];if(!t||t.tag.start.offset<=n&&n<=t.tag.end.offset){if(0===e?i.push(...Qn):i.push(...is(Hn),...is(Nn)),t){const e=t.arguments||t.properties;i=i.map(n=>({...n,insertText:e?n.label:n.insertText,additionalTextEdits:[p.del({start:{line:t.tag.start.line-1,character:t.tag.start.col-1},end:{line:t.tag.end.line-1,character:t.tag.end.col-1}})]}))}return i}n>=t.end.offset&&(0===e?i.push(...Qn):i.push(...is(Hn),...is(Nn)));const a=Ln.get(`\\${t.tag.tag.text.toLowerCase()}`);if(!a)return i;const r=t.arguments?.closeParenthesis?.start.offset??t.arguments?.end.offset??t.properties?.start.offset??s;if(i.splice(0,0,...ss(a.signatures,t.arguments,n,r)),a?.properties){const e=t.properties?.closeBrace?.start.offset??s;i.splice(0,0,...as(t.properties,n,a.properties,e))}return i}function ss(e,t,n,s){if(!t){const t=e.flatMap(e=>e.parameters.length>0?e.parameters[0].values??[]:[]);return t.map(e=>es(e))}{const i=zn(t.arguments,n,s);if(i?.parameterIndices){const s=n>i.end.offset,a=qn(e,t);for(const[e,t]of a){let n=i.parameterIndices.get(e);void 0!==n&&s&&n<t.parameters.length-1&&n++;const a=void 0!==n?t.parameters[n].values:void 0;if(a)return a.map(e=>es(e,{additionalTextEdits:[p.del({start:{line:i.start.line-1,character:i.start.col-1},end:{line:i.end.line-1,character:i.end.col-1}})]}))}}}return[]}function is(e){return Array.from(e.values()).map(ts)}function as(e,t,n,s){if(!e)return[];const i=e.closeBrace?.start?.offset??e.end.offset;if(t<e.openBrace.start.offset||t>i)return[];const a=Array.from(n.values()).map(e=>function(e,t){return{label:e.property,kind:o.Property,insertText:e.snippet,labelDetails:e.shortDescription?{description:e.shortDescription}:void 0,documentation:e.longDescription?{kind:"markdown",value:e.longDescription}:void 0,insertTextFormat:r.Snippet,...t}}(e)),l=e?zn(e.properties,t,s):void 0;if(l){const i=e.properties.indexOf(l);return function(e,t,n,s,i){const a=[],r=!e||e.property.start.offset<=t&&t<=e.property.end.offset;if(r)return a.push(...s.map(t=>({...t,additionalTextEdits:[p.del({start:{line:e.property.start.line-1,character:e.property.start.col-1},end:{line:e.property.end.line-1,character:e.property.end.col-1}})]}))),a;t>=e.end.offset&&a.push(...s);const o=n.get(e.property.text.toLowerCase());if(!o)return a;return a.splice(0,0,...ss(o.signatures,e.arguments,t,i)),a}(l,t,n,a,i===e.properties.length-1?s:e.properties[i+1].start.offset)}return a}function rs(t){const n=[];for(const s of t){const t={severity:l.Warning,range:{start:{line:s.start.line-1,character:s.start.col-1},end:{line:s.end.line-1,character:s.end.col-1}},message:s.message,code:`AT${s.code}`,source:"alphaTab"};switch(s.severity){case e.importer.alphaTex.AlphaTexDiagnosticsSeverity.Hint:t.severity=l.Hint;break;case e.importer.alphaTex.AlphaTexDiagnosticsSeverity.Warning:t.severity=l.Warning;break;case e.importer.alphaTex.AlphaTexDiagnosticsSeverity.Error:t.severity=l.Error}n.push(t)}return n}async function os(t){const n=[],s=t.getText(),i=new e.importer.AlphaTexImporter;i.initFromString(s,new e.Settings),i.parser.mode=e.importer.alphaTex.AlphaTexParseMode.Full;try{t.score=i.readScore(),t.ast=i.scoreNode,n.push(...rs(i.lexerDiagnostics)),n.push(...rs(i.parserDiagnostics)),n.push(...rs(i.semanticDiagnostics))}catch(s){t.score=void 0,t.ast=i.scoreNode,n.push(...function(t){let n;return t instanceof e.importer.AlphaTexErrorWithDiagnostics?n=t:t instanceof e.importer.UnsupportedFormatError&&t.cause instanceof e.importer.AlphaTexErrorWithDiagnostics&&(n=t.cause),n?rs(n.iterateDiagnostics()):[{severity:l.Warning,range:{start:{line:0,character:0},end:{line:0,character:c.MAX_VALUE}},message:`Unexpected error parsing alphaTex: ${t.message}`,source:"alphaTab"}]}(s))}return n}function ps(e,t){e.onHover(e=>{const n=t.get(e.textDocument.uri);if(!n?.ast)return null;const s=n.offsetAt(e.position),i=zn(n.ast.bars,s);if(!i)return null;const a=zn(i.metaData,s);if(a)return function(e,t){const n=Ln.get(`\\${e.tag.tag.text.toLowerCase()}`);if(!n)return null;if(e.tag.start.offset<=t&&t<=e.tag.end.offset)return{contents:{kind:"markdown",value:hs(n,n.tag,"Tag Syntax")}};if(e.arguments){const s=cs(e.arguments,n.signatures,t);if(null!=s)return s}if(e.properties&&n.properties){const s=ls(e.properties,n.properties,t);if(null!=s)return s}return null}(a,s);const r=zn(i.beats,s);return r?function(e,t){if(e.durationChange?.properties){const n=ls(e.durationChange.properties,On,t);if(null!=n)return n}if(e.notes){const n=zn(e.notes.notes,t);if(n)return function(e,t){if(e?.noteEffects){const n=ls(e.noteEffects,[jn,In],t);if(null!=n)return n}return null}(n,t)}if(e.beatEffects){const n=ls(e.beatEffects,In,t);if(null!=n)return n}return null}(r,s):null})}function ls(e,t,n){const s=zn(e.properties,n);if(s){let e;if(Array.isArray(t)){for(const n of t)if(e=n.get(s.property.text.toLowerCase()),e)break}else e=t.get(s.property.text.toLowerCase());if(e){if(s.property.start.offset<=n&&n<=s.property.end.offset)return{contents:{kind:"markdown",value:hs(e,e.property)}};if(s.arguments){const t=cs(s.arguments,e.signatures,n);if(t)return t}}}return null}function cs(t,n,s){const i=zn(t.arguments,s);if(i){const s=t.arguments.indexOf(i),r=qn(n,t).values().next().value;if(r&&s<r.parameters.length){const t=r.parameters[s],n=function(t){switch(t.nodeType){case e.importer.alphaTex.AlphaTexNodeType.Ident:case e.importer.alphaTex.AlphaTexNodeType.String:return t.text;case e.importer.alphaTex.AlphaTexNodeType.Number:return t.value.toString()}return""}(i).toLowerCase(),o=t.values?.find(e=>e.name.toLowerCase()===n);if(o)return{contents:{kind:"markdown",value:(a=o,[`## ${a.name}`,a.longDescription??a.shortDescription,""].join("\n"))}}}}var a;return null}function hs(e,t,n="Syntax"){return[`## ${e.shortDescription}`,e.longDescription?`**Description:** ${e.longDescription}`:"","",`**${n}:**`,"```alphatex",...e.signatures.map((n,s)=>function(e,t,n,s){let i="";s?i+=`// [${n+1}]: ${t.description??""}\n`:t.description&&(i+=`// ${t.description}\n`);i+=e,t.parameters.length>0&&(i+=`(${t.parameters.map(e=>Un(e,!0)).join(" ")})`);return i}(t,n,s,e.signatures.length>1)),"```","",ds(e.signatures)].join("\n")}function ds(e){if(0===e.length||1===e.length&&0===e[0].parameters.length)return"";return e.length>1?["","**Parameters:**","| Overload | Name | Description | Type | Required |","|----------|------|-------------|------|----------|",...e.flatMap((e,t)=>e.parameters.map(e=>`| \`[${t+1}]\` | \`${e.name}\` | ${(e.longDescription??e.shortDescription)?.replaceAll("\n","<br />")??""} | \`${Zn(e).replaceAll("|","\\|")}\` | ${ms(e.parseMode)?"yes":"no"} ${e.defaultValue??""} |`))].join("\n"):["","**Parameters:**","| Name | Description | Type | Required |","|------|-------------|------|----------|",...e.flatMap(e=>e.parameters.map(e=>`| \`${e.name}\` | ${(e.longDescription??e.shortDescription)?.replaceAll("\n","<br />")??""} | \`${Zn(e).replaceAll("|","\\|")}\` | ${ms(e.parseMode)?"yes":"no"} ${e.defaultValue??""} |`))].join("\n")}function ms(t){switch(t){case e.importer.alphaTex.ArgumentListParseTypesMode.Required:case e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat:case e.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList:return!0;default:return!1}}function us(e,t){e.onSignatureHelp(e=>{const n=t.get(e.textDocument.uri);if(!n?.ast)return null;const s=n.offsetAt(e.position),i=zn(n.ast.bars,s);if(!i)return null;const a=zn(i.metaData,s);if(a)return function(e,t){const n=Ln.get(`\\${e.tag.tag.text.toLowerCase()}`);if(!n)return null;const s=e.arguments?.end.offset??e.properties?.start.offset??e.end.offset;if(e.start.offset<=t&&t<s)return gs(`\\${e.tag.tag.text}`,n,e.arguments,t);if(e.properties&&n.properties){const s=fs(e.properties,n.properties,t);if(null!=s)return s}return null}(a,s);const r=zn(i.beats,s);return r?function(e,t){if(e.durationChange?.properties){const n=fs(e.durationChange.properties,On,t);if(null!=n)return n}if(e.notes){const n=zn(e.notes.notes,t);if(n)return function(e,t){if(e?.noteEffects){const n=fs(e.noteEffects,[jn,In],t);if(null!=n)return n}return null}(n,t)}if(e.beatEffects){const n=fs(e.beatEffects,In,t);if(null!=n)return n}return null}(r,s):null})}function fs(e,t,n){const s=zn(e.properties,n);if(!s)return null;let i;if(Array.isArray(t)){for(const e of t)if(i=e.get(s.property.text.toLowerCase()),i)break}else i=t.get(s.property.text.toLowerCase());return i?gs(s.property.text,i,s.arguments,n):null}function gs(e,t,n,s){const i={signatures:t.signatures.map(n=>function(e,t,n){const s=h.create(`${e} `,t.longDescription??t.shortDescription);s.label+=" (";for(let e=0;e<n.parameters.length;e++)e>0&&(s.label+=" "),ys(s,n.parameters[e]);return s.label+=")",s}(e,t,n)),activeSignature:void 0,activeParameter:void 0};if(!n)return i;if(void 0!==n.signatureCandidateIndices){i.activeSignature=n.signatureCandidateIndices[0];const e=zn(n.arguments,s);if(e&&void 0!==e.parameterIndices)for(const[t,n]of e.parameterIndices)n>=0&&(i.signatures[t].activeParameter=n)}return i}function ys(e,t){const n=e.label.length;e.label+=Un(t,!1);const s=e.label.length;e.parameters.push(d.create([n,s],t.longDescription??t.shortDescription))}function Ds(e){const r=new t(a);e.onInitialize(e=>{const t=e.capabilities,n=!(!t.workspace||!t.workspace.workspaceFolders),a={capabilities:{textDocumentSync:i.Incremental,positionEncoding:s.UTF16,completionProvider:{resolveProvider:!0},signatureHelpProvider:{triggerCharacters:["("]},diagnosticProvider:{interFileDependencies:!1,workspaceDiagnostics:!1},hoverProvider:{}}};return n&&(a.capabilities.workspace={workspaceFolders:{supported:!0}}),a}),function(e,t){e.languages.diagnostics.on(async e=>{const s=t.get(e.textDocument.uri);return void 0!==s?{kind:n.Full,items:await os(s)}:{kind:n.Full,items:[]}}),t.onDidChangeContent(async e=>{await os(e.document)})}(e,r),_n(e,r),ps(e,r),us(e,r),r.listen(e),e.listen()}function bs(e,t){Ds(m(new u(e),new f(t)))}function ws(){Ds(g(y.all))}const vs={structuralMetaData:Hn,scoreMetaData:Pn,staffMetaData:En,barMetaData:Nn,durationChangeProperties:On,beatProperties:In,noteProperties:jn},Ts={$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"alphaTex",scopeName:"source.alphatex",uuid:"1ebe68ca-6558-428e-a6af-90831f41e88e",patterns:[{include:"#statements"}],repository:{statements:{patterns:[{include:"#string"},{include:"#comment"},{include:"#metadata"},{include:"#literal"},{include:"#expression"},{include:"#punctuation-pipe"},{include:"#punctuation-dot"}]},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"}]},"qstring-single":{name:"string.quoted.single.alphatex",begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.alphatex"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.alphatex"},2:{name:"invalid.illegal.newline.alphatex"}},patterns:[{include:"#string-character-escape"}]},"qstring-double":{name:"string.quoted.double.alphatex",begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.alphatex"}},end:'(")|((?:[^\\\\\\n])$)',endCaptures:{1:{name:"punctuation.definition.string.end.alphatex"},2:{name:"invalid.illegal.newline.alphatex"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.alphatex",match:"\\\\(u[0-9A-Fa-f]{4}|.|$)"},comment:{patterns:[{name:"comment.block.alphatex",begin:"/\\*",beginCaptures:{0:{name:"punctuation.definition.comment.alphatex"}},end:"\\*/",endCaptures:{0:{name:"punctuation.definition.comment.alphatex"}}},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.alphatex"}},end:"(?=$)",patterns:[{name:"comment.line.double-slash.alphatex",begin:"//",beginCaptures:{0:{name:"punctuation.definition.comment.alphatex"}},end:"(?=$)"}]}]},literal:{patterns:[{include:"#numeric-literal"}]},"numeric-literal":{name:"constant.numeric.decimal.alphatex",match:"[0-9]+",captures:{0:{name:"constant.numeric.decimal.alphatex"}}},expression:{patterns:[{include:"#string"},{include:"#comment"},{include:"#literal"},{include:"#identifier"},{include:"#valueList"},{include:"#properties"},{include:"#punctuation"}]},valueList:{begin:"\\(",beginCaptures:{0:{name:"punctuation.definition.value-list.begin.js"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.value-list.end.js"}},patterns:[{include:"#string"},{include:"#comment"},{include:"#literal"},{include:"#identifier"}]},properties:{begin:"\\{",beginCaptures:{0:{name:"punctuation.definition.properties.begin.js"}},end:"\\}",endCaptures:{0:{name:"punctuation.definition.properties.end.js"}},patterns:[{include:"#string"},{include:"#comment"},{include:"#literal"},{include:"#identifier"},{include:"#valueList"}]},metadata:{name:"keyword.metadata.alphatex",match:"\\\\{1,2}[^\\s]+",captures:{0:{name:"keyword.metadata.alphatex"}}},identifier:{name:"variable.identifier.alphatex",match:"[^/\"'-\\.:\\(\\)\\{\\}\\|\\*\\\\\\s][^/\"'\\.:\\(\\)\\{\\}\\|\\*\\\\\\s]+",captures:{0:{name:"variable.identifier.alphatex"}}},punctuation:{patterns:[{include:"#punctuation-dot"},{include:"#punctuation-pipe"},{include:"#punctuation-asterisk"}]},"punctuation-pipe":{name:"punctuation.bar.alphatex",match:"\\|"},"punctuation-dot":{name:"punctuation.dot.alphatex",match:"\\."},"punctuation-asterisk":{name:"punctuation.asterisk.alphatex",match:"\\*"}}},ks={comments:{lineComment:{comment:"//",noIndent:!1},blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]};import.meta.main&&ws();export{vs as documentation,ks as languageConfiguration,ws as startNodeLanguageServer,bs as startWebWorkerLanguageServer,Ts as textMateGrammar};
|