{"version":3,"file":"server.mjs","names":[],"sources":["../../alphatex/src/metadata/bar/ac.ts","../../alphatex/src/enum.ts","../../alphatex/src/metadata/bar/accidentals.ts","../../alphatex/src/metadata/bar/ae.ts","../../alphatex/src/metadata/bar/barlineleft.ts","../../alphatex/src/metadata/bar/barlineright.ts","../../alphatex/src/metadata/bar/clef.ts","../../alphatex/src/metadata/bar/ft.ts","../../alphatex/src/metadata/bar/jump.ts","../../alphatex/src/metadata/bar/ks.ts","../../alphatex/src/metadata/bar/ottava.ts","../../alphatex/src/metadata/bar/rc.ts","../../alphatex/src/metadata/bar/ro.ts","../../alphatex/src/metadata/bar/scale.ts","../../alphatex/src/metadata/bar/section.ts","../../alphatex/src/metadata/bar/simile.ts","../../alphatex/src/metadata/bar/spd.ts","../../alphatex/src/metadata/bar/sph.ts","../../alphatex/src/metadata/bar/spu.ts","../../alphatex/src/metadata/bar/sync.ts","../../alphatex/src/metadata/bar/tempo.ts","../../alphatex/src/metadata/bar/tf.ts","../../alphatex/src/metadata/bar/ts.ts","../../alphatex/src/metadata/bar/width.ts","../../alphatex/src/metadata/score/title.ts","../../alphatex/src/metadata/score/album.ts","../../alphatex/src/metadata/score/artist.ts","../../alphatex/src/metadata/score/bracketextendmode.ts","../../alphatex/src/metadata/score/copyright.ts","../../alphatex/src/metadata/score/copyright2.ts","../../alphatex/src/metadata/score/defaultsystemslayout.ts","../../alphatex/src/metadata/score/firstsystemtracknamemode.ts","../../alphatex/src/metadata/score/firstsystemtracknameorientation.ts","../../alphatex/src/metadata/score/hidedynamics.ts","../../alphatex/src/metadata/score/instructions.ts","../../alphatex/src/metadata/score/multibarrest.ts","../../alphatex/src/metadata/score/multitracktracknamepolicy.ts","../../alphatex/src/metadata/score/music.ts","../../alphatex/src/metadata/score/notices.ts","../../alphatex/src/metadata/score/othersystemtracknamemode.ts","../../alphatex/src/metadata/score/othersystemtracknameorientation.ts","../../alphatex/src/metadata/score/showdynamics.ts","../../alphatex/src/metadata/score/singletracktracknamepolicy.ts","../../alphatex/src/metadata/score/subtitle.ts","../../alphatex/src/metadata/score/systemslayout.ts","../../alphatex/src/metadata/score/tab.ts","../../alphatex/src/metadata/score/usesystemsignseparator.ts","../../alphatex/src/metadata/score/words.ts","../../alphatex/src/metadata/score/wordsandmusic.ts","../../alphatex/src/metadata/staff/articulation.ts","../../alphatex/src/metadata/staff/capo.ts","../../alphatex/src/common.ts","../../alphatex/src/metadata/staff/chord.ts","../../alphatex/src/metadata/staff/displaytranspose.ts","../../alphatex/src/metadata/staff/lyrics.ts","../../alphatex/src/metadata/staff/transpose.ts","../../alphatex/src/metadata/staff/tuning.ts","../../alphatex/src/metadata/structural/staff.ts","../../alphatex/src/properties/beat/instrument.ts","../../alphatex/src/metadata/structural/track.ts","../../alphatex/src/metadata/structural/voice.ts","../../alphatex/src/properties/beat/ad.ts","../../alphatex/src/properties/beat/au.ts","../../alphatex/src/properties/beat/balance.ts","../../alphatex/src/properties/beat/bank.ts","../../alphatex/src/properties/beat/barre.ts","../../alphatex/src/properties/beat/bd.ts","../../alphatex/src/properties/beat/beam.ts","../../alphatex/src/properties/beat/bu.ts","../../alphatex/src/properties/beat/ch.ts","../../alphatex/src/properties/beat/cre.ts","../../alphatex/src/properties/beat/d.ts","../../alphatex/src/properties/beat/dd.ts","../../alphatex/src/properties/beat/dec.ts","../../alphatex/src/properties/beat/ds.ts","../../alphatex/src/properties/beat/dy.ts","../../alphatex/src/properties/beat/f.ts","../../alphatex/src/properties/beat/fermata.ts","../../alphatex/src/properties/beat/fo.ts","../../alphatex/src/properties/beat/glpf.ts","../../alphatex/src/properties/beat/glpt.ts","../../alphatex/src/properties/beat/gr.ts","../../alphatex/src/properties/beat/legatoOrigin.ts","../../alphatex/src/properties/beat/lyrics.ts","../../alphatex/src/properties/beat/ot.ts","../../alphatex/src/properties/beat/p.ts","../../alphatex/src/properties/beat/rasg.ts","../../alphatex/src/properties/beat/s.ts","../../alphatex/src/properties/beat/sd.ts","../../alphatex/src/properties/beat/slashed.ts","../../alphatex/src/properties/beat/spd.ts","../../alphatex/src/properties/beat/spe.ts","../../alphatex/src/properties/beat/sph.ts","../../alphatex/src/properties/beat/spu.ts","../../alphatex/src/properties/beat/su.ts","../../alphatex/src/properties/beat/tb.ts","../../alphatex/src/properties/beat/tbe.ts","../../alphatex/src/properties/beat/tempo.ts","../../alphatex/src/properties/beat/timer.ts","../../alphatex/src/properties/beat/tp.ts","../../alphatex/src/properties/beat/tt.ts","../../alphatex/src/properties/beat/tu.ts","../../alphatex/src/properties/beat/txt.ts","../../alphatex/src/properties/beat/v.ts","../../alphatex/src/properties/beat/volume.ts","../../alphatex/src/properties/beat/vs.ts","../../alphatex/src/properties/beat/vw.ts","../../alphatex/src/properties/beat/wahc.ts","../../alphatex/src/properties/beat/waho.ts","../../alphatex/src/properties/note/ac.ts","../../alphatex/src/properties/note/acc.ts","../../alphatex/src/properties/note/ah.ts","../../alphatex/src/properties/note/b.ts","../../alphatex/src/properties/note/be.ts","../../alphatex/src/properties/note/fh.ts","../../alphatex/src/properties/note/g.ts","../../alphatex/src/properties/note/h.ts","../../alphatex/src/properties/note/hac.ts","../../alphatex/src/properties/note/hide.ts","../../alphatex/src/properties/note/iturn.ts","../../alphatex/src/properties/note/lf.ts","../../alphatex/src/properties/note/lht.ts","../../alphatex/src/properties/note/lmordent.ts","../../alphatex/src/properties/note/lr.ts","../../alphatex/src/properties/note/nh.ts","../../alphatex/src/properties/note/ph.ts","../../alphatex/src/properties/note/pm.ts","../../alphatex/src/properties/note/psd.ts","../../alphatex/src/properties/note/psu.ts","../../alphatex/src/properties/note/rf.ts","../../alphatex/src/properties/note/sh.ts","../../alphatex/src/properties/note/sia.ts","../../alphatex/src/properties/note/sib.ts","../../alphatex/src/properties/note/sl.ts","../../alphatex/src/properties/note/slur.ts","../../alphatex/src/properties/note/sod.ts","../../alphatex/src/properties/note/sou.ts","../../alphatex/src/properties/note/ss.ts","../../alphatex/src/properties/note/st.ts","../../alphatex/src/properties/note/string.ts","../../alphatex/src/properties/note/t.ts","../../alphatex/src/properties/note/ten.ts","../../alphatex/src/properties/note/th.ts","../../alphatex/src/properties/note/tr.ts","../../alphatex/src/properties/note/turn.ts","../../alphatex/src/properties/note/umordent.ts","../../alphatex/src/properties/note/v.ts","../../alphatex/src/properties/note/vw.ts","../../alphatex/src/properties/note/x.ts","../../alphatex/src/metadata/bar/db.ts","../../alphatex/src/metadata/bar/voiceMode.ts","../../alphatex/src/metadata/score/defaultbarnumberdisplay.ts","../../alphatex/src/metadata/score/chordDiagramsInScore.ts","../../alphatex/src/metadata/score/extendbarlines.ts","../../alphatex/src/metadata/score/hideemptystaves.ts","../../alphatex/src/metadata/score/hideemptystavesinfirstsystem.ts","../../alphatex/src/metadata/score/showsinglestaffbrackets.ts","../../alphatex/src/metadata/staff/instrument.ts","../../alphatex/src/metadata/bar/barnumberdisplay.ts","../../alphatex/src/metadata/bar/beamingRule.ts","../../alphatex/src/definitions.ts","../src/server/utils.ts","../src/server/completion.ts","../src/server/diagnostics.ts","../src/server/hover.ts","../src/server/signatureHelp.ts","../src/server/index.ts","../src/alphatex.tmLanguage.json","../src/language-configuration.json","../src/index.ts"],"sourcesContent":["import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ac: MetadataTagDefinition = {\n    tag: '\\\\ac',\n    snippet: '\\\\ac $0',\n    shortDescription: 'Mark an anacrusis (pick-up) bar',\n    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    `,\n    signatures: [{ parameters: [] }],\n    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        `\n};\n","/** biome-ignore-all lint/style/useNamingConvention: Quite many mappings in here */\n\nimport * as alphaTab from '@coderline/alphatab';\nimport type { ParameterValueDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const alphaTexMappedEnumLookup = {\n    WhammyType: alphaTab.model.WhammyType,\n    BendStyle: alphaTab.model.BendStyle,\n    GraceType: alphaTab.model.GraceType,\n    FermataType: alphaTab.model.FermataType,\n    AlphaTexAccidentalMode: alphaTab.importer.alphaTex.AlphaTexAccidentalMode,\n    AlphaTexVoiceMode: alphaTab.importer.alphaTex.AlphaTexVoiceMode,\n    NoteAccidentalMode: alphaTab.model.NoteAccidentalMode,\n    BarreShape: alphaTab.model.BarreShape,\n    Ottavia: alphaTab.model.Ottavia,\n    Rasgueado: alphaTab.model.Rasgueado,\n    DynamicValue: alphaTab.model.DynamicValue,\n    BracketExtendMode: alphaTab.model.BracketExtendMode,\n    TrackNamePolicy: alphaTab.model.TrackNamePolicy,\n    TrackNameOrientation: alphaTab.model.TrackNameOrientation,\n    TrackNameMode: alphaTab.model.TrackNameMode,\n    TextAlign: alphaTab.platform.TextAlign,\n    BendType: alphaTab.model.BendType,\n    KeySignature: alphaTab.model.KeySignature,\n    KeySignatureType: alphaTab.model.KeySignatureType,\n    Clef: alphaTab.model.Clef,\n    TripletFeel: alphaTab.model.TripletFeel,\n    BarLineStyle: alphaTab.model.BarLineStyle,\n    SimileMark: alphaTab.model.SimileMark,\n    Direction: alphaTab.model.Direction,\n    TremoloPickingStyle: alphaTab.model.TremoloPickingStyle,\n    BarNumberDisplay: alphaTab.model.BarNumberDisplay\n};\nexport type AlphaTexMappedEnumName = keyof typeof alphaTexMappedEnumLookup;\n\nexport type AlphaTexMappedEnumMappingEntry =\n    | (Pick<ParameterValueDefinition, 'shortDescription' | 'longDescription' | 'snippet'> &\n          Partial<ParameterValueDefinition> & {\n              aliases?: string[];\n              allowNumeric?: boolean;\n          })\n    | null;\n\nexport const alphaTexMappedEnumMapping: {\n    [K in AlphaTexMappedEnumName]: Record<keyof (typeof alphaTexMappedEnumLookup)[K], AlphaTexMappedEnumMappingEntry>;\n} = {\n    WhammyType: {\n        None: null,\n        Custom: { snippet: 'custom', shortDescription: 'Non standard custom whammys with multiple points' },\n        Dive: { snippet: 'dive', shortDescription: 'A gradual change between two points' },\n        Dip: { snippet: 'dip', shortDescription: 'A A->B->A whammy pattern.' },\n        Hold: { snippet: 'hold', shortDescription: 'Holding whammys (on tied notes).' },\n        Predive: { snippet: 'predive', shortDescription: 'Press/pull before playing the note and then kept' },\n        PrediveDive: {\n            snippet: 'prediveDive',\n            shortDescription: 'Whammy bar is pressed/pulled before playing the note and then further pressed/released'\n        }\n    },\n    BendStyle: {\n        Default: {\n            snippet: 'default',\n            shortDescription: '',\n            longDescription: 'No additional text is shown, the offsets and values are respected as specified.'\n        },\n        Gradual: {\n            snippet: 'gradual',\n            shortDescription: '',\n            longDescription:\n                'Will show an additional \"grad.\" on the line. The audio is generated according to the type spread evenly across the play duration.'\n        },\n        Fast: {\n            snippet: 'fast',\n            shortDescription: '',\n            longDescription:\n                'No additional text is shown. The audio is generated according to the type spread evenly across the fixed duration set via settings.player.songBookBendDuration.'\n        }\n    },\n    GraceType: {\n        None: null,\n        OnBeat: {\n            snippet: 'onBeat',\n            shortDescription: 'On-Beat',\n            longDescription:\n                '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.',\n            aliases: ['ob']\n        },\n        BeforeBeat: {\n            snippet: 'beforeBeat',\n            shortDescription: 'Before-Beat',\n            longDescription:\n                'A Before-Beat grace note where this beat will start before the next beat and steal its play time from the previous beat.',\n\n            aliases: ['bb']\n        },\n        BendGrace: {\n            snippet: 'bendGrace',\n            shortDescription: 'Bend',\n            longDescription:\n                \"A bend grace note, a mechanism used in alphaTab for the 'songbook style' bends notes. You will likely not apply this type manually.\",\n            aliases: ['b']\n        }\n    },\n    FermataType: {\n        Short: { snippet: 'short', shortDescription: '' },\n        Medium: { snippet: 'medium', shortDescription: '' },\n        Long: { snippet: 'long', shortDescription: '' }\n    },\n    AlphaTexAccidentalMode: {\n        Auto: { snippet: 'auto', shortDescription: 'Automatic (Based on Pitch)' },\n        Explicit: { snippet: 'explicit', shortDescription: 'Explicit (as Written)' }\n    },\n    AlphaTexVoiceMode: {\n        StaffWise: {\n            snippet: 'staffWise',\n            shortDescription: 'Staff-Wise voices',\n            longDescription: 'A new voice resets to bar 1 from where the notation of a new voice can be added.'\n        },\n        BarWise: {\n            snippet: 'barWise',\n            shortDescription: 'Bar-Wise voices',\n            longDescription: 'A new voice adds a new voice to the current bar only.'\n        }\n    },\n    NoteAccidentalMode: {\n        Default: { snippet: 'default', shortDescription: 'Auto-detect the accidentals', aliases: ['d'] },\n        ForceNone: { snippet: 'forceNone', shortDescription: 'Force no accidentals', aliases: ['-'] },\n        ForceNatural: { snippet: 'forceNatural', shortDescription: 'Force a naturalize accidental', aliases: ['n'] },\n        ForceSharp: { snippet: 'forceSharp', shortDescription: 'Force a sharp accidental', aliases: ['#'] },\n        ForceDoubleSharp: {\n            snippet: 'forceDoubleSharp',\n            shortDescription: 'Force a double-sharp accidental',\n            aliases: ['##', 'x']\n        },\n        ForceFlat: { snippet: 'forceFlat', shortDescription: 'Force a flat accidental', aliases: ['b'] },\n        ForceDoubleFlat: {\n            snippet: 'forceDoubleFlat',\n            shortDescription: 'Force a double flat accidental',\n            aliases: ['bb']\n        }\n    },\n    BarreShape: {\n        None: null,\n        Full: { snippet: 'full', shortDescription: '' },\n        Half: { snippet: 'half', shortDescription: '' }\n    },\n    Ottavia: {\n        _15ma: { snippet: '15ma', shortDescription: 'Quindicesima (+2 octaves)', aliases: ['15ma'] },\n        _8va: { snippet: '8va', shortDescription: 'Ottava (+1 octave)', aliases: ['8va'] },\n        Regular: { snippet: 'regular', shortDescription: 'Regular' },\n        _8vb: { snippet: '8vb', shortDescription: 'Ottava Bassa (-1 octave)', aliases: ['8vb'] },\n        _15mb: { snippet: '15mb', shortDescription: 'Quindicesima bassa (-2 octaves)', aliases: ['15mb'] }\n    },\n    Rasgueado: {\n        None: null,\n        Ii: { snippet: 'ii', shortDescription: 'ii' },\n        Mi: { snippet: 'mi', shortDescription: 'mi' },\n        MiiTriplet: { snippet: 'miiTriplet', shortDescription: 'mii (triplet)' },\n        MiiAnapaest: { snippet: 'miiAnapaest', shortDescription: 'mii (anapaest)' },\n        PmpTriplet: { snippet: 'pmpTriplet', shortDescription: 'pmp (triplet)' },\n        PmpAnapaest: { snippet: 'pmpAnapaest', shortDescription: 'pmp (anapaest)' },\n        PeiTriplet: { snippet: 'peiTriplet', shortDescription: 'pei (triplet)' },\n        PeiAnapaest: { snippet: 'peiAnapaest', shortDescription: 'pei (anapaest)' },\n        PaiTriplet: { snippet: 'paiTriplet', shortDescription: 'pai (triplet)' },\n        PaiAnapaest: { snippet: 'paiAnapaest', shortDescription: 'pai (anapaest)' },\n        AmiTriplet: { snippet: 'amiTriplet', shortDescription: 'ami (triplet)' },\n        AmiAnapaest: { snippet: 'amiAnapaest', shortDescription: 'ami (anapaest)' },\n        Ppp: { snippet: 'ppp', shortDescription: 'ppp' },\n        Amii: { snippet: 'amii', shortDescription: 'amii' },\n        Amip: { snippet: 'amip', shortDescription: 'amip' },\n        Eami: { snippet: 'eami', shortDescription: 'eami' },\n        Eamii: { snippet: 'eamii', shortDescription: 'eamii' },\n        Peami: { snippet: 'peami', shortDescription: 'peami' }\n    },\n    DynamicValue: {\n        PPP: { snippet: 'ppp', shortDescription: '' },\n        PP: { snippet: 'pp', shortDescription: '' },\n        P: { snippet: 'p', shortDescription: '' },\n        MP: { snippet: 'mp', shortDescription: '' },\n        MF: { snippet: 'mf', shortDescription: '' },\n        F: { snippet: 'f', shortDescription: '' },\n        FF: { snippet: 'ff', shortDescription: '' },\n        FFF: { snippet: 'fff', shortDescription: '' },\n        PPPP: { snippet: 'pppp', shortDescription: '' },\n        PPPPP: { snippet: 'ppppp', shortDescription: '' },\n        PPPPPP: { snippet: 'pppppp', shortDescription: '' },\n        FFFF: { snippet: 'ffff', shortDescription: '' },\n        FFFFF: { snippet: 'fffff', shortDescription: '' },\n        FFFFFF: { snippet: 'ffffff', shortDescription: '' },\n        SF: { snippet: 'sf', shortDescription: '' },\n        SFP: { snippet: 'sfp', shortDescription: '' },\n        SFPP: { snippet: 'sfpp', shortDescription: '' },\n        FP: { snippet: 'fp', shortDescription: '' },\n        RF: { snippet: 'rf', shortDescription: '' },\n        RFZ: { snippet: 'rfz', shortDescription: '' },\n        SFZ: { snippet: 'sfz', shortDescription: '' },\n        SFFZ: { snippet: 'sffz', shortDescription: '' },\n        FZ: { snippet: 'fz', shortDescription: '' },\n        N: { snippet: 'n', shortDescription: '' },\n        PF: { snippet: 'pf', shortDescription: '' },\n        SFZP: { snippet: 'sfzp', shortDescription: '' }\n    },\n    BracketExtendMode: {\n        NoBrackets: {\n            snippet: 'noBrackets',\n            shortDescription: 'No brackets',\n            longDescription: 'No brackets will be draw at all.'\n        },\n        GroupStaves: {\n            snippet: 'groupStaves',\n            shortDescription: 'Group staves of same track',\n            longDescription:\n                '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.'\n        },\n        GroupSimilarInstruments: {\n            snippet: 'groupSimilarInstruments',\n            shortDescription: 'Group similar instruments',\n            longDescription:\n                'Multiple tracks of the same instrument will be grouped together. No grouping happens if the staves of an instrument require a brace.'\n        }\n    },\n    TrackNamePolicy: {\n        Hidden: { snippet: 'hidden', shortDescription: 'Track names are hidden everywhere.' },\n        FirstSystem: { snippet: 'firstSystem', shortDescription: 'Track names are displayed on the first system.' },\n        AllSystems: { snippet: 'allSystems', shortDescription: 'Track names are displayed on all systems.' }\n    },\n    TrackNameOrientation: {\n        Horizontal: { snippet: 'horizontal', shortDescription: 'Text is shown horizontally (left-to-right).' },\n        Vertical: { snippet: 'vertical', shortDescription: 'Vertically rotated (bottom-to-top).' }\n    },\n    TrackNameMode: {\n        FullName: { snippet: 'fullName', shortDescription: 'Short track names (abbreviations) are displayed.' },\n        ShortName: { snippet: 'shortName', shortDescription: 'Full track names are displayed.' }\n    },\n    TextAlign: {\n        Left: {\n            snippet: 'left',\n            shortDescription: 'Left-align the text'\n        },\n        Center: {\n            snippet: 'center',\n            shortDescription: 'Center-align the text'\n        },\n        Right: {\n            snippet: 'right',\n            shortDescription: 'Right-align the text'\n        }\n    },\n    BendType: {\n        None: null,\n        Custom: { snippet: 'custom', shortDescription: 'A non-standard custom bends with multiple points' },\n        Bend: { snippet: 'bend', shortDescription: 'A simple bend up to a higher note' },\n        Release: { snippet: 'release', shortDescription: 'A release of bends down to a lower note' },\n        BendRelease: { snippet: 'bendRelease', shortDescription: 'A bend directly followed by a release' },\n        Hold: { snippet: 'hold', shortDescription: 'A bend which is held from the previous note' },\n        Prebend: { snippet: 'prebend', shortDescription: 'A bend applied before the note is played' },\n        PrebendBend: { snippet: 'prebendBend', shortDescription: 'A pre-bend followed by a bend' },\n        PrebendRelease: { snippet: 'prebendRelease', shortDescription: 'A pre-bend followed by a release' }\n    },\n    KeySignature: {\n        Cb: { snippet: 'cb', shortDescription: '', aliases: ['cbmajor', 'abminor'] },\n        Gb: { snippet: 'gb', shortDescription: '', aliases: ['gbmajor', 'ebminor'] },\n        Db: { snippet: 'db', shortDescription: '', aliases: ['dbmajor', 'bbminor'] },\n        Ab: { snippet: 'ab', shortDescription: '', aliases: ['abmajor', 'fminor'] },\n        Eb: { snippet: 'eb', shortDescription: '', aliases: ['ebmajor', 'cminor'] },\n        Bb: { snippet: 'bb', shortDescription: '', aliases: ['bbmajor', 'gminor'] },\n        F: { snippet: 'f', shortDescription: '', aliases: ['fmajor', 'dminor'] },\n        C: { snippet: 'c', shortDescription: '', aliases: ['cmajor', 'aminor'] },\n        G: { snippet: 'g', shortDescription: '', aliases: ['gmajor', 'eminor'] },\n        D: { snippet: 'd', shortDescription: '', aliases: ['dmajor', 'bminor'] },\n        A: { snippet: 'a', shortDescription: '', aliases: ['amajor', 'f#minor'] },\n        E: { snippet: 'e', shortDescription: '', aliases: ['emajor', 'c#minor'] },\n        B: { snippet: 'b', shortDescription: '', aliases: ['bmajor', 'g#minor'] },\n        FSharp: { snippet: 'f#', shortDescription: '', aliases: ['f#major', 'd#minor', 'f#'] },\n        CSharp: { snippet: 'c#', shortDescription: '', aliases: ['c#major', 'a#minor', 'c#'] }\n    },\n    KeySignatureType: {\n        Major: {\n            snippet: 'major',\n            shortDescription: '',\n            aliases: [\n                'cb',\n                'cbmajor',\n\n                'gb',\n                'gbmajor',\n\n                'db',\n                'dbmajor',\n\n                'ab',\n                'abmajor',\n\n                'eb',\n                'ebmajor',\n\n                'bb',\n                'bbmajor',\n\n                'f',\n                'fmajor',\n\n                'c',\n                'cmajor',\n\n                'g',\n                'gmajor',\n\n                'd',\n                'dmajor',\n\n                'a',\n                'amajor',\n\n                'e',\n                'emajor',\n\n                'b',\n                'bmajor',\n\n                'f#',\n                'f#major',\n\n                'c#',\n                'c#major'\n            ]\n        },\n        Minor: {\n            snippet: 'minor',\n            shortDescription: '',\n            aliases: [\n                'abminor',\n                'ebminor',\n                'bbminor',\n                'fminor',\n                'cminor',\n                'gminor',\n                'dminor',\n                'aminor',\n                'eminor',\n                'bminor',\n                'f#minor',\n                'c#minor',\n                'g#minor',\n                'd#minor',\n                'a#minor'\n            ]\n        }\n    },\n    Clef: {\n        Neutral: { snippet: 'neutral', shortDescription: '', aliases: ['n'], allowNumeric: true },\n        C3: { snippet: 'c3', shortDescription: '', aliases: ['alto'], allowNumeric: true },\n        C4: { snippet: 'c4', shortDescription: '', aliases: ['tenor'], allowNumeric: true },\n        F4: { snippet: 'f4', shortDescription: '', aliases: ['bass'], allowNumeric: true },\n        G2: { snippet: 'g2', shortDescription: '', aliases: ['treble'], allowNumeric: true }\n    },\n    TripletFeel: {\n        NoTripletFeel: {\n            snippet: 'none',\n            shortDescription: 'No triplet feel',\n            aliases: ['none', 'no', 'noTripletFeel'],\n            allowNumeric: true\n        },\n        Triplet16th: {\n            snippet: 'triplet16th',\n            shortDescription: 'Triplet 16th',\n            aliases: ['t16', 'triplet-16th'],\n            allowNumeric: true\n        },\n        Triplet8th: {\n            snippet: 'triplet8th',\n            shortDescription: 'Triplet 8th',\n            aliases: ['t8', 'triplet-8th'],\n            allowNumeric: true\n        },\n        Dotted16th: {\n            snippet: 'dotted16th',\n            shortDescription: 'Dotted 16th',\n            aliases: ['d16', 'dotted-16th'],\n            allowNumeric: true\n        },\n        Dotted8th: {\n            snippet: 'dotted8th',\n            shortDescription: 'Dotted 8th',\n            aliases: ['d8', 'dotted-8th'],\n            allowNumeric: true\n        },\n        Scottish16th: {\n            snippet: 'scottish16th',\n            shortDescription: 'Scottish 16th',\n            aliases: ['s16', 'scottish-16th'],\n            allowNumeric: true\n        },\n        Scottish8th: {\n            snippet: 'scottish8th',\n            shortDescription: 'Scottish 8th',\n            aliases: ['s8', 'scottish-8th'],\n            allowNumeric: true\n        }\n    },\n    BarLineStyle: {\n        Automatic: { snippet: 'automatic', shortDescription: 'Auto detect line to show' },\n        Dashed: { snippet: 'dashed', shortDescription: '' },\n        Dotted: { snippet: 'dotted', shortDescription: '' },\n        Heavy: { snippet: 'heavy', shortDescription: '' },\n        HeavyHeavy: { snippet: 'heavyHeavy', shortDescription: '' },\n        HeavyLight: { snippet: 'heavyLight', shortDescription: '' },\n        LightHeavy: { snippet: 'lightHeavy', shortDescription: '' },\n        LightLight: { snippet: 'lightLight', shortDescription: '' },\n        None: { snippet: 'none', shortDescription: '' },\n        Regular: { snippet: 'regular', shortDescription: '' },\n        Short: { snippet: 'short', shortDescription: '' },\n        Tick: { snippet: 'tick', shortDescription: '' }\n    },\n    SimileMark: {\n        None: {\n            snippet: 'none',\n            shortDescription: 'No simile mark is applied',\n            deprecated: 'Do not apply a `\\\\simile` if there is none.'\n        },\n        Simple: { snippet: 'simple', shortDescription: 'A simple simile mark. The previous bar is repeated.' },\n        FirstOfDouble: {\n            snippet: 'firstOfDouble',\n            shortDescription: 'A double simile mark. This value is assigned to the first bar of the 2 repeat bars.'\n        },\n        SecondOfDouble: {\n            snippet: 'secondOfDouble',\n            shortDescription: 'A double simile mark. This value is assigned to the second bar of the 2 repeat bars.'\n        }\n    },\n    Direction: {\n        TargetFine: { snippet: 'fine', shortDescription: 'Fine (Target)' },\n        TargetSegno: { snippet: 'segno', shortDescription: 'Segno (Target)' },\n        TargetSegnoSegno: { snippet: 'segnoSegno', shortDescription: 'SegnoSegno (Target)' },\n        TargetCoda: { snippet: 'coda', shortDescription: 'Coda (Target)' },\n        TargetDoubleCoda: { snippet: 'doubleCoda', shortDescription: 'DoubleCoda (Target)' },\n        JumpDaCapo: { snippet: 'daCapo', shortDescription: 'DaCapo (Jump)' },\n        JumpDaCapoAlCoda: { snippet: 'daCapoAlCoda', shortDescription: 'DaCapoAlCoda (Jump)' },\n        JumpDaCapoAlDoubleCoda: { snippet: 'daCapoAlDoubleCoda', shortDescription: 'DaCapoAlDoubleCoda (Jump)' },\n        JumpDaCapoAlFine: { snippet: 'daCapoAlFine', shortDescription: 'DaCapoAlFine (Jump)' },\n        JumpDalSegno: { snippet: 'dalSegno', shortDescription: 'DalSegno (Jump)' },\n        JumpDalSegnoAlCoda: { snippet: 'dalSegnoAlCoda', shortDescription: 'DalSegnoAlCoda (Jump)' },\n        JumpDalSegnoAlDoubleCoda: { snippet: 'dalSegnoAlDoubleCoda', shortDescription: 'DalSegnoAlDoubleCoda (Jump)' },\n        JumpDalSegnoAlFine: { snippet: 'dalSegnoAlFine', shortDescription: 'DalSegnoAlFine (Jump)' },\n        JumpDalSegnoSegno: { snippet: 'dalSegnoSegno', shortDescription: 'DalSegnoSegno (Jump)' },\n        JumpDalSegnoSegnoAlCoda: { snippet: 'dalSegnoSegnoAlCoda', shortDescription: 'DalSegnoSegnoAlCoda (Jump)' },\n        JumpDalSegnoSegnoAlDoubleCoda: {\n            snippet: 'dalSegnoSegnoAlDoubleCoda',\n            shortDescription: 'DalSegnoSegnoAlDoubleCoda (Jump)'\n        },\n        JumpDalSegnoSegnoAlFine: { snippet: 'dalSegnoSegnoAlFine', shortDescription: 'DalSegnoSegnoAlFine (Jump)' },\n        JumpDaCoda: { snippet: 'daCoda', shortDescription: 'DaCoda (Jump)' },\n        JumpDaDoubleCoda: { snippet: 'daDoubleCoda', shortDescription: 'DaDoubleCoda (Jump)' }\n    },\n    TremoloPickingStyle: {\n        Default: { snippet: 'default', shortDescription: 'Default tremolo' },\n        BuzzRoll: { snippet: 'buzzRoll', shortDescription: 'Buzz roll tremolo' }\n    },\n    BarNumberDisplay: {\n        AllBars: { snippet: 'allBars', shortDescription: 'All bars' },\n        FirstOfSystem: { snippet: 'firstOfSystem', shortDescription: 'First bar of every system' },\n        Hide: { snippet: 'hide', shortDescription: 'Hide' }\n    }\n};\n\nexport function enumParameter<TType extends AlphaTexMappedEnumName>(type: TType) {\n    const mapping = alphaTexMappedEnumMapping[type] as Record<string, AlphaTexMappedEnumMappingEntry>;\n    const allowNumeric = Object.values(mapping).some(v => v?.allowNumeric);\n    return {\n        type: allowNumeric\n            ? [alphaTab.importer.alphaTex.AlphaTexNodeType.Ident, alphaTab.importer.alphaTex.AlphaTexNodeType.Number]\n            : alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n        allowAllStringTypes: true,\n        values: [\n            ...Object.values(mapping)\n                .filter(f => f !== null)\n                .map(\n                    val =>\n                        ({\n                            name: val.snippet,\n                            snippet: val.snippet,\n                            shortDescription: val.shortDescription,\n                            deprecated: val.deprecated,\n                            longDescription: val.longDescription,\n                            skip: val.skip\n                        }) satisfies ParameterValueDefinition\n                ),\n            ...Object.values(mapping)\n                .filter(f => f !== null && f.aliases)\n                .flatMap(val =>\n                    val!.aliases!.map(\n                        a =>\n                            ({\n                                name: a,\n                                snippet: a,\n                                shortDescription: val!.shortDescription,\n                                deprecated: val!.deprecated,\n                                longDescription: val!.longDescription,\n                                skip: val!.skip\n                            }) satisfies ParameterValueDefinition\n                    )\n                )\n        ]\n    };\n}\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const accidentals: MetadataTagDefinition = {\n    tag: '\\\\accidentals',\n    snippet: '\\\\accidentals $1 $0',\n    shortDescription: 'Changes the mode how accidentals are treated',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode which should be active',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('AlphaTexAccidentalMode')\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\accidentals explicit\n        C#4 C4 Eb4 Ax4 |\n        \\\\accidentals auto\n        C#4 C4 Eb4 Ax4 |\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ae: MetadataTagDefinition = {\n    tag: '\\\\ae',\n    snippet: '\\\\ae $1 $0',\n    shortDescription: 'Specify the alternate ending repeats.',\n    longDescription: `Specifies on which repeats a bar should be played (to build alternate endings).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'ending',\n                    shortDescription: 'The repeats on which the bar should be played',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\n\nimport type { MetadataTagDefinition } from '../../types';\n\nexport const barlineLeft: MetadataTagDefinition = {\n    tag: '\\\\barlineLeft',\n    snippet: '\\\\barlineLeft $1 $0',\n    shortDescription: 'The lines style shown left on the bar.',\n    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        `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'style',\n                    shortDescription: 'The line style to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('BarLineStyle')\n                }\n            ]\n        }\n    ],\n\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\n\nexport const barlineRight: MetadataTagDefinition = {\n    tag: '\\\\barlineRight',\n    snippet: '\\\\barlineRight $1 $0',\n    shortDescription: 'The lines style shown right on the bar.',\n    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        `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'style',\n                    shortDescription: 'The line style to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('BarLineStyle')\n                }\n            ]\n        }\n    ],\n\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\n\nexport const clef: MetadataTagDefinition = {\n    tag: '\\\\clef',\n    snippet: '\\\\clef $1 $0',\n    shortDescription: 'Set the clef.',\n    longDescription: `Changes the clef for this and subsequent bars.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'clef',\n                    shortDescription: 'The clef',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('Clef')\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\clef G2 | \\\\clef F4 | \\\\clef C3 | \\\\clef C4 | \\\\clef N |\n        \\\\clef Treble | \\\\clef Bass | \\\\clef Tenor | \\\\clef Alto | \\\\clef Neutral |\n        `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ft: MetadataTagDefinition = {\n    tag: '\\\\ft',\n    snippet: '\\\\ft $0',\n    shortDescription: 'Marks the bar as a free-time bar',\n    longDescription: `\n    Marks the bar as a free-time bar where players are free to vary the timing.\n    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :2 \n        C4*2 |\n        \\\\ft C4*2 |\n        \\\\ft C4*2 |\n        C4*2 |\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\n\nexport const jump: MetadataTagDefinition = {\n    tag: '\\\\jump',\n    snippet: '\\\\jump $1 $0',\n    shortDescription: 'Adds a direction/jump instruction to the bar.',\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'direction',\n                    shortDescription: 'The direction to add',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('Direction')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\n\nexport const ks: MetadataTagDefinition = {\n    tag: '\\\\ks',\n    snippet: '\\\\ks $1 $0',\n    shortDescription: 'Set the key signature',\n    longDescription: `Specifies the key signature for this and subsequent bars.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'key',\n                    shortDescription: 'The key signature',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('KeySignature')\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\ks Cb | \\\\ks C | \\\\ks C# |\n        \\\\ks Aminor | \\\\ks Dmajor | \\\\ks Bminor\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\n\nexport const ottava: MetadataTagDefinition = {\n    tag: '\\\\ottava',\n    snippet: '\\\\ottava $1 $0',\n    shortDescription: 'Set the clef ottava.',\n    longDescription: `Changes the clef ottave for this and subsequent bars.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'ottava',\n                    shortDescription: 'The clef ottava',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('Ottavia')\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\clef F4 \\\\ottava 15ma | | \\\\ottava regular | | \\\\clef C3 \\\\ottava 8vb | |\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const rc: MetadataTagDefinition = {\n    tag: '\\\\rc',\n    snippet: '\\\\rc ${1:2} $0',\n    shortDescription: 'End a repeat ',\n    longDescription: `Marks the end of a repeat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'repeats',\n                    shortDescription: 'The number of repeats which should be played',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ro: MetadataTagDefinition = {\n    tag: '\\\\ro',\n    snippet: '\\\\ro $0',\n    shortDescription: 'Start a repeat',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const scale: MetadataTagDefinition = {\n    tag: '\\\\scale',\n    snippet: '\\\\scale $1 $0',\n    shortDescription: 'Adjusts the relative scale of the bar',\n    longDescription: `Adjusts the relative scale of the bar when using \\`systemsLayoutMode: 'UseModelLayout'\\` with the page layout.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'scale',\n                    shortDescription: 'The scale of the bar within the system',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: {\n        options: { display: { systemsLayoutMode: 'UseModelLayout' } },\n        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        `\n    }\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const section: MetadataTagDefinition = {\n    tag: '\\\\section',\n    snippet: '\\\\section \"$1\" $0',\n    shortDescription: 'Starts a new section',\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'text',\n                    shortDescription: 'The text/description of the new section',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'marker',\n                    shortDescription: 'The marker for the section, typically a single letter',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                },\n                {\n                    name: 'text',\n                    shortDescription: 'The text/description of the new section',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    reservedIdentifiers: ['x', '-', 'r']\n                }\n            ]\n        }\n    ],\n    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};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const simile: MetadataTagDefinition = {\n    tag: '\\\\simile',\n    snippet: '\\\\simile $1 $0',\n    shortDescription: 'Adds a simile mark to the bar.',\n    longDescription:\n        'Adds a simile mark to the bar indicating that the content of the last, or previous two bars should be repeated.',\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mark',\n                    shortDescription: 'The mark to add',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('SimileMark')\n                }\n            ]\n        }\n    ],\n    examples: `\n        3.3*4 | \\\\simile simple | 3.3*4 | 4.3*4 | \\\\simile firstofdouble | \\\\simile secondofdouble\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const spd: MetadataTagDefinition = {\n    tag: '\\\\spd',\n    snippet: '\\\\spd $1 $0',\n    shortDescription: 'Add a sustain pedal down press',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'position',\n                    shortDescription: 'The relative position within the bar for the marker (0-1)',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\spd 0\n        \\\\spu 0.25\n        \\\\spd 0.5\n        \\\\sph 0.75\n        \\\\spu 1\n        :8 C4 * 8\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sph: MetadataTagDefinition = {\n    tag: '\\\\sph',\n    snippet: '\\\\sph $1 $0',\n    shortDescription: 'Add a sustain pedal hold',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'position',\n                    shortDescription: 'The relative position within the bar for the marker (0-1)',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\spd 0\n        \\\\spu 0.25\n        \\\\spd 0.5\n        \\\\sph 0.75\n        \\\\spu 1\n        :8 C4 * 8\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const spu: MetadataTagDefinition = {\n    tag: '\\\\spu',\n    snippet: '\\\\spu $1 $0',\n    shortDescription: 'Add a sustain pedal lift up',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'position',\n                    shortDescription: 'The relative position within the bar for the marker (0-1)',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\spd 0\n        \\\\spu 0.25\n        \\\\spd 0.5\n        \\\\sph 0.75\n        \\\\spu 1\n        :8 C4 * 8\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sync: MetadataTagDefinition = {\n    tag: '\\\\sync',\n    snippet: '\\\\tempo ($1 $2 $3) $0',\n    shortDescription: 'Adds a sync point to the data model.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'barIndex',\n                    shortDescription: 'The index of the bar being synced',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'occurence',\n                    shortDescription: 'The occurence of the bar for which this sync point applies (on repeats)',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'millisecondOffset',\n                    shortDescription: 'The absolute millisecond offset within the external media',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'ratioPosition',\n                    shortDescription: 'The relative position within the bar where the synchronization happens',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat,\n                    defaultValue: '0',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: {\n        websiteMdx: [\n            \"import { AlphaTexSyncPointSample } from '@site/src/components/AlphaTexSyncPointSample';\",\n            '',\n            '<AlphaTexSyncPointSample />'\n        ].join('\\n'),\n\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        `\n    }\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tempo: MetadataTagDefinition = {\n    tag: '\\\\tempo',\n    snippet: '\\\\tempo $1 $0',\n    shortDescription: 'Add a tempo change to the bar.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'tempo',\n                    shortDescription: 'The new tempo in BPM',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat\n                },\n                {\n                    name: 'label',\n                    shortDescription: 'A textual label for the tempo',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: '\"\"'\n                }\n            ]\n        },\n        {\n            strict: true,\n            parameters: [\n                {\n                    name: 'tempo',\n                    shortDescription: 'The new tempo in BPM',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat\n                },\n                {\n                    name: 'label',\n                    shortDescription: 'A textual label for the tempo',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    defaultValue: '\"\"'\n                },\n                {\n                    name: 'position',\n                    shortDescription: 'A relative (ratio) position where within the bar the tempo change should happen',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: '0',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'hide',\n                    shortDescription: 'If specified the tempo change is not visually shown',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    values: [\n                        {\n                            name: 'hide',\n                            shortDescription: 'If specified the tempo change is not visually shown',\n                            snippet: 'hide'\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tf: MetadataTagDefinition = {\n    tag: '\\\\tf',\n    snippet: '\\\\tf $1 $0',\n    shortDescription: 'Set the triplet feel (swing)',\n    longDescription: `Changes the triplet feel (aka. swing) play style.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'tripletFeel',\n                    shortDescription: 'The triplet feel style',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TripletFeel')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ts: MetadataTagDefinition = {\n    tag: '\\\\ts',\n    snippet: '\\\\ts ($1 $2) $0',\n    shortDescription: 'Set the time signature',\n    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    `,\n    signatures: [\n        {\n            description: 'Specifies a common (4/4) time signature using the special C symbol',\n            parameters: [\n                {\n                    name: 'common',\n                    shortDescription: '',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    allowAllStringTypes: true,\n                    values: [\n                        {\n                            name: 'common',\n                            shortDescription: 'Specifies a common (4/4) time signature using the special C symbol',\n                            snippet: 'common'\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'numerator',\n                    shortDescription: 'The time signature numerator',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'denominator',\n                    shortDescription: 'The time signature denominator',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n\n    examples: `\n        \\\\ts 3 4 | \\\\ts 4 4 | \\\\ts 6 8 | \\\\ts common\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const width: MetadataTagDefinition = {\n    tag: '\\\\width',\n    snippet: '\\\\width $1 $0',\n    shortDescription: 'Adjusts the absolute of the bar',\n    longDescription: `Adjusts the absolute of the bar when using \\`systemsLayoutMode: 'UseModelLayout'\\` with the horizontal layout.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'width',\n                    shortDescription: 'The absolute width of the bar',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat\n                }\n            ]\n        }\n    ],\n    examples: {\n        options: { display: { layoutMode: 'Horizontal', systemsLayoutMode: 'UseModelLayout' } },\n        tex: `\n        \\\\track\n            \\\\width 100 :1 c4 | \\\\width 300 c4 | \\\\width 350 c4\n        `\n    }\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition, SignatureDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const songMetaDataSignatures: SignatureDefinition[] = [\n    {\n        parameters: [\n            {\n                name: 'value',\n                shortDescription: 'The value to set',\n                type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                allowAllStringTypes: true,\n                parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n            },\n            {\n                name: 'template',\n                shortDescription: 'The template used to render the text',\n                type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n            },\n            {\n                name: 'textAlign',\n                shortDescription: 'The alignment of the text on the music sheet',\n                parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                ...enumParameter('TextAlign')\n            }\n        ]\n    }\n];\nexport const noValueSongMetaDataSignatures: SignatureDefinition[] = [\n    {\n        parameters: [\n            {\n                name: 'template',\n                shortDescription: 'The template used to render the text',\n                type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n            },\n            {\n                name: 'textAlign',\n                shortDescription: 'The alignment of the text on the music sheet',\n                parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                ...enumParameter('TextAlign')\n            }\n        ]\n    }\n];\n\nexport const title: MetadataTagDefinition = {\n    tag: '\\\\title',\n    snippet: '\\\\title \"$1\"$0',\n    shortDescription: `Set the title of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\title (\"Song Title\" \"Title: %TITLE%\" left)\n        C4\n        `\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const album: MetadataTagDefinition = {\n    tag: '\\\\album',\n    snippet: '\\\\album \"$1\"$0',\n    shortDescription: `Set the album of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\title (\"Song Title\" \"Title: %TITLE%\" left)\n        \\\\album \"alphaTab vol.1\"\n        C4\n        `\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const artist: MetadataTagDefinition = {\n    tag: '\\\\artist',\n    snippet: '\\\\artist \"$1\"$0',\n    shortDescription: `Set the artist of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\title (\"Song Title\" \"Title: %TITLE%\" left)\n        \\\\artist \"alphaTab\"\n            C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const bracketExtendMode: MetadataTagDefinition = {\n    tag: '\\\\bracketExtendMode',\n    snippet: '\\\\bracketExtendMode ${1:groupStaves}$0',\n    shortDescription: `Set the mode for brackets and braces.`,\n    longDescription: `Set the mode for [brackets and braces](https://alphatab.net/docs/showcase/general#brackets-and-braces).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    shortDescription: 'The mode to use',\n                    ...enumParameter('BracketExtendMode')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const copyright: MetadataTagDefinition = {\n    tag: '\\\\copyright',\n    snippet: '\\\\copyright \"$1\"$0',\n    shortDescription: `Set the copyright owner of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\copyright \"CoderLine\"\n        C4\n        `\n};\n","import { noValueSongMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const copyright2: MetadataTagDefinition = {\n    tag: '\\\\copyright2',\n    snippet: '\\\\copyright2 (\"${1:All Rights Reserved - International Copyright Secured}\" ${2:center})$0',\n    shortDescription: `Sets the template and text align for the second copyright line.`,\n    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.`,\n    signatures: noValueSongMetaDataSignatures,\n    examples: `\n        \\\\copyright \"CoderLine\"\n        \\\\copyright2 \"All rights reserved\"\n        C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const defaultSystemsLayout: MetadataTagDefinition = {\n    tag: '\\\\defaultSystemsLayout',\n    snippet: '\\\\defaultSystemsLayout ${1:3}$0',\n    shortDescription: 'Set the default number of bars per system.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'numberOfBars',\n                    shortDescription: 'The number of bars the system should contain.',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: {\n        options: { display: { systemsLayoutMode: 'UseModelLayout' } },\n        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        `\n    }\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const firstSystemTrackNameMode: MetadataTagDefinition = {\n    tag: '\\\\firstSystemTrackNameMode',\n    snippet: '\\\\firstSystemTrackNameMode ${1:shortName}$0',\n    shortDescription: 'The text how to show as track names',\n    longDescription: `\n    Configures the text how to show as [track names](https://alphatab.net/docs/showcase/general#track-names) on the first system.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TrackNameMode')\n                }\n            ]\n        }\n    ],\n\n    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    `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const firstSystemTrackNameOrientation: MetadataTagDefinition = {\n    tag: '\\\\firstSystemTrackNameOrientation',\n    snippet: '\\\\firstSystemTrackNameOrientation ${1:horizontal}$0',\n    shortDescription: 'Set the orientation of the track names',\n    longDescription: `\n    Configures the orientation of the [track names](https://alphatab.net/docs/showcase/general#track-names) on the first system.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'orientation',\n                    shortDescription: 'The orientation to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TrackNameOrientation')\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const hideDynamics: MetadataTagDefinition = {\n    tag: '\\\\hideDynamics',\n    snippet: '\\\\hideDynamics',\n    shortDescription: `Disables the display of dynamics.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        \\\\hideDynamics\n            C4 {dy FFF} D4\n            E4 {dy PP} F4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const instructions: MetadataTagDefinition = {\n    tag: '\\\\instructions',\n    snippet: '\\\\instructions \"$1\"$0',\n    shortDescription: `Sets additional textual instructions for the song (not displayed).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The value to set',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\instructions \"Practice this piece until you get it perfect.\"\n        C4\n        `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const multiBarRest: MetadataTagDefinition = {\n    tag: '\\\\multiBarRest',\n    snippet: '\\\\multiBarRest',\n    shortDescription: `Show multibar rests when rendering multiple tracks.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const multiTrackTrackNamePolicy: MetadataTagDefinition = {\n    tag: '\\\\multiTrackTrackNamePolicy',\n    snippet: '\\\\multiTrackTrackNamePolicy ${1:firstSystem}$0',\n    shortDescription: 'Sets the track name visibility when rendering multiple tracks.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TrackNamePolicy')\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const music: MetadataTagDefinition = {\n    tag: '\\\\music',\n    snippet: '\\\\music \"$1\"$0',\n    shortDescription: `Set the music author of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\music \"CoderLine and Contributors\"\n        C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const notices: MetadataTagDefinition = {\n    tag: '\\\\notices',\n    snippet: '\\\\notices \"$1\"$0',\n    shortDescription: `Sets general notices for the song (not displayed).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The value to set',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\notices \"I hope you appreciate this music sheet, it was a lot of effort to create!\"\n        C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const otherSystemsTrackNameMode: MetadataTagDefinition = {\n    tag: '\\\\otherSystemsTrackNameMode',\n    snippet: '\\\\otherSystemsTrackNameMode ${1:shortName}$0',\n    shortDescription: 'Which track names to show for systems after the first one.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TrackNameMode')\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const otherSystemsTrackNameOrientation: MetadataTagDefinition = {\n    tag: '\\\\otherSystemsTrackNameOrientation',\n    snippet: '\\\\otherSystemsTrackNameOrientation ${1:vertical}$0',\n    shortDescription: 'The orientation of track names to show for systems after the first one.',\n    longDescription: `\n    Configures the orientation of the [track names](https://alphatab.net/docs/showcase/general#track-names) on the second and subsequent systems.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'orientation',\n                    shortDescription: 'The orientation to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TrackNameOrientation')\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const showDynamics: MetadataTagDefinition = {\n    tag: '\\\\showDynamics',\n    snippet: '\\\\showDynamics',\n    shortDescription: `Enables the display of dynamics.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        \\\\showDynamics\n            C4 {dy FFF} D4\n            E4 {dy PP} F4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const singleTrackTrackNamePolicy: MetadataTagDefinition = {\n    tag: '\\\\singleTrackTrackNamePolicy',\n    snippet: '\\\\singleTrackTrackNamePolicy ${1:firstSystem}$0',\n    shortDescription: 'Sets the track name visibility when rendering single tracks.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('TrackNamePolicy')\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const subtitle: MetadataTagDefinition = {\n    tag: '\\\\subtitle',\n    snippet: '\\\\subtitle \"$1\"$0',\n    shortDescription: `Set the subtitle of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\title (\"Song Title\" \"Title: %TITLE%\" left)\n        \\\\subtitle (\"Subtitle\" \"[%SUBTITLE%]\" left)\n        C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const systemsLayout: MetadataTagDefinition = {\n    tag: '\\\\systemsLayout',\n    snippet: '\\\\systemsLayout (${1:3})$0',\n    shortDescription: 'Set the number of bars for every system.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'numberOfBars',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    shortDescription: 'Defines for every system (line) the number of bars it should contain'\n                }\n            ]\n        }\n    ],\n    examples: {\n        options: { display: { systemsLayoutMode: 'UseModelLayout' } },\n        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        `\n    }\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tab: MetadataTagDefinition = {\n    tag: '\\\\tab',\n    snippet: '\\\\tab \"$1\"$0',\n    shortDescription: `Set the transcriber of the music sheet.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\tab \"Transcribed by me\"\n        C4\n        `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const useSystemSignSeparator: MetadataTagDefinition = {\n    tag: '\\\\useSystemSignSeparator',\n    snippet: '\\\\useSystemSignSeparator',\n    shortDescription: 'Show the system separator when rendering multiple tracks',\n    longDescription: `Configures whether a system sign separator should be added (in case multiple tracks are shown).`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: {\n        options: { display: { systemsLayoutMode: 'UseModelLayout' } },\n        tex: `\n        \\\\useSystemSignSeparator\n        \\\\defaultSystemsLayout 2\n        \\\\track \"T1\"\n        :1 C4 | C4 | C4\n        \\\\track \"T2\"\n        :1 C4 | C4 | C4\n        `\n    }\n};\n","import { songMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const words: MetadataTagDefinition = {\n    tag: '\\\\words',\n    snippet: '\\\\words \"$1\"$0',\n    shortDescription: `Set the lyrics author of the song.`,\n    signatures: songMetaDataSignatures,\n    examples: `\n        \\\\words \"CoderLine\"\n        C4\n        `\n};\n","import { noValueSongMetaDataSignatures } from '@coderline/alphatab-alphatex/metadata/score/title';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const wordsAndMusic: MetadataTagDefinition = {\n    tag: '\\\\wordsAndMusic',\n    snippet: '\\\\wordsAndMusic (\"${1:Words & Music by %MUSIC%}\" ${2:left})$0',\n    shortDescription: `Sets the template and text align for combined words and music authors.`,\n    signatures: noValueSongMetaDataSignatures,\n    examples: `\n        \\\\words \"CoderLine\"\n        \\\\music \"CoderLine\"\n        \\\\wordsAndMusic (\"Words & Music: %WORDS%\")\n        C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const list: [string, number][] = [\n    ['Ride (choke)', 29],\n    ['Cymbal (hit)', 30],\n    ['Snare (side stick)', 31],\n    ['Snare (side stick) 2', 33],\n    ['Snare (hit)', 34],\n    ['Kick (hit)', 35],\n    ['Kick (hit) 2', 36],\n    ['Snare (side stick) 3', 37],\n    ['Snare (hit) 2', 38],\n    ['Hand Clap (hit)', 39],\n    ['Snare (hit) 3', 40],\n    ['Low Floor Tom (hit)', 41],\n    ['Hi-Hat (closed)', 42],\n    ['Very Low Tom (hit)', 43],\n    ['Pedal Hi-Hat (hit)', 44],\n    ['Low Tom (hit)', 45],\n    ['Hi-Hat (open)', 46],\n    ['Mid Tom (hit)', 47],\n    ['High Tom (hit)', 48],\n    ['Crash high (hit)', 49],\n    ['High Floor Tom (hit)', 50],\n    ['Ride (middle)', 51],\n    ['China (hit)', 52],\n    ['Ride (bell)', 53],\n    ['Tambourine (hit)', 54],\n    ['Splash (hit)', 55],\n    ['Cowbell medium (hit)', 56],\n    ['Crash medium (hit)', 57],\n    ['Vibraslap (hit)', 58],\n    ['Ride (edge)', 59],\n    ['Hand (hit)', 60],\n    ['Hand (hit)', 61],\n    ['Conga high (mute)', 62],\n    ['Conga high (hit)', 63],\n    ['Conga low (hit)', 64],\n    ['Timbale high (hit)', 65],\n    ['Timbale low (hit)', 66],\n    ['Agogo high (hit)', 67],\n    ['Agogo tow (hit)', 68],\n    ['Cabasa (hit)', 69],\n    ['Left Maraca (hit)', 70],\n    ['Whistle high (hit)', 71],\n    ['Whistle low (hit)', 72],\n    ['Guiro (hit)', 73],\n    ['Guiro (scrap-return)', 74],\n    ['Claves (hit)', 75],\n    ['Woodblock high (hit)', 76],\n    ['Woodblock low (hit)', 77],\n    ['Cuica (mute)', 78],\n    ['Cuica (open)', 79],\n    ['Triangle (rnute)', 80],\n    ['Triangle (hit)', 81],\n    ['Shaker (hit)', 82],\n    ['Tinkle Bell (hat)', 83],\n    ['Jingle Bell (hit)', 83],\n    ['Bell Tree (hit)', 84],\n    ['Castanets (hit)', 85],\n    ['Surdo (hit)', 86],\n    ['Surdo (mute)', 87],\n    ['Snare (rim shot)', 91],\n    ['Hi-Hat (half)', 92],\n    ['Ride (edge) 2', 93],\n    ['Ride (choke) 2', 94],\n    ['Splash (choke)', 95],\n    ['China (choke)', 96],\n    ['Crash high (choke)', 97],\n    ['Crash medium (choke)', 98],\n    ['Cowbell low (hit)', 99],\n    ['Cowbell low (tip)', 100],\n    ['Cowbell medium (tip)', 101],\n    ['Cowbell high (hit)', 102],\n    ['Cowbell high (tip)', 103],\n    ['Hand (mute)', 104],\n    ['Hand (slap)', 105],\n    ['Hand (mute) 2', 106],\n    ['Hand (slap) 2', 107],\n    ['Conga low (slap)', 108],\n    ['Conga low (mute)', 109],\n    ['Conga high (slap)', 110],\n    ['Tambourine (return)', 111],\n    ['Tambourine (roll)', 112],\n    ['Tambourine (hand)', 113],\n    ['Grancassa (hit)', 114],\n    ['Piatti (hat)', 115],\n    ['Piatti (hand)', 116],\n    ['Cabasa (return)', 117],\n    ['Left Maraca (return)', 118],\n    ['Right Maraca (hit)', 119],\n    ['Right Maraca (return)', 120],\n    ['Shaker (return)', 122],\n    ['Bell Tee (return)', 123],\n    ['Golpe (thumb)', 124],\n    ['Golpe (finger)', 125],\n    ['Ride (middle) 2', 126],\n    ['Ride (bell) 2', 127]\n];\n\nconst articulationsTable = [\n    '| Number | Name Long | Name Short |',\n    '|--------|-----------|------------|',\n    ...list.map(v => `| \\`${v[1]}\\` | \\`${v[0]}\\` | \\`${v[0].replace(/[^a-zA-Z0-9]/g, '')}\\` |`)\n];\n\nexport const articulation: MetadataTagDefinition = {\n    tag: '\\\\articulation',\n    snippet: '\\\\articulation $1$0',\n    shortDescription: 'Define percussion articulations',\n    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    ${articulationsTable.map(l => `    ${l}`).join('\\n')}\n    `,\n    signatures: [\n        {\n            description: 'Registers all standard articulation names',\n            parameters: [\n                {\n                    name: 'defaults',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    shortDescription: '',\n                    values: [\n                        {\n                            name: 'defaults',\n                            shortDescription: '',\n                            snippet: 'defaults'\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'name',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    shortDescription: 'The string used in the note values'\n                },\n                {\n                    name: 'value',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    shortDescription: 'The numeric value of the built-in articulation'\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const capo: MetadataTagDefinition = {\n    tag: '\\\\capo',\n    snippet: '\\\\capo {$1}$0',\n    shortDescription: 'Set the capo fret',\n    longDescription: `Defines the fret on which a capo should be placed.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'fret',\n                    shortDescription: 'The fret on which a capo is placed',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\track \"Guitar\"\n        \\\\staff{tabs} \n        \\\\capo 5\n        1.2 3.2 0.1 1.1\n        `\n};\n","import type { MetadataTagDefinition, PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const generalMidiInstruments = [\n    'Acoustic Grand Piano',\n    'Bright Grand Piano',\n    'Electric Grand Piano',\n    'Honky tonk Piano',\n    'Electric Piano 1',\n    'Electric Piano 2',\n    'Harpsichord',\n    'Clavinet',\n    'Celesta',\n    'Glockenspiel',\n    'Musicbox',\n    'Vibraphone',\n    'Marimba',\n    'Xylophone',\n    'Tubularbells',\n    'Dulcimer',\n    'Drawbar Organ',\n    'Percussive Organ',\n    'Rock Organ',\n    'Church Organ',\n    'Reed Organ',\n    'Accordion',\n    'Harmonica',\n    'Tango Accordion',\n    'Acoustic Guitar Nylon',\n    'Acoustic Guitar Steel',\n    'Electric Guitar Jazz',\n    'Electric Guitar Clean',\n    'Electric Guitar Muted',\n    'Overdriven Guitar',\n    'Distortion Guitar',\n    'Guitar Harmonics',\n    'Acoustic Bass',\n    'Electric Bass Finger',\n    'Electric Bass Pick',\n    'Fretless Bass',\n    'Slap Bass 1',\n    'Slap Bass 2',\n    'Synth Bass 1',\n    'Synth Bass 2',\n    'Violin',\n    'Viola',\n    'Cello',\n    'Contrabass',\n    'Tremolo Strings',\n    'Pizzicato Strings',\n    'Orchestral Harp',\n    'Timpani',\n    'String Ensemble 1',\n    'String Ensemble 2',\n    'Synth Strings 1',\n    'Synth Strings 2',\n    'Choir Aahs',\n    'Voice Oohs',\n    'Synth Voice',\n    'Orchestra Hit',\n    'Trumpet',\n    'Trombone',\n    'Tuba',\n    'Muted Trumpet',\n    'French Horn',\n    'Brass Section',\n    'Synth Brass 1',\n    'Synth Brass 2',\n    'Soprano Sax',\n    'Alto Sax',\n    'Tenor Sax',\n    'Baritone Sax',\n    'Oboe',\n    'English Horn',\n    'Bassoon',\n    'Clarinet',\n    'Piccolo',\n    'Flute',\n    'Recorder',\n    'Pan Flute',\n    'Blown bottle',\n    'Shakuhachi',\n    'Whistle',\n    'Ocarina',\n    'Lead 1 Square',\n    'Lead 2 Sawtooth',\n    'Lead 3 Calliope',\n    'Lead 4 Chiff',\n    'Lead 5 Charang',\n    'Lead 6 Voice',\n    'Lead 7 Fifths',\n    'Lead 8 Bass and Lead',\n    'Pad 1 newage',\n    'Pad 2 warm',\n    'Pad 3 polysynth',\n    'Pad 4 choir',\n    'Pad 5 bowed',\n    'Pad 6 metallic',\n    'Pad 7 halo',\n    'Pad 8 sweep',\n    'Fx 1 rain',\n    'Fx 2 soundtrack',\n    'Fx 3 crystal',\n    'Fx 4 atmosphere',\n    'Fx 5 brightness',\n    'Fx 6 goblins',\n    'Fx 7 echoes',\n    'Fx 8 scifi',\n    'Sitar',\n    'Banjo',\n    'Shamisen',\n    'Koto',\n    'Kalimba',\n    'Bag pipe',\n    'Fiddle',\n    'Shanai',\n    'Tinkle Bell',\n    'Agogo',\n    'Steel Drums',\n    'Woodblock',\n    'Taiko Drum',\n    'Melodic Tom',\n    'Synth Drum',\n    'Reverse Cymbal',\n    'Guitar Fret Noise',\n    'Breath Noise',\n    'Seashore',\n    'Bird Tweet',\n    'Telephone Ring',\n    'Helicopter',\n    'Applause',\n    'Gunshot'\n];\n\nexport function properties(...props: PropertyDefinition[]): Map<string, PropertyDefinition> {\n    return new Map(props.map(p => [p.property.toLowerCase(), p]));\n}\n\nexport function metadata(...metadata: MetadataTagDefinition[]) {\n    return new Map<string, MetadataTagDefinition>(metadata.map(t => [t.tag.toLowerCase(), t]));\n}\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\nimport { properties } from '@coderline/alphatab-alphatex/common';\n\nexport const chord: MetadataTagDefinition = {\n    tag: '\\\\chord',\n    snippet: '\\\\chord (\"{$1}\" $2)$0',\n    shortDescription: 'Define a new chord',\n    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.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'name',\n                    shortDescription: 'The name of the chord',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true\n                },\n                {\n                    name: 'strings',\n                    shortDescription:\n                        'For every string of the staff tuning, the fret to be played or `x` for strings not played.',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n                    type: [alphaTab.importer.alphaTex.AlphaTexNodeType.Ident, alphaTab.importer.alphaTex.AlphaTexNodeType.String, alphaTab.importer.alphaTex.AlphaTexNodeType.Number]\n                }\n            ]\n        }\n    ],\n    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        `,\n    properties: properties(\n        {\n            property: 'firstFret',\n            snippet: 'firstFret $0',\n            shortDescription: 'Shifts the first fret shown in the diagram higher',\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'fret',\n                            shortDescription: 'The index of the first fret',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                        }\n                    ]\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'barre',\n            snippet: 'barre $0',\n            shortDescription: 'Defines on which frets a barré should be played.',\n            longDescription: `Defines on which frets a barré should be played (visually joins the dots to a bar).`,\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'fret',\n                            shortDescription: 'The frets on which a barré should be played',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                        }\n                    ]\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'showDiagram',\n            snippet: 'showDiagram',\n            shortDescription: `Set the chord diagram visibility.`,\n            signatures: [\n                {\n                    parameters: []\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the diagram',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                            values: [\n                                { name: 'true', snippet: '\"true\"', shortDescription: 'Show the diagram' },\n                                { name: 'false', snippet: '\"false\"', shortDescription: 'Hide the diagram' }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the diagram',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                            values: [\n                                { name: 'true', snippet: 'true', shortDescription: 'Show the diagram' },\n                                { name: 'false', snippet: 'false', shortDescription: 'Hide the diagram' }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the diagram',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            values: [\n                                { name: '1', snippet: '1', shortDescription: 'Show the diagram' },\n                                { name: '0', snippet: '0', shortDescription: 'Hide the diagram' }\n                            ]\n                        }\n                    ]\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'showFingering',\n            snippet: 'showFingering',\n            shortDescription: `Set the finger position visibility.`,\n            signatures: [\n                {\n                    parameters: []\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the finger position',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                            values: [\n                                { name: 'true', snippet: '\"true\"', shortDescription: 'Show the fingering' },\n                                { name: 'false', snippet: '\"false\"', shortDescription: 'Hide the fingering' }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the finger position',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                            values: [\n                                { name: 'true', snippet: 'true', shortDescription: 'Show the fingering' },\n                                { name: 'false', snippet: 'false', shortDescription: 'Hide the fingering' }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the finger position',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            values: [\n                                { name: '1', snippet: '1', shortDescription: 'Show the fingering' },\n                                { name: '0', snippet: '0', shortDescription: 'Hide the fingering' }\n                            ]\n                        }\n                    ]\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'showName',\n            snippet: 'showName',\n            shortDescription: `Set the chord name visibility.`,\n            signatures: [\n                {\n                    parameters: []\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the chord name in the diagram',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                            values: [\n                                { name: 'true', snippet: '\"true\"', shortDescription: 'Show the chord name' },\n                                { name: 'false', snippet: '\"false\"', shortDescription: 'Hide the chord name' }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the chord name in the diagram',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                            values: [\n                                { name: 'true', snippet: 'true', shortDescription: 'Show the chord name' },\n                                { name: 'false', snippet: 'false', shortDescription: 'Hide the chord name' }\n                            ]\n                        }\n                    ]\n                },\n                {\n                    parameters: [\n                        {\n                            name: 'visibility',\n                            shortDescription: 'The visibility of the chord name in the diagram',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            values: [\n                                { name: '1', snippet: '1', shortDescription: 'Show the chord name' },\n                                { name: '0', snippet: '0', shortDescription: 'Hide the chord name' }\n                            ]\n                        }\n                    ]\n                }\n            ],\n            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                `\n        }\n    )\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const displayTranspose: MetadataTagDefinition = {\n    tag: '\\\\displayTranspose',\n    snippet: '\\\\displayTranspose {$1}$0',\n    shortDescription: 'Set the transpose for the standard notation display.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'semitones',\n                    shortDescription: 'The number of semitones by which the notes should be transposed',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\track \\\\staff \\\\instrument piano\n        \\\\displayTranspose -12\n            C4.4 D4 E4 F4 | r.1\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const lyrics: MetadataTagDefinition = {\n    tag: '\\\\lyrics',\n    snippet: '\\\\lyrics \"{$1}\"$0',\n    shortDescription: 'Set the lyrics shown for the current staff.',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'lyrics',\n                    shortDescription: 'The lyrics text to apply to the beats',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'startBar',\n                    shortDescription: 'The first bar on which the notes should be applied',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                },\n                {\n                    name: 'lyrics',\n                    shortDescription: 'The lyrics text to apply to the beats',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: [\n        `\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        `\n        \\\\title \"Combine Syllables (and empty beats)\"\n        \\\\instrument piano\n        \\\\lyrics \"Do+Do  Mi+Mi\"\n        C4 C4 E4 E4\n        `,\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        `\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        `\n    ]\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const transpose: MetadataTagDefinition = {\n    tag: '\\\\transpose',\n    snippet: '\\\\transpose $1$0',\n    shortDescription: 'Set the transpose for the standard notation.',\n    longDescription: `\n    Defines the number of semitones by which the standard notation should be transposed.\n\n    This affects the display and audio.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'semitones',\n                    shortDescription: 'The number of semitones by which the notes should be transposed',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\track \\\\staff \\\\instrument piano\n        \\\\transpose -12\n            C4.4 D4 E4 F4 | r.1\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\nimport { properties } from '@coderline/alphatab-alphatex/common';\n\nexport const tuning: MetadataTagDefinition = {\n    tag: '\\\\tuning',\n    snippet: '\\\\tuning {$1}$0',\n    shortDescription: 'Set the string tuning for the staff.',\n    longDescription: `Defines the number of strings and their tuning for stringed (and fretted) instruments.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'A built-in standard mode for tunings',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    allowAllStringTypes: true,\n                    values: [\n                        {\n                            name: 'piano',\n                            snippet: 'piano',\n                            shortDescription:\n                                'Indicates that this staff is NOT stringed, but a piano with pitched notes.'\n                        },\n                        {\n                            name: 'none',\n                            snippet: 'none',\n                            shortDescription:\n                                'Indicates that this staff is NOT stringed and has no tuning and uses pitched notes.'\n                        },\n                        {\n                            name: 'voice',\n                            snippet: 'voice',\n                            shortDescription:\n                                'Indicates that this staff is NOT stringed, but a vocal voice with pitched notes.'\n                        }\n                    ]\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'strings',\n                    shortDescription: 'The tuning values as pitched notes',\n                    longDescription: `The tuning values as [pitched notes](https://alphatab.net/docs/alphatex/document-structure#pitched-notes)`,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis\n                }\n            ]\n        }\n    ],\n    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        `,\n    properties: properties(\n        {\n            property: 'hide',\n            snippet: 'hide',\n            shortDescription: 'Hides the tuning from being displayed above the first staff.',\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'label',\n            snippet: 'label \"$1\"$0',\n            shortDescription: 'Defines the textual label for the tuning.',\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'text',\n                            shortDescription: 'The label to set.',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.String\n                        }\n                    ]\n                }\n            ],\n            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                `\n        }\n    )\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\nimport { properties } from '@coderline/alphatab-alphatex/common';\n\nexport const staff: MetadataTagDefinition = {\n    tag: '\\\\staff',\n    snippet: '\\\\staff {$1}$0',\n    shortDescription: 'Start a new staff',\n    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    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `,\n    properties: properties(\n        {\n            property: 'score',\n            snippet: 'score $0',\n            shortDescription: 'Enable the display of standard notation.',\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'lineCount',\n                            shortDescription: 'The number of staff lines',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            defaultValue: 5\n                        }\n                    ]\n                }\n            ],\n            examples: `\n                \\\\track\n                    \\\\staff {score 3}\n                    D4 D4 D4 D4\n                    \\\\staff {score}\n                    C4 C4 C4 C4\n                `\n        },\n        {\n            property: 'tabs',\n            snippet: 'tabs $0',\n            shortDescription: 'Enable the display of guitar tablature.',\n            longDescription: `\n                Enable the display of guitar tablature.\n\n                Guitar tabs are only shown if the contained notes are stringed/fretted notes.\n                `,\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            examples: `\n                \\\\track\n                    \\\\staff {tabs}\n                    3.3 4.3 5.3 5.5\n                `\n        },\n        {\n            property: 'slash',\n            snippet: 'slash $0',\n            shortDescription: `Enable the display of slash notation.`,\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            examples: `\n                \\\\track\n                    \\\\staff {tabs slash}\n                    3.3 4.3 5.3 5.5\n                `\n        },\n        {\n            property: 'numbered',\n            snippet: 'numbered $0',\n            shortDescription: `Enable the display of numbered notation (Jianpu).`,\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            examples: `\n                \\\\track\n                    \\\\staff {score numbered}\n                    C4 D4 E4 F4\n                `\n        }\n    )\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nimport { generalMidiInstruments } from '../../common';\n\nexport const instrument: PropertyDefinition = {\n    property: 'instrument',\n    snippet: 'instrument \"$1\"$0',\n    shortDescription: 'Instrument Change',\n    longDescription: `Adds a instrument change to the beat.`,\n    signatures: [\n        {\n            description: 'Set the midi instrument as midi program number',\n            parameters: [\n                {\n                    name: 'program',\n                    shortDescription: 'MIDI program number (0-127)',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        },\n        {\n            description: 'Set the midi instrument as midi program name',\n            parameters: [\n                {\n                    name: 'programName',\n                    shortDescription: 'MIDI program name',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    valuesOnlyForCompletion: true,\n                    values: generalMidiInstruments.map(v => ({\n                        name: v,\n                        snippet: JSON.stringify(v),\n                        shortDescription: ''\n                    }))\n                }\n            ]\n        },\n        {\n            description: 'Set the instrument to percussion',\n            parameters: [\n                {\n                    name: 'percussion',\n                    shortDescription: 'Percussion',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    values: [\n                        {\n                            name: 'percussion',\n                            snippet: 'percussion',\n                            shortDescription: ''\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    examples: `\n    3.3.4{ ot 15ma } 3.3.4{ ot 8vb }\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { instrument } from '@coderline/alphatab-alphatex/properties/beat/instrument';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nimport { properties } from '@coderline/alphatab-alphatex/common';\n\nexport const track: MetadataTagDefinition = {\n    tag: '\\\\track',\n    snippet: '\\\\track \"$1\"$0',\n    shortDescription: 'Start a new track',\n    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.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'name',\n                    shortDescription: 'The full name of the track',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: '',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String\n                },\n                {\n                    name: 'shortName',\n                    shortDescription: 'The short name of the track',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: '`/*computed from name*/`',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String\n                }\n            ]\n        }\n    ],\n    examples: `\n        \\\\track \"First Track\" \"frst\" \n            C4 D4 E4 F4\n        \\\\track\n            C5 D5 E5 F5\n        `,\n    properties: properties(\n        {\n            property: 'color',\n            snippet: 'color $0',\n            shortDescription: 'The color for use in a custom UI',\n            longDescription:\n                '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.',\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'colorCode',\n                            shortDescription: 'The color as CSS color',\n                            longDescription:\n                                'The colorCode in [any supported color format](https://alphatab.net/docs/reference/settings/display/resources#colors)',\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                        }\n                    ]\n                }\n            ],\n            examples: `\n                \\\\track { color \"#FF0000\" }\n                1.1 2.1 3.1 4.1\n                `\n        },\n        {\n            property: 'systemsLayout',\n            snippet: 'systemsLayout ($1)$0',\n            shortDescription: 'Set the number of bars to display per system.',\n            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                `,\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'numberOfBars',\n                            shortDescription: 'The number of bars to display per system',\n                            longDescription: 'Defines for every system (line) the number of bars it should contain',\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis\n                        }\n                    ]\n                }\n            ],\n            examples: {\n                options: { display: { systemsLayoutMode: 'UseModelLayout' } },\n                tex: `\n                \\\\title \"Single Track\"\n                \\\\track { systemsLayout (2 3 2) }\n                :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n                `\n            }\n        },\n        {\n            property: 'defaultSystemsLayout',\n            snippet: 'defaultSystemsLayout $0',\n            shortDescription: 'Set the default number of bars to display per system',\n            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).`,\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'numberOfBars',\n                            shortDescription: 'Defines for every system (line) the number of bars it should contain',\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                        }\n                    ]\n                }\n            ],\n            examples: {\n                options: { display: { systemsLayoutMode: 'UseModelLayout' } },\n                tex: `\n                \\\\title \"Single Track\"\n                \\\\track { defaultSystemsLayout 2 }\n                    :1 c4 | c4 | c4 | c4 | c4 | c4 | c4\n                `\n            }\n        },\n        {\n            property: 'solo',\n            snippet: 'solo',\n            shortDescription: `Set the track to be played solo.`,\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'mute',\n            snippet: 'mute',\n            shortDescription: `Set the track to be muted.`,\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'volume',\n            snippet: 'volume $0',\n            shortDescription: `Set the track volume.`,\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'value',\n                            shortDescription: 'The volume to set (0-16)',\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                        }\n                    ]\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'balance',\n            snippet: 'balance $0',\n            shortDescription: `Set the track balance.`,\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'value',\n                            shortDescription: 'The balance to set (0-16; 8 is centered)',\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                        }\n                    ]\n                }\n            ],\n            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                `\n        },\n        {\n            property: 'instrument',\n            snippet: 'instrument \"$1\"$0',\n            shortDescription: `Set the midi instrument for this track.`,\n            signatures: instrument.signatures,\n            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                `\n        },\n        {\n            property: 'bank',\n            snippet: 'bank $1$0',\n            shortDescription: 'Set the MIDI bank for this track.',\n            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.`,\n            signatures: [\n                {\n                    parameters: [\n                        {\n                            name: 'value',\n                            shortDescription: 'The midi bank to set',\n                            parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                            type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                        }\n                    ]\n                }\n            ],\n            examples: `\n                \\\\track { instrument 25 bank 2 }\n                `\n        },\n        {\n            property: 'multiBarRest',\n            snippet: 'multiBarRest$0',\n            shortDescription: 'Display multibar rests',\n            longDescription: `Enables the display of multibar rests if this track is shown as standalone.`,\n            signatures: [\n                {\n                    parameters: []\n                }\n            ],\n            examples: [\n                `\n                \\\\track { multiBarRest } \n                C4*4 | r.1 | r.1 | r.1 | C4 * 4\n                `,\n                `\n                \\\\track\n                C4*4 | r.1 | r.1 | r.1 | C4 * 4\n                `\n            ]\n        }\n    )\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const voice: MetadataTagDefinition = {\n    tag: '\\\\voice',\n    snippet: '\\\\voice $0',\n    shortDescription: 'Start a new voice',\n    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    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ad: PropertyDefinition = {\n    property: 'ad',\n    snippet: 'ad',\n    shortDescription: 'Downwards Arpeggio',\n    longDescription: `Adds an arpeggio effect to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'duration',\n                    shortDescription: 'A custom duration of the stroke speed in MIDI ticks',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const au: PropertyDefinition = {\n    property: 'au',\n    snippet: 'au$0',\n    shortDescription: 'Upwards Arpeggio',\n    longDescription: `Adds an arpeggio effect to the beat.`,\n    signatures: [\n           {\n               parameters: [\n                   {\n                       name: 'duration',\n                       shortDescription: 'A custom duration of the stroke speed in MIDI ticks',\n                       type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                       parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                   }\n               ]\n           }\n       ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const balance: PropertyDefinition = {\n    property: 'balance',\n    snippet: 'balance $1$0',\n    shortDescription: 'Balance Change',\n    longDescription: `\n    Add a balance (pan) change to the beat.\n\n    The change affects all beats after this one.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The new balance',\n                    longDescription: 'The new balance where 0 is left, 16 is right, and 8 is centered.',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: `\n        C4 {balance 0} D4 E4 {balance 16} F4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const bank: PropertyDefinition = {\n    property: 'bank',\n    snippet: 'bank $1$0',\n    shortDescription: 'MIDI Bank Change',\n    longDescription: `Adds a instrument bank change to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The new MIDI bank',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        C4 C4 C4 {instrument 25 bank 2} C4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const barre: PropertyDefinition = {\n    property: 'barre',\n    snippet: 'barre $1$0',\n    shortDescription: 'Barré',\n    longDescription: `Add a barré chord notation to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'fret',\n                    shortDescription: 'The numeric fret for the barre chord',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'mode',\n                    shortDescription: 'The barre mode',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: 'Full',\n                    ...enumParameter('BarreShape')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const bd: PropertyDefinition = {\n    property: 'bd',\n    snippet: 'bd$0',\n    shortDescription: 'Downwards brush-stroke',\n    longDescription: `Adds a brush stroke effect to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'duration',\n                    shortDescription: 'A custom duration of the stroke speed in MIDI ticks',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beam: PropertyDefinition = {\n    property: 'beam',\n    snippet: 'beam $1$0',\n    shortDescription: 'Beams and Stems',\n    longDescription: `\n    Changes the beaming and stem direction for the beat.\n    Can be specified multiple times.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'type',\n                    shortDescription: 'The mode to apply',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    allowAllStringTypes: true,\n                    values: [\n                        {\n                            name: 'invert',\n                            snippet: 'invert',\n                            shortDescription: 'Inverts the default stem direction.'\n                        },\n                        { name: 'up', snippet: 'up', shortDescription: 'Forces the stem to point upwards.' },\n                        {\n                            name: 'down',\n                            snippet: 'down',\n                            shortDescription: 'Forces the stem to point downwards.'\n                        },\n                        {\n                            name: 'auto',\n                            snippet: 'auto',\n                            shortDescription: 'Sets the beaming mode to automatic.'\n                        },\n                        {\n                            name: 'split',\n                            snippet: 'split',\n                            shortDescription: 'Forces a split of the beam to the next beat (if there would be any).'\n                        },\n                        {\n                            name: 'merge',\n                            snippet: 'merge',\n                            shortDescription:\n                                'Forces a merge of the beam to the next beat (even if there would be none).'\n                        },\n                        {\n                            name: 'splitsecondary',\n                            snippet: 'splitsecondary',\n                            shortDescription: 'Forces a split of the last bar connecting two beats (if there is any).'\n                        }\n                    ]\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const bu: PropertyDefinition = {\n    property: 'bu',\n    snippet: 'bu$0',\n    shortDescription: 'Upwards brush-stroke',\n    longDescription: `Adds a brush stroke effect to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'duration',\n                    shortDescription: 'A custom duration of the stroke speed in MIDI ticks',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ch: PropertyDefinition = {\n    property: 'ch',\n    snippet: 'ch \"$1\"$0',\n    shortDescription: 'Chord',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'chordName',\n                    shortDescription: 'The name of the chord',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    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    `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const cre: PropertyDefinition = {\n    property: 'cre',\n    snippet: 'cre',\n    shortDescription: 'Crescendo',\n    longDescription: 'Adds a crescendo effect to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3 { cre } -.3 { cre }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const d: PropertyDefinition = {\n    property: 'd',\n    snippet: 'd',\n    shortDescription: 'Augmentation Dot',\n    longDescription: 'Marks the beat with a single augmentation dot.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).1 { d }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const dd: PropertyDefinition = {\n    property: 'dd',\n    snippet: 'dd',\n    shortDescription: 'Double Augmentation Dot',\n    longDescription: 'Marks the beat with a double augmentation dot.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).1 { dd }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const dec: PropertyDefinition = {\n    property: 'dec',\n    snippet: 'dec',\n    shortDescription: 'Decrescendo',\n    longDescription: 'Adds a decrescendo (diminuendo) effect to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3 { dec } -.3 { dec }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ds: PropertyDefinition = {\n    property: 'ds',\n    snippet: 'ds',\n    shortDescription: 'Dead-Slap',\n    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    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        ().4 {ds} ().4 {ds}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const dy: PropertyDefinition = {\n    property: 'dy',\n    snippet: 'dy $1$0',\n    shortDescription: 'Dynamics',\n    longDescription: `Defines the play dynamics for this beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'dynamic',\n                    shortDescription: 'The dynamic value to apply',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('DynamicValue')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const f: PropertyDefinition = {\n    property: 'f',\n    snippet: 'f',\n    shortDescription: 'Fade-In',\n    longDescription: 'Adds a fade-in effect to the beat. Applies to all notes.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).2 { f }\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const fermata: PropertyDefinition = {\n    property: 'fermata',\n    snippet: 'fermata $1$0',\n    shortDescription: 'Fermata',\n    longDescription: `Adds a fermata to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'type',\n                    shortDescription: 'The fermata type',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('FermataType')\n                },\n                {\n                    name: 'length',\n                    shortDescription: 'The fermata length',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat,\n                    defaultValue: 0\n                }\n            ]\n        }\n    ],\n    examples: `\n        G4 G4 G4 { fermata medium 4 }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const fo: PropertyDefinition = {\n    property: 'fo',\n    snippet: 'fo',\n    shortDescription: 'Fade-Out',\n    longDescription: 'Adds a fade-out effect to the beat. Applies to all notes.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).1 { fo }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const glpf: PropertyDefinition = {\n    property: 'glpf',\n    snippet: 'glpf',\n    shortDescription: 'Golpe (Finger)',\n    longDescription: `Adds a golpe finger-tap effect to the beat.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{glpf} 3.3{glpt}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const glpt: PropertyDefinition = {\n    property: 'glpt',\n    snippet: 'glpt',\n    shortDescription: 'Golpe (Thumb)',\n    longDescription: `Adds a golpe thumb-tap effect to the beat.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{glpf} 3.3{glpt}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const gr: PropertyDefinition = {\n    property: 'gr',\n    snippet: 'gr $1$0',\n    shortDescription: 'Grace-Beat',\n    longDescription: `\n    Marks the beat as a grace beat holding grace notes.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'type',\n                    shortDescription: 'The type of grace notes',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: 'bb',\n                    ...enumParameter('GraceType')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const legatoOrigin: PropertyDefinition = {\n    property: 'legatoOrigin',\n    snippet: 'legatoOrigin',\n    shortDescription: 'Legato',\n    longDescription: `Adds a legato from this beat to the next one.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3.4{ legatoOrigin } 10.3.4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beatLyrics: PropertyDefinition = {\n    property: 'lyrics',\n    snippet: 'lyrics \"$1\"$0',\n    shortDescription: 'Lyrics',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'text',\n                    shortDescription: 'The lyrics to show',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'line',\n                    shortDescription: 'The line number (e.g. for multiple verses)',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                },\n                {\n                    name: 'text',\n                    shortDescription: 'The lyrics to show',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ot: PropertyDefinition = {\n    property: 'ot',\n    snippet: 'ot $1$0',\n    shortDescription: 'Ottava',\n    longDescription: `Adds a octave change (ottava) to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The octave shift to apply',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('Ottavia')\n                }\n            ]\n        }\n    ],\n    examples: `\n    3.3.4{ ot 15ma } 3.3.4{ ot 8vb }\n    `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const p: PropertyDefinition = {\n    property: 'p',\n    snippet: 'p',\n    shortDescription: 'Pop',\n    longDescription: 'Adds a bass pop annotation to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const rasg: PropertyDefinition = {\n    property: 'rasg',\n    snippet: 'rags $1$0',\n    shortDescription: 'Rasgueado',\n    longDescription: `Add a rasgueado play pattern to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'pattern',\n                    shortDescription: 'The pattern to apply',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('Rasgueado')\n                }\n            ]\n        }\n    ],\n    examples: `\n        (1.1 3.2 2.3 0.4) * 4 {rasg amii}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const s: PropertyDefinition = {\n    property: 's',\n    snippet: 's',\n    shortDescription: 'Slap',\n    longDescription: 'Adds a bass slap annotation to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sd: PropertyDefinition = {\n    property: 'sd',\n    snippet: 'sd',\n    shortDescription: 'Pick-Stroke Down',\n    longDescription: 'Adds an downwards pick-stroke annotation to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        0.1 { sd }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const slashed: PropertyDefinition = {\n    property: 'slashed',\n    snippet: 'slashed',\n    shortDescription: 'Slash Notation',\n    longDescription: 'Marks the beat to be displayed with slash notation.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beatSpd: PropertyDefinition = {\n    property: 'spd',\n    snippet: 'spd',\n    shortDescription: 'Sustain pedal down',\n    longDescription: 'Add a sustain pedal down-press to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n        C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beatSpe: PropertyDefinition = {\n    property: 'spe',\n    snippet: 'spe',\n    shortDescription: 'Sustain pedal up (end)',\n    longDescription: 'Add a sustain pedal up (release) to the end of the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n        C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beatSph: PropertyDefinition = {\n    property: 'sph',\n    snippet: 'sph',\n    shortDescription: 'Sustain pedal hold',\n    longDescription: 'Add a sustain pedal hold to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n        C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beatSpu: PropertyDefinition = {\n    property: 'spu',\n    snippet: 'spu',\n    shortDescription: 'Sustain pedal up',\n    longDescription: 'Add a sustain pedal up (release) to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        C4 {spd} C4 {sph} C4 {sph} C4 {spu} |\n        C4 {spd} C4 {sph} C4 {sph} C4 {spe}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const su: PropertyDefinition = {\n    property: 'su',\n    snippet: 'su',\n    shortDescription: 'Pick-Stroke Up',\n    longDescription: 'Adds an upwards pick-stroke annotation to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        0.1 { su }\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { ParameterDefinition, PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nconst type: ParameterDefinition = {\n    name: 'type',\n    shortDescription: 'The type of whammy (affects the display).',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('WhammyType')\n};\n\nconst style: ParameterDefinition = {\n    name: 'style',\n    shortDescription: 'The style of the whammy play style.',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('BendStyle')\n};\n\nconst values: ParameterDefinition = {\n    name: 'values',\n    shortDescription: 'The values of the whammy in quarter-tones relative to the original note, decimals supported',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n};\n\nexport const tb: PropertyDefinition = {\n    property: 'tb',\n    snippet: 'tb ($1)$0',\n    shortDescription: 'Tremolo Bar (Whammy)',\n    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    `,\n    signatures: [\n        {\n            parameters: [values]\n        },\n        {\n            parameters: [type, values]\n        },\n        {\n            parameters: [style, values]\n        },\n        {\n            parameters: [type, style, values]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { ParameterDefinition, PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nconst type: ParameterDefinition = {\n    name: 'type',\n    shortDescription: 'The type of whammy (affects the display).',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('WhammyType')\n};\n\nconst style: ParameterDefinition = {\n    name: 'style',\n    shortDescription: 'The style of the whammy.',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('BendStyle')\n};\n\nconst values: ParameterDefinition = {\n    name: 'valuesAndOffsets',\n    shortDescription: 'The offset and then the value of the whammy',\n    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    `,\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n};\n\nexport const tbe: PropertyDefinition = {\n    property: 'tbe',\n    snippet: 'tbe ($1)$0',\n    shortDescription: 'Tremolo Bar (Whammy) Exact',\n    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    `,\n    signatures: [\n        {\n            parameters: [values]\n        },\n        {\n            parameters: [type, values]\n        },\n        {\n            parameters: [style, values]\n        },\n        {\n            parameters: [type, style, values]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { ParameterDefinition, PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nconst bpm: ParameterDefinition = {\n    name: 'bpm',\n    shortDescription: 'The new tempo in BPM',\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n};\nconst label: ParameterDefinition = {\n    name: 'label',\n    shortDescription: 'A textual label for the tempo',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n    defaultValue: '\"\"'\n};\n\nconst hide: ParameterDefinition = {\n    name: 'hide',\n    shortDescription: 'If specified, the tempo change is not shown in the music sheet',\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n    values: [\n        {\n            name: 'hide',\n            shortDescription: 'If specified, the tempo change is not shown in the music sheet',\n            snippet: 'hide'\n        }\n    ]\n};\n\nexport const beatTempo: PropertyDefinition = {\n    property: 'tempo',\n    snippet: 'tempo $1$0',\n    shortDescription: 'Tempo Change',\n    longDescription: `Add a tempo change to the beat.`,\n    signatures: [\n        {\n            parameters: [bpm, hide]\n        },\n        {\n            parameters: [bpm, label, hide]\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const timer: PropertyDefinition = {\n    property: 'timer',\n    snippet: 'timer',\n    shortDescription: 'Show timestamp',\n    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    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tp: PropertyDefinition = {\n    property: 'tp',\n    snippet: 'tp $1$0',\n    shortDescription: 'Tremolo Picking',\n    longDescription: `Add a tremolo picking to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'marks',\n                    shortDescription: 'The number of tremolo marks',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    valuesOnlyForCompletion: true,\n                    values: [\n                        { name: '1', snippet: '1', shortDescription: '1 tremolo mark (8th notes)' },\n                        { name: '2', snippet: '2', shortDescription: '2 tremolo mark (16th notes)' },\n                        { name: '3', snippet: '3', shortDescription: '3 tremolo mark (32nd notes)' },\n                        { name: '4', snippet: '4', shortDescription: '4 tremolo mark (64th notes)' },\n                        { name: '5', snippet: '5', shortDescription: '5 tremolo mark (128th notes)' }\n                    ]\n                },\n                {\n                    name: 'style',\n                    shortDescription: 'The tremolo style',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    ...enumParameter('TremoloPickingStyle')\n                }\n            ]\n        }\n    ],\n    examples: [\n        `\n        3.3{tp 1} 3.3{tp 2} 3.3{tp 3} \n        `,\n        `\n        \\\\title \"Buzz Rolls\"\n        3.3{tp (0 buzzRoll)} // no audio \n        3.3{tp (1 buzzRoll)} // 8th notes tremolo shown as buzzroll\n        `\n    ]\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tt: PropertyDefinition = {\n    property: 'tt',\n    snippet: 'tt',\n    shortDescription: 'Tapping',\n    longDescription: 'Adds a guitar or bass tapping annotation to the beat.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tu: PropertyDefinition = {\n    property: 'tu',\n    snippet: 'tu $1$0',\n    shortDescription: 'Tuplet',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'simple',\n                    shortDescription: 'The simple tuplet',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    values: [\n                        { name: '3', snippet: '3', shortDescription: '3:2 Tuplet' },\n                        { name: '5', snippet: '5', shortDescription: '5:4 Tuplet' },\n                        { name: '6', snippet: '6', shortDescription: '6:4 Tuplet' },\n                        { name: '7', snippet: '7', shortDescription: '7:4 Tuplet' },\n                        { name: '9', snippet: '9', shortDescription: '9:8 Tuplet' },\n                        { name: '10', snippet: '10', shortDescription: '10:8 Tuplet' },\n                        { name: '12', snippet: '12', shortDescription: '12:8 Tuplet' }\n                    ]\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'numerator',\n                    shortDescription: 'The tuplet numerator',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                },\n                {\n                    name: 'denominator',\n                    shortDescription: 'The tuplet denominator',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        C4 {tu 3} * 3 |\n        C4 {tu 5} * 5 |\n        C4 {tu 5 2} * 5\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const txt: PropertyDefinition = {\n    property: 'txt',\n    snippet: 'txt \"$1\"$0',\n    shortDescription: 'Text',\n    longDescription: `Adds a text annotation to the beat.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'text',\n                    shortDescription: 'The text to show above the beat',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    allowAllStringTypes: true,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        C4 {txt \"This is a C4 Note\"}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const v: PropertyDefinition = {\n    property: 'v',\n    snippet: 'v',\n    shortDescription: 'Slight Vibrato',\n    longDescription: 'Adds a slight vibrato effect to the beat. Applies to all notes.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).1 { v }\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const volume: PropertyDefinition = {\n    property: 'volume',\n    snippet: 'volume $1$0',\n    shortDescription: 'Volume Change',\n    longDescription: `\n    Add a volume change to the beat.\n\n    The change affects all beats after this one.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The new volume',\n                    longDescription: 'The absolute volume of the track within the song in the range of 0-16',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n    examples: `\n        C4 {volume 8} D4 E4 {tempo 16} F4\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const vs: PropertyDefinition = {\n    property: 'vs',\n    snippet: 'vs',\n    shortDescription: 'Volume-Swell',\n    longDescription: 'Adds a volume-swell effect to the beat. Applies to all notes.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).1 { vs }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const vw: PropertyDefinition = {\n    property: 'vw',\n    snippet: 'vw',\n    shortDescription: 'Wide Vibrato',\n    longDescription: 'Adds a wide vibrato effect to the beat. Applies to all notes.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        (0.1 2.2 2.3 2.4 0.5).1 { vw }\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const wahc: PropertyDefinition = {\n    property: 'wahc',\n    snippet: 'wahc',\n    shortDescription: 'Wah-Wah (Close)',\n    longDescription: `Adds a Wah-pedal close effect to the beat.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3 3.3{waho} 3.3 3.3 {wahc}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const waho: PropertyDefinition = {\n    property: 'waho',\n    snippet: 'waho',\n    shortDescription: 'Wah-Wah (Open)',\n    longDescription: `Adds a Wah-pedal opening effect to the beat.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3 3.3{waho} 3.3 3.3 {wahc}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const noteAccentuation: PropertyDefinition = {\n    property: 'ac',\n    snippet: 'ac',\n    shortDescription: 'Accentuated',\n    longDescription: `Applies a simple accentuation to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{ac} 3.3{hac} 3.3{ten}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const acc: PropertyDefinition = {\n    property: 'acc',\n    snippet: 'acc $1$0',\n    shortDescription: 'Accidentals',\n    longDescription: `Changes the mode to determine the accidentals for this note.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The accidental mode',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('NoteAccidentalMode')\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const harmonicValueDocs = [\n    '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:',\n    '',\n    '* `2.4` adds 36 frets',\n    '* `2.7` adds 34 frets',\n    '* `< 3` adds 0 frets',\n    '* `<= 3.5` adds 31 frets',\n    '* `<= 4` adds 28 frets',\n    '* `<= 5` adds 34 frets',\n    '* `<= 7` adds 19 frets',\n    '* `<= 8.5` adds 36 frets',\n    '* `<= 9` adds 28 frets',\n    '* `<= 10` adds 34 frets',\n    '* `<= 11` adds 0 frets',\n    '* `<= 12` adds 12 frets',\n    '* `< 14` adds 0 frets',\n    '* `<= 15` adds 34 frets',\n    '* `<= 16` adds 28 frets',\n    '* `<= 17` adds 36 frets',\n    '* `<= 18` adds 0 frets',\n    '* `<= 19` adds 19 frets',\n    '* `<= 21` adds 0 frets',\n    '* `<= 22` adds 36 frets',\n    '* `<= 24` adds 24 frets',\n    '* `other: adds 0 frets'\n].join('\\n');\n\nexport const ah: PropertyDefinition = {\n    property: 'ah',\n    snippet: 'ah$0',\n    shortDescription: 'Artificial Harmonic',\n    longDescription: `Applies an artificial harmonic effect to the note (for fretted instruments).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The harmonic value',\n                    longDescription: harmonicValueDocs,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    examples: `\n        C4 {volume 8} D4 E4 {tempo 16} F4\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { ParameterDefinition, PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nconst type: ParameterDefinition = {\n    name: 'type',\n    shortDescription: 'The type of bend (affects the display).',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('BendType')\n};\n\nconst style: ParameterDefinition = {\n    name: 'style',\n    shortDescription: 'The style of the bend.',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('BendStyle')\n};\n\nconst values: ParameterDefinition = {\n    name: 'values',\n    shortDescription: 'The values of the bend in quarter-tones relative to the original note, decimals supported',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n};\n\nexport const b: PropertyDefinition = {\n    property: 'b',\n    snippet: 'b ($1)$0',\n    shortDescription: 'Note Bend',\n    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    `,\n    signatures: [\n        {\n            parameters: [values]\n        },\n        {\n            parameters: [type, values]\n        },\n        {\n            parameters: [style, values]\n        },\n        {\n            parameters: [type, style, values]\n        }\n    ],\n    examples: `\n        3.3{b (0 4)} |\n        3.3{b (0 4 0 8)} |\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { ParameterDefinition, PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nconst type: ParameterDefinition = {\n    name: 'type',\n    shortDescription: 'The type of bend (affects the display).',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('BendType')\n};\n\nconst style: ParameterDefinition = {\n    name: 'style',\n    shortDescription: 'The style of the whammy play style.',\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n    ...enumParameter('BendStyle')\n};\n\nconst values: ParameterDefinition = {\n    name: 'valueAndOffset',\n    shortDescription: 'The offset and then the value of the bend',\n    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    `,\n    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n};\n\nexport const be: PropertyDefinition = {\n    property: 'be',\n    snippet: 'be ($1)$0',\n    shortDescription: 'Note Bend (exact)',\n    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    `,\n    signatures: [\n        {\n            parameters: [values]\n        },\n        {\n            parameters: [type, values]\n        },\n        {\n            parameters: [style, values]\n        },\n        {\n            parameters: [type, style, values]\n        }\n    ],\n    examples: `\n        :1 3.3 {be (0 0 5 2 30 4)}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\n\nimport { harmonicValueDocs } from '@coderline/alphatab-alphatex/properties/note/ah';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const fh: PropertyDefinition = {\n    property: 'fh',\n    snippet: 'fh$0',\n    shortDescription: 'Feedback Harmonic',\n    longDescription: `Applies a feedback harmonic effect to the note (for fretted instruments).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The harmonic value',\n                    longDescription: harmonicValueDocs,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    examples: `\n        :8 3.3{fh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const g: PropertyDefinition = {\n    property: 'g',\n    snippet: 'g',\n    shortDescription: 'Ghost Note',\n    longDescription: `Marks the note as a ghost note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: \n        `\n        3.3{g}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const h: PropertyDefinition = {\n    property: 'h',\n    snippet: 'h',\n    shortDescription: 'Hammer-On/Pull-Off',\n    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    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{h} 4.3 4.3{h} 3.3 | 3.3{h} 4.3{h} 3.3{h} 4.3\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const hac: PropertyDefinition = {\n    property: 'hac',\n    snippet: 'hac',\n    shortDescription: 'Heavy-Accentuated',\n    longDescription: `Applies a heavy accentuation to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{ac} 3.3{hac} 3.3{ten}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const hide: PropertyDefinition = {\n    property: 'hide',\n    snippet: 'hide',\n    shortDescription: 'Hide Note',\n    longDescription: 'Hides the note from being displayed in the music sheet.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :8 3.3 (4.4{hide} 5.5)\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const iturn: PropertyDefinition = {\n    property: 'iturn',\n    snippet: 'iturn',\n    shortDescription: 'Inverted Turn Ornament',\n    longDescription: 'Applies an inverted turn ornament to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :1 C4{iturn} |\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const lf: PropertyDefinition = {\n    property: 'lf',\n    snippet: 'lf $1$0',\n    shortDescription: 'Left-Hand Finger',\n    longDescription: `Adds a left-hand fingering annotation to the note.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'finger',\n                    shortDescription: 'The finger',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    values: [\n                        { name: '1', snippet: '1', shortDescription: 'Thumb' },\n                        { name: '2', snippet: '2', shortDescription: 'Index-Finger' },\n                        { name: '3', snippet: '3', shortDescription: 'Middle-Finger' },\n                        { name: '4', snippet: '4', shortDescription: 'Annual-Finger' },\n                        { name: '5', snippet: '5', shortDescription: 'Little-Finger' }\n                    ]\n                }\n            ]\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const lht: PropertyDefinition = {\n    property: 'lht',\n    snippet: 'lht',\n    shortDescription: 'Left-Hand tap',\n    longDescription: `Applies a left-hand-tapped annotation to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :16 15.1{h} 13.1{h} 12.1{h} 15.2{lht}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const lmordent: PropertyDefinition = {\n    property: 'lmordent',\n    snippet: 'lmordent',\n    shortDescription: 'Lower Mordent Ornament',\n    longDescription: 'Applies an lower mordent ornament to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :1 C4{lmordent} |\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const lr: PropertyDefinition = {\n    property: 'lr',\n    snippet: 'lr',\n    shortDescription: 'LetRing',\n    longDescription: `Applies a LetRing effect to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.4{lr} 3.3{lr} 3.2{lr} 3.1{lr}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const nh: PropertyDefinition = {\n    property: 'nh',\n    snippet: 'nh',\n    shortDescription: 'Natural Harmonic',\n    longDescription: `Applies a natural harmonic effect to the note (for fretted instruments).`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\n\nimport { harmonicValueDocs } from '@coderline/alphatab-alphatex/properties/note/ah';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ph: PropertyDefinition = {\n    property: 'ph',\n    snippet: 'ph$0',\n    shortDescription: 'Pinch Harmonic',\n    longDescription: `Applies a pinch harmonic effect to the note (for fretted instruments).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The harmonic value',\n                    longDescription: harmonicValueDocs,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    examples: `\n        :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const pm: PropertyDefinition = {\n    property: 'pm',\n    snippet: 'pm',\n    shortDescription: 'Palm-Mute',\n    longDescription: `Applies a palm mute effect to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{pm} 3.3{pm} 3.3{pm} 3.3{pm}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const psd: PropertyDefinition = {\n    property: 'psd',\n    snippet: 'psd',\n    shortDescription: 'Pick-Slide (downwards)',\n    longDescription: 'Adds a pick slide effect out from note downwards.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const psu: PropertyDefinition = {\n    property: 'psu',\n    snippet: 'psu',\n    shortDescription: 'Pick-Slide (upwards)',\n    longDescription: 'Adds a pick slide effect out from note upwards.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import { lf } from '@coderline/alphatab-alphatex/properties/note/lf';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const rf: PropertyDefinition = {\n    property: 'rf',\n    snippet: 'rf $1$0',\n    shortDescription: 'Right-Hand Finger',\n    longDescription: `Adds a right-hand fingering annotation to the note.`,\n    signatures: lf.signatures,\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { harmonicValueDocs } from '@coderline/alphatab-alphatex/properties/note/ah';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sh: PropertyDefinition = {\n    property: 'sh',\n    snippet: 'sh$0',\n    shortDescription: 'Semi Harmonic',\n    longDescription: `Applies a semi harmonic effect to the note (for fretted instruments).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The harmonic value',\n                    longDescription: harmonicValueDocs,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    examples: `\n        :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sia: PropertyDefinition = {\n    property: 'sia',\n    snippet: 'sia',\n    shortDescription: 'Slide (into from-above)',\n    longDescription: 'Adds a slide effect into the note from above.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sib: PropertyDefinition = {\n    property: 'sib',\n    snippet: 'sib',\n    shortDescription: 'Slide (into from-below)',\n    longDescription: 'Adds a slide effect into the note from below.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sl: PropertyDefinition = {\n    property: 'sl',\n    snippet: 'sl',\n    shortDescription: 'Slide (legato)',\n    longDescription: 'Adds a legato slide effect to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const slur: PropertyDefinition = {\n    property: 'slur',\n    snippet: 'slur $1$0',\n    shortDescription: 'Slur',\n    longDescription: `Marks the start or end of a slur for the note.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'id',\n                    shortDescription: 'A unique ID to mark the start and end of the slur.',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.String,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        },\n        {\n            parameters: [\n                {\n                    name: 'id',\n                    shortDescription: 'A unique ID to mark the start and end of the slur.',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                }\n            ]\n        }\n    ],\n    examples: `\n        (3.3 {slur s1} 4.4).4 7.3.8 8.3.8 10.3 {slur s1} .8\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sod: PropertyDefinition = {\n    property: 'sod',\n    snippet: 'sod',\n    shortDescription: 'Slide (out downwards)',\n    longDescription: 'Adds a slide effect out from note downwards.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const sou: PropertyDefinition = {\n    property: 'sou',\n    snippet: 'sou',\n    shortDescription: 'Slide (out upwards)',\n    longDescription: 'Adds a slide effect out from note upwards.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ss: PropertyDefinition = {\n    property: 'ss',\n    snippet: 'ss',\n    shortDescription: 'Slide (shift)',\n    longDescription: 'Adds a shift slide effect to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: \n        `\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        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const st: PropertyDefinition = {\n    property: 'st',\n    snippet: 'st',\n    shortDescription: 'Staccato',\n    longDescription: `Applies a staccato effect to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{st}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const string: PropertyDefinition = {\n    property: 'string',\n    snippet: 'string',\n    shortDescription: 'Show String Number',\n    longDescription: 'Adds an annotation showing the string number of the note above the staff.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{string} 3.4{string} 3.5{string}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const t: PropertyDefinition = {\n    property: 't',\n    snippet: 't',\n    shortDescription: 'Tied-Note',\n    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    `,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: [\n        `\n        3.3 -.3 | (1.1 3.2 2.3 0.4) (-.1 -.4)\n        `,\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        `\n    ]\n};\n\n\nexport const tiedNoteDash: PropertyDefinition = {\n    ...t,\n    property: '-',\n    snippet: '-',\n    hidden : true\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const ten: PropertyDefinition = {\n    property: 'ten',\n    snippet: 'ten',\n    shortDescription: 'Tenuto',\n    longDescription: `Applies a tenuto accentuation to the note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{ac} 3.3{ten} 3.3{ten}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\n\nimport { harmonicValueDocs } from '@coderline/alphatab-alphatex/properties/note/ah';\nimport type { PropertyDefinition } from '../../types';\n\nexport const th: PropertyDefinition = {\n    property: 'th',\n    snippet: 'th$0',\n    shortDescription: 'Tapped Harmonic',\n    longDescription: `Applies a tapped harmonic effect to the note (for fretted instruments).`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'value',\n                    shortDescription: 'The harmonic value',\n                    longDescription: harmonicValueDocs,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional\n                }\n            ]\n        }\n    ],\n    examples: `\n        :8 3.3{nh} 3.3{ah} 3.3{ph} 3.3{th} 3.3{sh}\n        `\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const tr: PropertyDefinition = {\n    property: 'tr',\n    snippet: 'tr$0',\n    shortDescription: 'Trill',\n    longDescription: `Applies a trill effect to the note.`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'fret',\n                    shortDescription: 'The fret on which to trill',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required\n                },\n                {\n                    name: 'duration',\n                    shortDescription: 'The duration/speed of the trills',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number,\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: '16',\n                    values: [\n                        { name: '16', snippet: '16', shortDescription: '16th Note' },\n                        { name: '32', snippet: '32', shortDescription: '32nd Note' },\n                        { name: '64', snippet: '64', shortDescription: '64th Note' }\n                    ]\n                }\n            ]\n        }\n    ],\n    examples: `\n        :4 3.3{tr 4} 3.3{tr 4 16} 3.3{tr 5 32} 3.3{tr 6 64}\n        `\n};\n6;\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const turn: PropertyDefinition = {\n    property: 'turn',\n    snippet: 'turn',\n    shortDescription: 'Turn Ornament',\n    longDescription: 'Applies a turn ornament to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :1 C4{turn} |\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const umordent: PropertyDefinition = {\n    property: 'umordent',\n    snippet: 'umordent',\n    shortDescription: 'Upper Mordent Ornament',\n    longDescription: 'Applies an upper mordent ornament to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        :1 C4{umordent} |\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const noteVibrato: PropertyDefinition = {\n    property: 'v',\n    snippet: 'v',\n    shortDescription: 'Slight Vibrato',\n    longDescription: 'Adds a slight vibrato effect to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: `\n        3.3{v}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const noteVibratoWide: PropertyDefinition = {\n    property: 'vw',\n    snippet: 'vw',\n    shortDescription: 'Wide Vibrato',\n    longDescription: 'Adds a wide vibrato effect to the note.',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: \n        `\n        3.3{vw}\n        `\n};\n","import type { PropertyDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const x: PropertyDefinition = {\n    property: 'x',\n    snippet: 'x',\n    shortDescription: 'Dead-Note',\n    longDescription: `Marks the note as a dead note.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: \n        `\n        x.3 3.3{x}\n        `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const db: MetadataTagDefinition = {\n    tag: '\\\\db',\n    snippet: '\\\\db $0',\n    shortDescription: 'Mark a double-bar',\n    hidden: true,\n    deprecated: 'Use barLineLeft and barLineRight instead',\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: ``\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const voiceMode: MetadataTagDefinition = {\n    tag: '\\\\voiceMode',\n    snippet: '\\\\voiceMode $1 $0',\n    shortDescription: 'Changes the mode how voices are treated',\n    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    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode which should be active',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('AlphaTexVoiceMode')\n                }\n            ]\n        }\n    ],\n    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    `\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    `\n    ]\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const defaultBarNumberDisplay: MetadataTagDefinition = {\n    tag: '\\\\defaultBarNumberDisplay',\n    snippet: '\\\\defaultBarNumberDisplay ${1:allBars}$0',\n    shortDescription: 'Sets the display mode for bar numbers on all bars.',\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('BarNumberDisplay')\n                }\n            ]\n        }\n    ],\n    examples: [\n        {\n            options: { display: { layoutMode: 'Parchment' } },\n            tex: `\n            \\\\defaultBarNumberDisplay allBars\n            \\\\title \"All Bars\"\n                \\\\track { defaultsystemslayout 3 }\n                C4.1 | C4.1 | C4.1 |\n                C4.1 | C4.1 | C4.1 \n            `\n        },\n        {\n            options: { display: { layoutMode: 'Parchment' } },\n            tex: `\n            \\\\defaultBarNumberDisplay firstOfSystem\n            \\\\title \"First of System\"\n                \\\\track { defaultsystemslayout 3 }\n                C4.1 | C4.1 | C4.1 |\n                C4.1 | C4.1 | C4.1 \n            `\n        },\n        {\n            options: { display: { layoutMode: 'Parchment' } },\n            tex: `\n            \\\\defaultBarNumberDisplay hide\n            \\\\title \"Hide\"\n                \\\\track { defaultsystemslayout 3 }\n                C4.1 | C4.1 | C4.1 |\n                C4.1 | C4.1 | C4.1 \n            `\n        }\n    ]\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const chordDiagramsInScore: MetadataTagDefinition = {\n    tag: '\\\\chordDiagramsInScore',\n    snippet: '\\\\chordDiagramsInScore',\n    shortDescription: 'Show inline chord diagrams in score.',\n    longDescription: `Configures whether chord diagrams are shown inline in the score..`,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'visibility',\n                    shortDescription: 'The visibility of the diagrams',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional,\n                    defaultValue: 'true',\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Ident,\n                    values: [\n                        { name: 'true', snippet: 'true', shortDescription: 'Show the diagrams' },\n                        { name: 'false', snippet: 'false', shortDescription: 'Hide the diagrams' }\n                    ]\n                }\n            ]\n        }\n    ],\n    examples: [\n        `\n        \\\\chordDiagramsInScore\n        \\\\chord (\"E\" 0 0 1 2 2 0)\n        (0.1 0.2 1.3 2.4 2.5 0.6){ch \"E\"}\n        `\n    ]\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const extendBarLines: MetadataTagDefinition = {\n    tag: '\\\\extendBarLines',\n    snippet: '\\\\extendBarLines',\n    shortDescription: `Extend the bar lines across staves in the same system.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    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        `\n};\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const hideEmptyStaves: MetadataTagDefinition = {\n    tag: '\\\\hideEmptyStaves',\n    snippet: '\\\\hideEmptyStaves',\n    shortDescription: `Hide empty staves.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: {\n        options: { display: {systemsLayoutMode: 'UseModelLayout'}},\n        tex: `\n        \\\\hideEmptyStaves\n        \\\\defaultSystemsLayout 3\n        \\\\track \"Track 1\"\n            C4 * 4 | C4 * 4 | C4 * 4 | \n            C4 * 4 | C4 * 4 | C4 * 4 | \n        \\\\track \"Track 2\"\n            r | r | r |\n            r | C4.1 | r |\n        `\n    }\n}\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const hideEmptyStavesInFirstSystem: MetadataTagDefinition = {\n    tag: '\\\\hideEmptyStavesInFirstSystem',\n    snippet: '\\\\hideEmptyStavesInFirstSystem',\n    shortDescription: `Hide empty staves in first system.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: {\n        options: { display: {systemsLayoutMode: 'UseModelLayout'}},\n        tex: `\n        \\\\hideEmptyStaves\n        \\\\hideEmptyStavesInFirstSystem\n        \\\\defaultSystemsLayout 3\n        \\\\track \"Track 1\"\n            C4 * 4 | C4 * 4 | C4 * 4 | \n            r | r | r | \n        \\\\track \"Track 2\"\n            r | r | r |\n            r | C4.1 | r |\n        `\n    }\n}\n","import type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const showSingleStaffBrackets: MetadataTagDefinition = {\n    tag: '\\\\showSingleStaffBrackets',\n    snippet: '\\\\showSingleStaffBrackets',\n    shortDescription: `Show brackets and braces on single staves.`,\n    signatures: [\n        {\n            parameters: []\n        }\n    ],\n    examples: {\n        options: { display: {systemsLayoutMode: 'UseModelLayout'}},\n        tex: `\n        \\\\hideEmptyStaves\n        \\\\hideEmptyStavesInFirstSystem\n        \\\\showSingleStaffBrackets\n        \\\\defaultSystemsLayout 3\n        \\\\track \"Track 1\"\n            \\\\staff { score }\n            C4 * 4 | C4 * 4 | C4 * 4 |\n            C4 * 4 | C4 * 4 | C4 * 4 |\n            \\\\staff { score }\n            r | r | r | \n            r | C4.1 | r | \n        `\n    }\n}\n","import { instrument } from '@coderline/alphatab-alphatex/properties/beat/instrument';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const instrumentMeta: MetadataTagDefinition = {\n    tag: '\\\\instrument',\n    snippet: '\\\\instrument \"$1\"$0',\n    shortDescription: 'Instrument',\n    hidden: true,\n    longDescription: `Defines the instrument for the track.`,\n    deprecated: 'Use the track property instead',\n    signatures: instrument.signatures,\n    examples: ``\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport { enumParameter } from '@coderline/alphatab-alphatex/enum';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const barNumberDisplay: MetadataTagDefinition = {\n    tag: '\\\\barNumberDisplay',\n    snippet: '\\\\barNumberDisplay ${1:allBars}$0',\n    shortDescription: 'Sets the display mode for bar numbers.',\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'mode',\n                    shortDescription: 'The mode to use',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    ...enumParameter('BarNumberDisplay')\n                }\n            ]\n        }\n    ],\n    examples: [\n        {\n            options: { display: { layoutMode: 'Parchment' } },\n            tex: `\n            \\\\defaultBarNumberDisplay hide\n            \\\\track { defaultsystemslayout 3 }\n                C4.1 | \\\\barNumberDisplay allBars C4.1 | C4.1 |\n                \\\\barNumberDisplay firstOfSystem C4.1 | \\\\barNumberDisplay firstOfSystem C4.1 | C4.1 \n            `\n        },\n        {\n            options: { display: { layoutMode: 'Parchment' } },\n            tex: `\n            \\\\defaultBarNumberDisplay firstOfSystem\n            \\\\track { defaultsystemslayout 3 }\n                C4.1 | \\\\barNumberDisplay allBars C4.1 | C4.1 |\n                \\\\barNumberDisplay hide C4.1 | C4.1 | C4.1 \n            `\n        }\n    ]\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport type { MetadataTagDefinition } from '@coderline/alphatab-alphatex/types';\n\nexport const beaming: MetadataTagDefinition = {\n    tag: '\\\\beaming',\n    snippet: '\\\\beaming ($1 $2) $0',\n    shortDescription: 'Set the time signature',\n    longDescription: `\n    Defines a custom beaming rule defining how beams of certain durations should be beamed.\n\n    To define how beats should be beamed we need 2 parts:\n\n    1. A duration with which we splitup the bars\n    2. A list of group sizes defining how many split-parts should be beamed together. \n\n    The beaming rules go hand-in-hand with the time signature as the rules need to properly\n    define the groups for the whole beat. \n\n    Let's take a simple example of a 4/4 time signature. If we want to ensure that the beats within the quarter notes are \n    beamed together we can write variants like this:\n\n    a. \\`\\\\beaming (4 1 1 1 1)\\`\n    b. \\`\\\\beaming (8 2 2 2 2)\\`\n    c. \\`\\\\beaming (16 4 4 4 4)\\`\n\n    We slice the bar into 4, 8 or 16 parts. Then we add \"groups\" to those parts. If two beats start in the same group, they can be beamed together.\n    Simple as that. \n\n    There are some common guidelines on how beaming \"should be done\" and alphaTab ships a wide range of defaults. But in case of more specialized time signatures,\n    you can also customize the beaming as you need by slicing the bar and grouping the beats as needed.\n    `,\n    signatures: [\n        {\n            parameters: [\n                {\n                    name: 'duration',\n                    shortDescription: 'The note duration defining the smallest group size',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                },\n                {\n                    name: 'groups',\n                    shortDescription: 'For every group the number of notes contained in the group.',\n                    parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis,\n                    type: alphaTab.importer.alphaTex.AlphaTexNodeType.Number\n                }\n            ]\n        }\n    ],\n\n    examples: `\n        \\\\ts (4 4)\n        \\\\beaming (8 4 2 2)\n        C4.8 * 8 |\n\n        \\\\ts (4 4)\n        \\\\beaming (8 4 4)\n        C4.8 * 8\n        `\n};\n","import { ac } from '@coderline/alphatab-alphatex//metadata/bar/ac';\nimport { accidentals } from '@coderline/alphatab-alphatex//metadata/bar/accidentals';\nimport { ae } from '@coderline/alphatab-alphatex//metadata/bar/ae';\nimport { barlineLeft } from '@coderline/alphatab-alphatex//metadata/bar/barlineleft';\nimport { barlineRight } from '@coderline/alphatab-alphatex//metadata/bar/barlineright';\nimport { clef } from '@coderline/alphatab-alphatex//metadata/bar/clef';\nimport { ft } from '@coderline/alphatab-alphatex//metadata/bar/ft';\nimport { jump } from '@coderline/alphatab-alphatex//metadata/bar/jump';\nimport { ks } from '@coderline/alphatab-alphatex//metadata/bar/ks';\nimport { ottava } from '@coderline/alphatab-alphatex//metadata/bar/ottava';\nimport { rc } from '@coderline/alphatab-alphatex//metadata/bar/rc';\nimport { ro } from '@coderline/alphatab-alphatex//metadata/bar/ro';\nimport { scale } from '@coderline/alphatab-alphatex//metadata/bar/scale';\nimport { section } from '@coderline/alphatab-alphatex//metadata/bar/section';\nimport { simile } from '@coderline/alphatab-alphatex//metadata/bar/simile';\nimport { spd } from '@coderline/alphatab-alphatex//metadata/bar/spd';\nimport { sph } from '@coderline/alphatab-alphatex//metadata/bar/sph';\nimport { spu } from '@coderline/alphatab-alphatex//metadata/bar/spu';\nimport { sync } from '@coderline/alphatab-alphatex//metadata/bar/sync';\nimport { tempo } from '@coderline/alphatab-alphatex//metadata/bar/tempo';\nimport { tf } from '@coderline/alphatab-alphatex//metadata/bar/tf';\nimport { ts } from '@coderline/alphatab-alphatex//metadata/bar/ts';\nimport { width } from '@coderline/alphatab-alphatex//metadata/bar/width';\nimport { album } from '@coderline/alphatab-alphatex//metadata/score/album';\nimport { artist } from '@coderline/alphatab-alphatex//metadata/score/artist';\nimport { bracketExtendMode } from '@coderline/alphatab-alphatex//metadata/score/bracketextendmode';\nimport { copyright } from '@coderline/alphatab-alphatex//metadata/score/copyright';\nimport { copyright2 } from '@coderline/alphatab-alphatex//metadata/score/copyright2';\nimport { defaultSystemsLayout } from '@coderline/alphatab-alphatex//metadata/score/defaultsystemslayout';\nimport { firstSystemTrackNameMode } from '@coderline/alphatab-alphatex//metadata/score/firstsystemtracknamemode';\nimport { firstSystemTrackNameOrientation } from '@coderline/alphatab-alphatex//metadata/score/firstsystemtracknameorientation';\nimport { hideDynamics } from '@coderline/alphatab-alphatex//metadata/score/hidedynamics';\nimport { instructions } from '@coderline/alphatab-alphatex//metadata/score/instructions';\nimport { multiBarRest } from '@coderline/alphatab-alphatex//metadata/score/multibarrest';\nimport { multiTrackTrackNamePolicy } from '@coderline/alphatab-alphatex//metadata/score/multitracktracknamepolicy';\nimport { music } from '@coderline/alphatab-alphatex//metadata/score/music';\nimport { notices } from '@coderline/alphatab-alphatex//metadata/score/notices';\nimport { otherSystemsTrackNameMode } from '@coderline/alphatab-alphatex//metadata/score/othersystemtracknamemode';\nimport { otherSystemsTrackNameOrientation } from '@coderline/alphatab-alphatex//metadata/score/othersystemtracknameorientation';\nimport { showDynamics } from '@coderline/alphatab-alphatex//metadata/score/showdynamics';\nimport { singleTrackTrackNamePolicy } from '@coderline/alphatab-alphatex//metadata/score/singletracktracknamepolicy';\nimport { subtitle } from '@coderline/alphatab-alphatex//metadata/score/subtitle';\nimport { systemsLayout } from '@coderline/alphatab-alphatex//metadata/score/systemslayout';\nimport { tab } from '@coderline/alphatab-alphatex//metadata/score/tab';\nimport { title } from '@coderline/alphatab-alphatex//metadata/score/title';\nimport { useSystemSignSeparator } from '@coderline/alphatab-alphatex//metadata/score/usesystemsignseparator';\nimport { words } from '@coderline/alphatab-alphatex//metadata/score/words';\nimport { wordsAndMusic } from '@coderline/alphatab-alphatex//metadata/score/wordsandmusic';\nimport { articulation } from '@coderline/alphatab-alphatex//metadata/staff/articulation';\nimport { capo } from '@coderline/alphatab-alphatex//metadata/staff/capo';\nimport { chord } from '@coderline/alphatab-alphatex//metadata/staff/chord';\nimport { displayTranspose } from '@coderline/alphatab-alphatex//metadata/staff/displaytranspose';\nimport { lyrics } from '@coderline/alphatab-alphatex//metadata/staff/lyrics';\nimport { transpose } from '@coderline/alphatab-alphatex//metadata/staff/transpose';\nimport { tuning } from '@coderline/alphatab-alphatex//metadata/staff/tuning';\nimport { staff } from '@coderline/alphatab-alphatex//metadata/structural/staff';\nimport { track } from '@coderline/alphatab-alphatex//metadata/structural/track';\nimport { voice } from '@coderline/alphatab-alphatex//metadata/structural/voice';\nimport { ad } from '@coderline/alphatab-alphatex//properties/beat/ad';\nimport { au } from '@coderline/alphatab-alphatex//properties/beat/au';\nimport { balance } from '@coderline/alphatab-alphatex//properties/beat/balance';\nimport { bank } from '@coderline/alphatab-alphatex//properties/beat/bank';\nimport { barre } from '@coderline/alphatab-alphatex//properties/beat/barre';\nimport { bd } from '@coderline/alphatab-alphatex//properties/beat/bd';\nimport { beam } from '@coderline/alphatab-alphatex//properties/beat/beam';\nimport { bu } from '@coderline/alphatab-alphatex//properties/beat/bu';\nimport { ch } from '@coderline/alphatab-alphatex//properties/beat/ch';\nimport { cre } from '@coderline/alphatab-alphatex//properties/beat/cre';\nimport { d } from '@coderline/alphatab-alphatex//properties/beat/d';\nimport { dd } from '@coderline/alphatab-alphatex//properties/beat/dd';\nimport { dec } from '@coderline/alphatab-alphatex//properties/beat/dec';\nimport { ds } from '@coderline/alphatab-alphatex//properties/beat/ds';\nimport { dy } from '@coderline/alphatab-alphatex//properties/beat/dy';\nimport { f } from '@coderline/alphatab-alphatex//properties/beat/f';\nimport { fermata } from '@coderline/alphatab-alphatex//properties/beat/fermata';\nimport { fo } from '@coderline/alphatab-alphatex//properties/beat/fo';\nimport { glpf } from '@coderline/alphatab-alphatex//properties/beat/glpf';\nimport { glpt } from '@coderline/alphatab-alphatex//properties/beat/glpt';\nimport { gr } from '@coderline/alphatab-alphatex//properties/beat/gr';\nimport { instrument } from '@coderline/alphatab-alphatex//properties/beat/instrument';\nimport { legatoOrigin } from '@coderline/alphatab-alphatex//properties/beat/legatoOrigin';\nimport { beatLyrics } from '@coderline/alphatab-alphatex//properties/beat/lyrics';\nimport { ot } from '@coderline/alphatab-alphatex//properties/beat/ot';\nimport { p } from '@coderline/alphatab-alphatex//properties/beat/p';\nimport { rasg } from '@coderline/alphatab-alphatex//properties/beat/rasg';\nimport { s } from '@coderline/alphatab-alphatex//properties/beat/s';\nimport { sd } from '@coderline/alphatab-alphatex//properties/beat/sd';\nimport { slashed } from '@coderline/alphatab-alphatex//properties/beat/slashed';\nimport { beatSpd } from '@coderline/alphatab-alphatex//properties/beat/spd';\nimport { beatSpe } from '@coderline/alphatab-alphatex//properties/beat/spe';\nimport { beatSph } from '@coderline/alphatab-alphatex//properties/beat/sph';\nimport { beatSpu } from '@coderline/alphatab-alphatex//properties/beat/spu';\nimport { su } from '@coderline/alphatab-alphatex//properties/beat/su';\nimport { tb } from '@coderline/alphatab-alphatex//properties/beat/tb';\nimport { tbe } from '@coderline/alphatab-alphatex//properties/beat/tbe';\nimport { beatTempo } from '@coderline/alphatab-alphatex//properties/beat/tempo';\nimport { timer } from '@coderline/alphatab-alphatex//properties/beat/timer';\nimport { tp } from '@coderline/alphatab-alphatex//properties/beat/tp';\nimport { tt } from '@coderline/alphatab-alphatex//properties/beat/tt';\nimport { tu } from '@coderline/alphatab-alphatex//properties/beat/tu';\nimport { txt } from '@coderline/alphatab-alphatex//properties/beat/txt';\nimport { v } from '@coderline/alphatab-alphatex//properties/beat/v';\nimport { volume } from '@coderline/alphatab-alphatex//properties/beat/volume';\nimport { vs } from '@coderline/alphatab-alphatex//properties/beat/vs';\nimport { vw } from '@coderline/alphatab-alphatex//properties/beat/vw';\nimport { wahc } from '@coderline/alphatab-alphatex//properties/beat/wahc';\nimport { waho } from '@coderline/alphatab-alphatex//properties/beat/waho';\nimport { noteAccentuation } from '@coderline/alphatab-alphatex//properties/note/ac';\nimport { acc } from '@coderline/alphatab-alphatex//properties/note/acc';\nimport { ah } from '@coderline/alphatab-alphatex//properties/note/ah';\nimport { b } from '@coderline/alphatab-alphatex//properties/note/b';\nimport { be } from '@coderline/alphatab-alphatex//properties/note/be';\nimport { fh } from '@coderline/alphatab-alphatex//properties/note/fh';\nimport { g } from '@coderline/alphatab-alphatex//properties/note/g';\nimport { h } from '@coderline/alphatab-alphatex//properties/note/h';\nimport { hac } from '@coderline/alphatab-alphatex//properties/note/hac';\nimport { hide } from '@coderline/alphatab-alphatex//properties/note/hide';\nimport { iturn } from '@coderline/alphatab-alphatex//properties/note/iturn';\nimport { lf } from '@coderline/alphatab-alphatex//properties/note/lf';\nimport { lht } from '@coderline/alphatab-alphatex//properties/note/lht';\nimport { lmordent } from '@coderline/alphatab-alphatex//properties/note/lmordent';\nimport { lr } from '@coderline/alphatab-alphatex//properties/note/lr';\nimport { nh } from '@coderline/alphatab-alphatex//properties/note/nh';\nimport { ph } from '@coderline/alphatab-alphatex//properties/note/ph';\nimport { pm } from '@coderline/alphatab-alphatex//properties/note/pm';\nimport { psd } from '@coderline/alphatab-alphatex//properties/note/psd';\nimport { psu } from '@coderline/alphatab-alphatex//properties/note/psu';\nimport { rf } from '@coderline/alphatab-alphatex//properties/note/rf';\nimport { sh } from '@coderline/alphatab-alphatex//properties/note/sh';\nimport { sia } from '@coderline/alphatab-alphatex//properties/note/sia';\nimport { sib } from '@coderline/alphatab-alphatex//properties/note/sib';\nimport { sl } from '@coderline/alphatab-alphatex//properties/note/sl';\nimport { slur } from '@coderline/alphatab-alphatex//properties/note/slur';\nimport { sod } from '@coderline/alphatab-alphatex//properties/note/sod';\nimport { sou } from '@coderline/alphatab-alphatex//properties/note/sou';\nimport { ss } from '@coderline/alphatab-alphatex//properties/note/ss';\nimport { st } from '@coderline/alphatab-alphatex//properties/note/st';\nimport { string } from '@coderline/alphatab-alphatex//properties/note/string';\nimport { tiedNoteDash, t } from '@coderline/alphatab-alphatex//properties/note/t';\nimport { ten } from '@coderline/alphatab-alphatex//properties/note/ten';\nimport { th } from '@coderline/alphatab-alphatex//properties/note/th';\nimport { tr } from '@coderline/alphatab-alphatex//properties/note/tr';\nimport { turn } from '@coderline/alphatab-alphatex//properties/note/turn';\nimport { umordent } from '@coderline/alphatab-alphatex//properties/note/umordent';\nimport { noteVibrato } from '@coderline/alphatab-alphatex//properties/note/v';\nimport { noteVibratoWide } from '@coderline/alphatab-alphatex//properties/note/vw';\nimport { x } from '@coderline/alphatab-alphatex//properties/note/x';\nimport { metadata, properties } from '@coderline/alphatab-alphatex/common';\nimport { db } from '@coderline/alphatab-alphatex/metadata/bar/db';\nimport { voiceMode } from '@coderline/alphatab-alphatex/metadata/bar/voiceMode';\nimport { defaultBarNumberDisplay } from '@coderline/alphatab-alphatex/metadata/score/defaultbarnumberdisplay';\nimport { chordDiagramsInScore } from '@coderline/alphatab-alphatex/metadata/score/chordDiagramsInScore';\nimport { extendBarLines } from '@coderline/alphatab-alphatex/metadata/score/extendbarlines';\nimport { hideEmptyStaves } from '@coderline/alphatab-alphatex/metadata/score/hideemptystaves';\nimport { hideEmptyStavesInFirstSystem } from '@coderline/alphatab-alphatex/metadata/score/hideemptystavesinfirstsystem';\nimport { showSingleStaffBrackets } from '@coderline/alphatab-alphatex/metadata/score/showsinglestaffbrackets';\nimport { instrumentMeta } from '@coderline/alphatab-alphatex/metadata/staff/instrument';\nimport type { AlphaTexExample, WithDescription, WithSignatures } from '@coderline/alphatab-alphatex/types';\nimport { barNumberDisplay } from '@coderline/alphatab-alphatex/metadata/bar/barnumberdisplay';\nimport { beaming } from '@coderline/alphatab-alphatex/metadata/bar/beamingRule';\n\nexport const structuralMetaData = metadata(track, staff, voice);\nexport const scoreMetaData = metadata(\n    title,\n    subtitle,\n    artist,\n    album,\n    words,\n    music,\n    wordsAndMusic,\n    copyright,\n    copyright2,\n    instructions,\n    notices,\n    tab,\n    systemsLayout,\n    defaultSystemsLayout,\n    showDynamics,\n    hideDynamics,\n    useSystemSignSeparator,\n    multiBarRest,\n    bracketExtendMode,\n    singleTrackTrackNamePolicy,\n    multiTrackTrackNamePolicy,\n    firstSystemTrackNameMode,\n    otherSystemsTrackNameMode,\n    firstSystemTrackNameOrientation,\n    otherSystemsTrackNameOrientation,\n    extendBarLines,\n    chordDiagramsInScore,\n    hideEmptyStaves,\n    hideEmptyStavesInFirstSystem,\n    showSingleStaffBrackets,\n    defaultBarNumberDisplay\n);\n\nexport const staffMetaData = metadata(\n    tuning,\n    chord,\n    capo,\n    lyrics,\n    articulation,\n    displayTranspose,\n    transpose,\n    instrumentMeta\n);\n\nexport const barMetaData = metadata(\n    ts,\n    ro,\n    rc,\n    ae,\n    ks,\n    clef,\n    ottava,\n    tempo,\n    tf,\n    ac,\n    section,\n    jump,\n    ft,\n    simile,\n    barlineLeft,\n    barlineRight,\n    scale,\n    width,\n    sync,\n    accidentals,\n    spd,\n    sph,\n    spu,\n    db,\n    voiceMode,\n    barNumberDisplay,\n    beaming\n);\n\nexport const allMetadata = new Map([\n    ...structuralMetaData.entries(),\n    ...scoreMetaData.entries(),\n    ...staffMetaData.entries(),\n    ...barMetaData.entries()\n]);\n\nexport const durationChangeProperties = properties(tu);\n\nexport const beatProperties = properties(\n    f,\n    fo,\n    vs,\n    v,\n    vw,\n    s,\n    p,\n    tt,\n    d,\n    dd,\n    su,\n    sd,\n    cre,\n    dec,\n    beatSpd,\n    beatSph,\n    beatSpu,\n    beatSpe,\n    slashed,\n    ds,\n    glpf,\n    glpt,\n    waho,\n    wahc,\n    legatoOrigin,\n    timer,\n    tu,\n    txt,\n    beatLyrics,\n    tb,\n    tbe,\n    bu,\n    bd,\n    au,\n    ad,\n    ch,\n    gr,\n    dy,\n    beatTempo,\n    volume,\n    balance,\n    tp,\n    barre,\n    rasg,\n    ot,\n    instrument,\n    bank,\n    fermata,\n    beam\n);\n\nexport const noteProperties = properties(\n    nh,\n    ah,\n    th,\n    ph,\n    sh,\n    fh,\n    noteVibrato,\n    noteVibratoWide,\n    sl,\n    ss,\n    sib,\n    sia,\n    sou,\n    sod,\n    psu,\n    psd,\n    h,\n    lht,\n    g,\n    noteAccentuation,\n    hac,\n    ten,\n    tr,\n    pm,\n    st,\n    lr,\n    x,\n    t,\n    turn,\n    iturn,\n    umordent,\n    lmordent,\n    string,\n    hide,\n    b,\n    be,\n    lf,\n    rf,\n    acc,\n    slur,\n    tiedNoteDash\n);\n\nconst spaces = /^([ ]+)/;\n\nfunction trimIdention(txt: string) {\n    const lines = txt.split('\\n');\n    const firstLineWithContent = lines.findIndex(l => l.trim() !== '');\n    if (firstLineWithContent === -1) {\n        return txt;\n    }\n    lines.splice(0, firstLineWithContent);\n\n    const space = spaces.exec(lines[0]);\n    if (space) {\n        const trimmed = lines.map(l => l.substring(space[0].length));\n        return trimmed.join('\\n');\n    }\n    return lines.join('\\n');\n}\n\nfunction prepareDescription(item: WithDescription) {\n    const txt = item.longDescription;\n    if (txt === undefined) {\n        return;\n    }\n\n    const lines = txt.split('\\n');\n    if (lines[0].trim() === '') {\n        lines.splice(0, 1);\n    }\n\n    const space = spaces.exec(lines[0]);\n    if (space) {\n        const trimmed = lines.map(l => l.substring(space[0].length));\n        item.longDescription = trimmed.join('\\n');\n        if (!item.shortDescription) {\n            item.shortDescription = trimmed[0].substring(0, 100);\n        }\n    } else if (!item.shortDescription) {\n        item.shortDescription = lines[0].substring(0, 100);\n    }\n}\n\nfunction prepareExample(d: AlphaTexExample) {\n    if (typeof d === 'string') {\n        return trimIdention(d);\n    } else {\n        d.tex = trimIdention(d.tex);\n        return d;\n    }\n}\nfunction prepareWithSignatures(d: WithSignatures) {\n    prepareDescription(d);\n    for (const s of d.signatures) {\n        for (const p of s.parameters) {\n            prepareDescription(p);\n        }\n    }\n\n    if (Array.isArray(d.examples)) {\n        for (const [i, e] of d.examples.entries()) {\n            d.examples[i] = prepareExample(e);\n        }\n    } else {\n        d.examples = prepareExample(d.examples);\n    }\n}\n\nfor (const d of allMetadata.values()) {\n    prepareWithSignatures(d);\n    if (d.properties) {\n        for (const p of d.properties.values()) {\n            prepareWithSignatures(p);\n        }\n    }\n}\n\nfor (const d of beatProperties.values()) {\n    prepareWithSignatures(d);\n}\n\nfor (const d of noteProperties.values()) {\n    prepareWithSignatures(d);\n}\n","import * as alphaTab from '@coderline/alphatab';\nimport type { ParameterDefinition, SignatureDefinition } from '@coderline/alphatab-alphatex/types';\nimport type { ClientCapabilities } from 'vscode-languageserver';\n\nfunction binaryNodeSearchInner<T extends alphaTab.importer.alphaTex.AlphaTexAstNode>(\n    items: T[],\n    offset: number,\n    left: number = 0,\n    right: number = items.length,\n    trailingEnd: number\n) {\n    if (left > right) {\n        return undefined;\n    }\n\n    const center = Math.trunc((left + right) / 2);\n    const centerItem = items[center];\n\n    // match\n    const end = center === items.length - 1 ? trailingEnd : items[center + 1].start!.offset;\n    if (centerItem.start!.offset <= offset && offset <= end) {\n        return centerItem;\n    }\n\n    // left half\n    if (offset < centerItem.start!.offset) {\n        return binaryNodeSearchInner(items, offset, left, center, trailingEnd);\n    }\n\n    // right half\n    return binaryNodeSearchInner(items, offset, center, right, trailingEnd);\n}\n\nexport function binaryNodeSearch<T extends alphaTab.importer.alphaTex.AlphaTexAstNode>(\n    items: T[],\n    offset: number,\n    trailingEnd: number = items.length > 0 ? items[items.length - 1].end!.offset : 0\n) {\n    // no items\n    if (items.length === 0) {\n        return undefined;\n    }\n\n    // not in range\n    const rangeStart = items[0].start!.offset;\n    const rangeEnd = trailingEnd;\n    if (offset < rangeStart || offset > rangeEnd) {\n        return undefined;\n    }\n\n    return binaryNodeSearchInner(items, offset, 0, items.length, trailingEnd);\n}\n\nexport function resolveSignature(\n    signatures: SignatureDefinition[],\n    args: alphaTab.importer.alphaTex.AlphaTexArgumentList\n): Map<number, SignatureDefinition> {\n    const resolved = new Map<number, SignatureDefinition>();\n\n    if (args.signatureCandidateIndices !== undefined) {\n        for (const i of args.signatureCandidateIndices) {\n            resolved.set(i, signatures[i]);\n        }\n    }\n\n    return resolved;\n}\n\nexport function parameterToSyntax(parameter: ParameterDefinition, onlyParameterNames: boolean) {\n    let p: string = parameter.name;\n    if (!onlyParameterNames) {\n        switch (parameter.parseMode) {\n            case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Optional:\n            case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.OptionalAsFloat:\n                p += '?';\n                break;\n        }\n        p += `: ${nodeTypesToTypeDocs(parameter)}`;\n\n        if (parameter.defaultValue) {\n            p += ` = ${parameter.defaultValue}`;\n        }\n    }\n\n    return p;\n}\n\nexport function nodeTypesToTypeDocs(parameter: ParameterDefinition) {\n    const typeArray = Array.isArray(parameter.type) ? parameter.type : [parameter.type];\n    let p: string = '';\n    if (parameter.values && !parameter.valuesOnlyForCompletion && parameter.values.length < 5) {\n        const valueArray = parameter.values.map(v => v.name);\n        switch (typeArray[0]) {\n            case alphaTab.importer.alphaTex.AlphaTexNodeType.String:\n                p = valueArray.map(v => `\"${v}\"`).join('|');\n                break;\n            default:\n                p = valueArray.join('|');\n                break;\n        }\n    } else {\n        p = typeArray.map(t => alphaTab.importer.alphaTex.AlphaTexNodeType[t]).join('|');\n    }\n\n    switch (parameter.parseMode) {\n        case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList:\n        case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.ValueListWithoutParenthesis:\n            p += '[]';\n    }\n\n    return p;\n}\n\nexport type ConnectionInfo = {\n    clientCapabilities?: ClientCapabilities;\n};\n","import * as alphaTab from '@coderline/alphatab';\nimport {\n    allMetadata,\n    barMetaData,\n    beatProperties,\n    durationChangeProperties,\n    noteProperties,\n    scoreMetaData,\n    staffMetaData,\n    structuralMetaData\n} from '@coderline/alphatab-alphatex/definitions';\nimport type {\n    MetadataTagDefinition,\n    ParameterValueDefinition,\n    PropertyDefinition,\n    SignatureDefinition\n} from '@coderline/alphatab-alphatex/types';\nimport type { AlphaTexTextDocument, Connection } from '@coderline/alphatab-language-server/server/types';\nimport {\n    type CompletionItem,\n    CompletionItemKind,\n    InsertTextFormat,\n    type RemoteConsole,\n    type TextDocumentPositionParams,\n    type TextDocuments,\n    TextEdit\n} from '@coderline/alphatab-language-server/server/types';\nimport { binaryNodeSearch, resolveSignature } from '@coderline/alphatab-language-server/server/utils';\n\ninterface MetaDataCompletionData {\n    tagLowerCase: string;\n    tag: string;\n}\n\ninterface CompletionItemWithData<T> extends CompletionItem {\n    data: T;\n}\n\nconst topLevelCompletions = [\n    ...createMetaDataDocCompletions(structuralMetaData),\n    ...createMetaDataDocCompletions(staffMetaData),\n    ...createMetaDataDocCompletions(scoreMetaData),\n    ...createMetaDataDocCompletions(barMetaData)\n];\n\nexport function setupCompletion(connection: Connection, documents: TextDocuments<AlphaTexTextDocument>) {\n    connection.onCompletion((params: TextDocumentPositionParams): CompletionItem[] => {\n        const document = documents.get(params.textDocument.uri);\n        if (!document?.ast) {\n            return topLevelCompletions;\n        }\n\n        const offset = document.offsetAt(params.position);\n\n        const bar = binaryNodeSearch(document.ast.bars, offset, Number.MAX_SAFE_INTEGER);\n        const barIndex = bar ? document.ast.bars.indexOf(bar) : 0;\n\n        // no bar\n        if (!bar) {\n            return sortCompletions(\n                createMetaDataCompletions(barIndex, undefined, offset, Number.MAX_SAFE_INTEGER),\n                connection.console\n            );\n        }\n\n        const endOfBar =\n            bar.pipe?.start?.offset ??\n            (barIndex === document.ast.bars.length - 1\n                ? Number.MAX_SAFE_INTEGER\n                : document.ast.bars[barIndex + 1].start!.offset);\n\n        const endOfBarMetaData = bar.beats[0]?.start?.offset ?? endOfBar;\n        const metaData = bar ? binaryNodeSearch(bar.metaData, offset, endOfBarMetaData) : undefined;\n        if (metaData) {\n            const metaDataIndex = bar.metaData.indexOf(metaData);\n            const endOfMetaData =\n                metaDataIndex === bar.metaData.length - 1\n                    ? endOfBarMetaData\n                    : bar.metaData[metaDataIndex + 1].start!.offset;\n            return sortCompletions(\n                createMetaDataCompletions(barIndex, metaData, offset, endOfMetaData),\n                connection.console\n            );\n        }\n\n        const beat = binaryNodeSearch(bar.beats, offset, endOfBar);\n        if (beat) {\n            const beatIndex = bar.beats.indexOf(beat);\n            const endOfBeat = beatIndex === bar.beats.length - 1 ? endOfBar : bar.beats[beatIndex + 1].start!.offset;\n\n            return sortCompletions(createBeatCompletions(beat, offset, endOfBeat), connection.console);\n        }\n\n        return sortCompletions(\n            createMetaDataCompletions(barIndex, undefined, offset, Number.MAX_SAFE_INTEGER),\n            connection.console\n        );\n    });\n\n    connection.onCompletionResolve((item: CompletionItem): CompletionItem => {\n        return item;\n    });\n}\n\nfunction sortCompletions(completions: CompletionItem[], console: RemoteConsole): CompletionItem[] {\n    let i = 'a'.charCodeAt(0);\n    for (const c of completions) {\n        c.sortText = `${String.fromCharCode(i++)}`;\n    }\n    console.debug(`Provide completions: ${JSON.stringify(completions)}`);\n    return completions;\n}\n\nconst durations: [string, alphaTab.model.Duration][] = [\n    ['Whole Note', alphaTab.model.Duration.Whole],\n    ['Half Note', alphaTab.model.Duration.Half],\n    ['Quarter Note', alphaTab.model.Duration.Quarter],\n    ['8th Note', alphaTab.model.Duration.Eighth],\n    ['16th Note', alphaTab.model.Duration.Sixteenth],\n    ['32nd Note', alphaTab.model.Duration.ThirtySecond],\n    ['64th Note', alphaTab.model.Duration.SixtyFourth],\n    ['128th Note', alphaTab.model.Duration.OneHundredTwentyEighth],\n    ['256th Note', alphaTab.model.Duration.TwoHundredFiftySixth],\n    ['Quadruple Whole Note', alphaTab.model.Duration.QuadrupleWhole],\n    ['Double Whole Note', alphaTab.model.Duration.DoubleWhole]\n];\n\nconst durationCompletionItems = durations.map(\n    d =>\n        ({\n            label: `${d[1] as number}`,\n            labelDetails: {\n                description: d[0]\n            },\n            kind: CompletionItemKind.Value,\n            insertText: `${d[1] as number} `,\n            insertTextFormat: InsertTextFormat.Snippet\n        }) satisfies CompletionItem\n);\n\nfunction createBeatCompletions(\n    beat: alphaTab.importer.alphaTex.AlphaTexBeatNode,\n    offset: number,\n    endOfBeat: number\n): CompletionItem[] {\n    const completions: CompletionItem[] = [];\n\n    if (\n        beat.durationChange &&\n        beat.durationChange.start!.offset < offset &&\n        offset <= beat.durationChange!.end!.offset\n    ) {\n        const endOfDurationChange = beat.notes?.start?.offset ?? endOfBeat;\n        return createDurationChangeCompletions(beat.durationChange, offset, endOfDurationChange);\n    }\n\n    if (beat.notes && beat.notes.start!.offset < offset && offset <= beat.notes.end!.offset) {\n        const endOfNotes =\n            beat.notes?.closeParenthesis?.start?.offset ??\n            beat.durationDot?.start?.offset ??\n            beat.beatEffects?.start?.offset ??\n            beat.beatMultiplier?.start?.offset ??\n            endOfBeat;\n        const note = binaryNodeSearch(beat.notes.notes, offset, endOfNotes);\n        if (note) {\n            const noteIndex = beat.notes.notes.indexOf(note);\n            const endOfNote =\n                noteIndex === beat.notes.notes.length - 1 ? endOfNotes : beat.notes.notes[noteIndex + 1].start!.offset;\n            return createNoteCompletions(beat, note, offset, endOfNote);\n        }\n    }\n\n    const afterDuration = beat.beatMultiplier?.start?.offset ?? beat.beatEffects?.start?.offset ?? beat.end!.offset;\n\n    if (beat.durationDot && beat.durationDot.start!.offset < offset && (offset <= afterDuration || !beat.beatEffects)) {\n        const replacement: TextEdit[] | undefined = beat.durationValue\n            ? [\n                  TextEdit.del({\n                      start: {\n                          line: beat.durationDot.end!.line - 1,\n                          character: beat.durationDot.end!.col - 1\n                      },\n                      end: {\n                          line: beat.durationValue!.end!.line - 1,\n                          character: beat.durationValue!.end!.col - 1\n                      }\n                  })\n              ]\n            : undefined;\n\n        completions.push(\n            ...durationCompletionItems.map(\n                d =>\n                    ({\n                        ...d,\n                        additionalTextEdits: replacement\n                    }) satisfies CompletionItem\n            )\n        );\n    }\n\n    if (beat.beatEffects && beat.beatEffects.start!.offset < offset && beat.beatEffects.end!.offset) {\n        const endOfProperties =\n            beat.beatEffects?.closeBrace?.start?.offset ?? beat.beatMultiplier?.start?.offset ?? endOfBeat;\n        completions.splice(\n            0,\n            0,\n            ...createPropertiesCompletions(beat.beatEffects, offset, beatProperties, endOfProperties)\n        );\n    }\n\n    return completions;\n}\n\nfunction createDurationChangeCompletions(\n    durationChange: alphaTab.importer.alphaTex.AlphaTexBeatDurationChangeNode,\n    offset: number,\n    endOfDurationChange: number\n): CompletionItem[] {\n    const completions: CompletionItem[] = [];\n\n    if (!durationChange.properties || offset < durationChange.properties.start!.offset) {\n        const endOfValue = durationChange.properties?.start ?? durationChange.end!;\n        const replacement: TextEdit[] | undefined = durationChange.properties\n            ? [\n                  TextEdit.del({\n                      start: {\n                          line: durationChange.colon.start!.line - 1,\n                          character: durationChange.colon.start!.col - 1\n                      },\n                      end: {\n                          line: endOfValue.line - 1,\n                          character: endOfValue.col - 1\n                      }\n                  })\n              ]\n            : undefined;\n\n        completions.push(\n            ...durationCompletionItems.map(d => ({\n                ...d,\n                additionalTextEdits: replacement\n            }))\n        );\n    } else if (\n        durationChange.properties &&\n        durationChange.properties.start!.offset < offset &&\n        durationChange.properties.end!.offset\n    ) {\n        const endOfProperties = durationChange.properties?.closeBrace?.start?.offset ?? endOfDurationChange;\n        completions.push(\n            ...createPropertiesCompletions(durationChange.properties, offset, durationChangeProperties, endOfProperties)\n        );\n    }\n\n    return completions;\n}\n\nfunction createNoteCompletions(\n    beat: alphaTab.importer.alphaTex.AlphaTexBeatNode,\n    note: alphaTab.importer.alphaTex.AlphaTexNoteNode,\n    offset: number,\n    endOfNote: number\n): CompletionItem[] {\n    const completions: CompletionItem[] = [];\n    if (note.noteEffects && note.noteEffects.start!.offset < offset && note.noteEffects.end!.offset) {\n        const endOfProperties = note.noteEffects.closeBrace?.start?.offset ?? endOfNote;\n\n        if (beat.notes!.notes.length === 1) {\n            completions.splice(\n                0,\n                0,\n                ...createPropertiesCompletions(note.noteEffects, offset, beatProperties, endOfProperties)\n            );\n        }\n\n        completions.splice(\n            0,\n            0,\n            ...createPropertiesCompletions(note.noteEffects, offset, noteProperties, endOfProperties)\n        );\n    }\n    return completions;\n}\n\nfunction propertyToCompletion(p: PropertyDefinition, more?: Partial<CompletionItem>): CompletionItem {\n    return {\n        label: p.property,\n        kind: CompletionItemKind.Property,\n        insertText: p.snippet,\n        labelDetails: p.shortDescription\n            ? {\n                  description: p.shortDescription\n              }\n            : undefined,\n        documentation: p.longDescription\n            ? {\n                  kind: 'markdown',\n                  value: p.longDescription\n              }\n            : undefined,\n        insertTextFormat: InsertTextFormat.Snippet,\n        ...more\n    };\n}\nfunction valueItemToCompletion(i: ParameterValueDefinition, more?: Partial<CompletionItem>): CompletionItem {\n    return {\n        label: i.name,\n        kind: CompletionItemKind.Value,\n        labelDetails: i.shortDescription\n            ? {\n                  description: i.shortDescription\n              }\n            : undefined,\n        documentation: i.longDescription\n            ? {\n                  kind: 'markdown',\n                  value: i.longDescription\n              }\n            : undefined,\n        insertText: i.snippet,\n        insertTextFormat: InsertTextFormat.Snippet,\n        ...more\n    };\n}\n\nfunction metaDataDocToCompletion(d: MetadataTagDefinition): CompletionItemWithData<MetaDataCompletionData> {\n    return {\n        label: d.tag,\n        kind: CompletionItemKind.Function,\n        labelDetails: d.shortDescription\n            ? {\n                  description: d.shortDescription\n              }\n            : undefined,\n        documentation: d.longDescription\n            ? {\n                  kind: 'markdown',\n                  value: d.longDescription\n              }\n            : undefined,\n        insertText: d.snippet,\n        insertTextFormat: InsertTextFormat.Snippet,\n        data: {\n            tag: d.tag.substring(1), // cut off backslash\n            tagLowerCase: d.tag.substring(1).toLowerCase()\n        }\n    };\n}\n\nfunction createMetaDataCompletions(\n    barIndex: number,\n    metaData: alphaTab.importer.alphaTex.AlphaTexMetaDataNode | undefined,\n    offset: number,\n    endOfMetaData: number\n) {\n    let completions: CompletionItem[] = [];\n    const tagCompletion = !metaData || (metaData.tag.start!.offset <= offset && offset <= metaData.tag.end!.offset);\n    if (tagCompletion) {\n        if (barIndex === 0) {\n            completions.push(...topLevelCompletions);\n        } else {\n            completions.push(\n                ...createMetaDataDocCompletions(structuralMetaData),\n                ...createMetaDataDocCompletions(barMetaData)\n            );\n        }\n\n        if (metaData) {\n            const keepValues = metaData.arguments || metaData.properties;\n            completions = completions.map(c => ({\n                ...c,\n                insertText: keepValues ? c.label : c.insertText,\n                additionalTextEdits: [\n                    TextEdit.del({\n                        start: {\n                            line: metaData.tag.start!.line - 1,\n                            character: metaData.tag.start!.col - 1\n                        },\n                        end: {\n                            line: metaData.tag.end!.line - 1,\n                            character: metaData.tag.end!.col - 1\n                        }\n                    })\n                ]\n            }));\n        }\n\n        return completions;\n    } else if (offset >= metaData.end!.offset) {\n        if (barIndex === 0) {\n            completions.push(...topLevelCompletions);\n        } else {\n            completions.push(\n                ...createMetaDataDocCompletions(structuralMetaData),\n                ...createMetaDataDocCompletions(barMetaData)\n            );\n        }\n    }\n\n    const metaDataDocs = allMetadata.get(`\\\\${metaData.tag.tag.text.toLowerCase()}`);\n    if (!metaDataDocs) {\n        return completions;\n    }\n\n    const endOfArguments =\n        metaData.arguments?.closeParenthesis?.start?.offset ??\n        metaData.arguments?.end?.offset ??\n        metaData.properties?.start?.offset ??\n        endOfMetaData;\n    completions.splice(\n        0,\n        0,\n        ...createArgumentCompletions(metaDataDocs.signatures, metaData.arguments, offset, endOfArguments)\n    );\n\n    if (metaDataDocs?.properties) {\n        const endOfProperties = metaData.properties?.closeBrace?.start?.offset ?? endOfMetaData;\n        completions.splice(\n            0,\n            0,\n            ...createPropertiesCompletions(metaData.properties, offset, metaDataDocs.properties, endOfProperties)\n        );\n    }\n\n    return completions;\n}\n\nfunction createArgumentCompletions(\n    signatures: SignatureDefinition[],\n    actualValues: alphaTab.importer.alphaTex.AlphaTexArgumentList | undefined,\n    offset: number,\n    trailingEnd: number\n) {\n    if (actualValues) {\n        const value = binaryNodeSearch(actualValues.arguments, offset, trailingEnd);\n        if (value?.parameterIndices) {\n            const isNextParameter = offset > value.end!.offset;\n\n            const signatureCandidates = resolveSignature(signatures, actualValues);\n            for (const [k, v] of signatureCandidates) {\n                let parameterIndex = value.parameterIndices.get(k);\n                if (parameterIndex !== undefined && isNextParameter && parameterIndex < v.parameters.length - 1) {\n                    parameterIndex++;\n                }\n\n                const values = parameterIndex !== undefined ? v.parameters[parameterIndex].values : undefined;\n                if (values) {\n                    return values.map(i =>\n                        valueItemToCompletion(i, {\n                            additionalTextEdits: [\n                                TextEdit.del({\n                                    start: {\n                                        line: value.start!.line - 1,\n                                        character: value.start!.col - 1\n                                    },\n                                    end: {\n                                        line: value.end!.line - 1,\n                                        character: value.end!.col - 1\n                                    }\n                                })\n                            ]\n                        })\n                    );\n                }\n            }\n        }\n    } else {\n        const firstParameterValues = signatures.flatMap(s =>\n            s.parameters.length > 0 ? (s.parameters[0].values ?? []) : []\n        );\n        return firstParameterValues.map(i => valueItemToCompletion(i));\n    }\n\n    return [];\n}\n\nfunction createMetaDataDocCompletions(\n    metaData: Map<string, MetadataTagDefinition>\n): CompletionItemWithData<MetaDataCompletionData>[] {\n    return Array.from(metaData.values()).map(metaDataDocToCompletion);\n}\n\nfunction createPropertiesCompletions(\n    properties: alphaTab.importer.alphaTex.AlphaTexPropertiesNode | undefined,\n    offset: number,\n    availableProperties: Map<string, PropertyDefinition>,\n    endOfProperties: number\n): CompletionItem[] {\n    if (!properties) {\n        return [];\n    }\n\n    const end = properties.closeBrace?.start?.offset ?? properties.end!.offset;\n    if (offset < properties.openBrace!.start!.offset || offset > end) {\n        return [];\n    }\n\n    const allPropCompletions: CompletionItem[] = Array.from(availableProperties.values()).map(p =>\n        propertyToCompletion(p)\n    );\n\n    const prop = properties ? binaryNodeSearch(properties.properties, offset, endOfProperties) : undefined;\n    if (prop) {\n        const propIndex = properties.properties.indexOf(prop);\n        const endOfProp =\n            propIndex === properties.properties.length - 1\n                ? endOfProperties\n                : properties.properties[propIndex + 1].start!.offset;\n        return createPropertyCompletions(prop, offset, availableProperties, allPropCompletions, endOfProp);\n    }\n\n    return allPropCompletions;\n}\n\nfunction createPropertyCompletions(\n    property: alphaTab.importer.alphaTex.AlphaTexPropertyNode,\n    offset: number,\n    availableProperties: Map<string, PropertyDefinition>,\n    allPropCompletions: CompletionItem[],\n    endOfProperty: number\n) {\n    const completions: CompletionItem[] = [];\n    const propCompletion =\n        !property || (property.property.start!.offset <= offset && offset <= property.property.end!.offset);\n    if (propCompletion) {\n        completions.push(\n            ...allPropCompletions.map(c => ({\n                ...c,\n                additionalTextEdits: [\n                    TextEdit.del({\n                        start: {\n                            line: property.property.start!.line - 1,\n                            character: property.property.start!.col - 1\n                        },\n                        end: {\n                            line: property.property.end!.line - 1,\n                            character: property.property.end!.col - 1\n                        }\n                    })\n                ]\n            }))\n        );\n        return completions;\n    } else if (offset >= property.end!.offset) {\n        completions.push(...allPropCompletions);\n    }\n\n    const propDocs = availableProperties.get(property.property.text.toLowerCase());\n    if (!propDocs) {\n        return completions;\n    }\n\n    completions.splice(\n        0,\n        0,\n        ...createArgumentCompletions(propDocs.signatures, property.arguments, offset, endOfProperty)\n    );\n\n    return completions;\n}\n","import * as alphaTab from '@coderline/alphatab';\nimport {\n    type AlphaTexTextDocument,\n    type Connection,\n    type Diagnostic,\n    DiagnosticSeverity,\n    type DocumentDiagnosticReport,\n    DocumentDiagnosticReportKind,\n    type TextDocuments,\n    uinteger\n} from '@coderline/alphatab-language-server/server/types';\n\nexport function setupDiagnostics(connection: Connection, documents: TextDocuments<AlphaTexTextDocument>) {\n    connection.languages.diagnostics.on(async params => {\n        const document = documents.get(params.textDocument.uri);\n        if (document !== undefined) {\n            return {\n                kind: DocumentDiagnosticReportKind.Full,\n                items: await validateTextDocument(document)\n            } satisfies DocumentDiagnosticReport;\n        } else {\n            return {\n                kind: DocumentDiagnosticReportKind.Full,\n                items: []\n            } satisfies DocumentDiagnosticReport;\n        }\n    });\n\n    documents.onDidChangeContent(async change => {\n        await validateTextDocument(change.document);\n    });\n}\n\nfunction mapDiagnostics(atDiag: Iterable<alphaTab.importer.alphaTex.AlphaTexDiagnostic>): Diagnostic[] {\n    const diagnostics: Diagnostic[] = [];\n    for (const d of atDiag) {\n        const diagnostic: Diagnostic = {\n            severity: DiagnosticSeverity.Warning,\n            range: {\n                start: {\n                    line: d.start!.line - 1,\n                    character: d.start!.col - 1\n                },\n                end: {\n                    line: d.end!.line - 1,\n                    character: d.end!.col - 1\n                }\n            },\n            message: d.message,\n            code: `AT${d.code}`,\n            source: 'alphaTab'\n        };\n        switch (d.severity) {\n            case alphaTab.importer.alphaTex.AlphaTexDiagnosticsSeverity.Hint:\n                diagnostic.severity = DiagnosticSeverity.Hint;\n                break;\n            case alphaTab.importer.alphaTex.AlphaTexDiagnosticsSeverity.Warning:\n                diagnostic.severity = DiagnosticSeverity.Warning;\n                break;\n            case alphaTab.importer.alphaTex.AlphaTexDiagnosticsSeverity.Error:\n                diagnostic.severity = DiagnosticSeverity.Error;\n                break;\n        }\n        diagnostics.push(diagnostic);\n    }\n    return diagnostics;\n}\nfunction handleError(e: Error): Diagnostic[] {\n    let atError: alphaTab.importer.AlphaTexErrorWithDiagnostics | undefined;\n    if (e instanceof alphaTab.importer.AlphaTexErrorWithDiagnostics) {\n        atError = e;\n    } else if (\n        e instanceof alphaTab.importer.UnsupportedFormatError &&\n        e.cause instanceof alphaTab.importer.AlphaTexErrorWithDiagnostics\n    ) {\n        atError = e.cause;\n    }\n\n    if (atError) {\n        return mapDiagnostics(atError.iterateDiagnostics());\n    } else {\n        return [\n            {\n                severity: DiagnosticSeverity.Warning,\n                range: {\n                    start: {\n                        line: 0,\n                        character: 0\n                    },\n                    end: {\n                        line: 0,\n                        character: uinteger.MAX_VALUE\n                    }\n                },\n                message: `Unexpected error parsing alphaTex: ${e.message}`,\n                source: 'alphaTab'\n            }\n        ];\n    }\n}\n\nasync function validateTextDocument(textDocument: AlphaTexTextDocument): Promise<Diagnostic[]> {\n    const diagnostics: Diagnostic[] = [];\n    const text = textDocument.getText();\n\n    const importer = new alphaTab.importer.AlphaTexImporter();\n    importer.initFromString(text, new alphaTab.Settings());\n    importer.parser!.mode = alphaTab.importer.alphaTex.AlphaTexParseMode.Full;\n    try {\n        textDocument.score = importer.readScore();\n        textDocument.ast = importer.scoreNode;\n        diagnostics.push(...mapDiagnostics(importer.lexerDiagnostics));\n        diagnostics.push(...mapDiagnostics(importer.parserDiagnostics));\n        diagnostics.push(...mapDiagnostics(importer.semanticDiagnostics));\n    } catch (e) {\n        textDocument.score = undefined;\n        textDocument.ast = importer.scoreNode;\n\n        diagnostics.push(...handleError(e as Error));\n    }\n    return diagnostics;\n}\n","import * as alphaTab from '@coderline/alphatab';\nimport {\n    allMetadata,\n    beatProperties,\n    durationChangeProperties,\n    noteProperties\n} from '@coderline/alphatab-alphatex/definitions';\nimport type {\n    ParameterValueDefinition,\n    PropertyDefinition,\n    SignatureDefinition,\n    WithSignatures\n} from '@coderline/alphatab-alphatex/types';\nimport type {\n    AlphaTexTextDocument,\n    Connection,\n    Hover,\n    TextDocuments\n} from '@coderline/alphatab-language-server/server/types';\nimport {\n    binaryNodeSearch,\n    nodeTypesToTypeDocs as nodeTypesToSyntax,\n    parameterToSyntax,\n    resolveSignature\n} from '@coderline/alphatab-language-server/server/utils';\n\nexport function setupHover(connection: Connection, documents: TextDocuments<AlphaTexTextDocument>) {\n    connection.onHover(params => {\n        const document = documents.get(params.textDocument.uri);\n        if (!document?.ast) {\n            return null;\n        }\n\n        const offset = document.offsetAt(params.position);\n\n        // lookup bar at location\n        const bar = binaryNodeSearch(document.ast.bars, offset);\n        if (!bar) {\n            return null;\n        }\n\n        const metaData = binaryNodeSearch(bar.metaData, offset);\n        if (metaData) {\n            return createMetaDataHover(metaData, offset);\n        }\n\n        const beat = binaryNodeSearch(bar.beats, offset);\n        if (beat) {\n            return createBeatHover(beat, offset);\n        }\n\n        return null;\n    });\n}\n\nfunction createMetaDataHover(metaData: alphaTab.importer.alphaTex.AlphaTexMetaDataNode, offset: number): Hover | null {\n    const metaDataDocs = allMetadata.get(`\\\\${metaData.tag.tag.text.toLowerCase()}`);\n    if (!metaDataDocs) {\n        return null;\n    }\n\n    if (metaData.tag.start!.offset <= offset && offset <= metaData.tag.end!.offset) {\n        return {\n            contents: {\n                kind: 'markdown',\n                value: withSignaturesToMarkdown(metaDataDocs, metaDataDocs.tag, 'Tag Syntax')\n            }\n        };\n    }\n\n    if (metaData.arguments) {\n        const hover = createArgumentsHover(metaData.arguments, metaDataDocs.signatures, offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    if (metaData.properties && metaDataDocs.properties) {\n        const hover = createPropertiesHover(metaData.properties, metaDataDocs.properties, offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    return null;\n}\n\nfunction createBeatHover(beat: alphaTab.importer.alphaTex.AlphaTexBeatNode, offset: number): Hover | null {\n    if (beat.durationChange?.properties) {\n        const hover = createPropertiesHover(beat.durationChange.properties, durationChangeProperties, offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    if (beat.notes) {\n        const note = binaryNodeSearch(beat.notes.notes, offset);\n        if (note) {\n            return createNoteHover(note, offset);\n        }\n    }\n\n    if (beat.beatEffects) {\n        const hover = createPropertiesHover(beat.beatEffects, beatProperties, offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    return null;\n}\n\nfunction createNoteHover(note: alphaTab.importer.alphaTex.AlphaTexNoteNode, offset: number): Hover | null {\n    if (note?.noteEffects) {\n        const hover = createPropertiesHover(note.noteEffects, [noteProperties, beatProperties], offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    return null;\n}\n\nfunction createPropertiesHover(\n    properties: alphaTab.importer.alphaTex.AlphaTexPropertiesNode,\n    propertiesDocs: Map<string, PropertyDefinition> | Map<string, PropertyDefinition>[],\n    offset: number\n): Hover | null {\n    const prop = binaryNodeSearch(properties.properties, offset);\n    if (prop) {\n        let propDocs: PropertyDefinition | undefined;\n        if (Array.isArray(propertiesDocs)) {\n            for (const d of propertiesDocs) {\n                propDocs = d.get(prop.property.text.toLowerCase());\n                if (propDocs) {\n                    break;\n                }\n            }\n        } else {\n            propDocs = propertiesDocs.get(prop.property.text.toLowerCase());\n        }\n\n        if (propDocs) {\n            if (prop.property.start!.offset <= offset && offset <= prop.property.end!.offset) {\n                return {\n                    contents: {\n                        kind: 'markdown',\n                        value: withSignaturesToMarkdown(propDocs, propDocs.property)\n                    }\n                };\n            } else if (prop.arguments) {\n                const hover = createArgumentsHover(prop.arguments, propDocs.signatures, offset);\n                if (hover) {\n                    return hover;\n                }\n            }\n        }\n    }\n    return null;\n}\n\nfunction valueToText(value: alphaTab.importer.alphaTex.IAlphaTexArgumentValue): string {\n    switch (value.nodeType) {\n        case alphaTab.importer.alphaTex.AlphaTexNodeType.Ident:\n        case alphaTab.importer.alphaTex.AlphaTexNodeType.String:\n            return (value as alphaTab.importer.alphaTex.AlphaTexTextNode).text;\n        case alphaTab.importer.alphaTex.AlphaTexNodeType.Number:\n            return (value as alphaTab.importer.alphaTex.AlphaTexNumberLiteral).value.toString();\n    }\n\n    return '';\n}\n\nfunction createArgumentsHover(\n    values: alphaTab.importer.alphaTex.AlphaTexArgumentList,\n    signatures: SignatureDefinition[],\n    offset: number\n): Hover | null {\n    const value = binaryNodeSearch(values.arguments, offset);\n    if (value) {\n        const valueIndex = values.arguments.indexOf(value);\n        const signature = resolveSignature(signatures, values).values().next().value;\n        if (signature && valueIndex < signature.parameters.length) {\n            const parameterDoc = signature.parameters[valueIndex];\n            const valueText = valueToText(value).toLowerCase();\n            const valueItem = parameterDoc.values?.find(d => d.name.toLowerCase() === valueText);\n            if (valueItem) {\n                return {\n                    contents: {\n                        kind: 'markdown',\n                        value: parameterValueDocsToMarkDown(valueItem)\n                    }\n                };\n            }\n        }\n    }\n    return null;\n}\n\nfunction withSignaturesToMarkdown(docs: WithSignatures, prefix: string, syntaxName: string = 'Syntax'): string {\n    return [\n        `## ${docs.shortDescription}`,\n        docs.longDescription ? `**Description:** ${docs.longDescription}` : '',\n        '',\n        `**${syntaxName}:**`,\n        '```alphatex',\n        ...docs.signatures.map((s, i) => signatureToSyntax(prefix, s, i, docs.signatures.length > 1)),\n        '```',\n        '',\n        signatureParametersToMarkdownTable(docs.signatures)\n    ].join('\\n');\n}\n\nfunction signatureParametersToMarkdownTable(signatures: SignatureDefinition[]): string {\n    if (signatures.length === 0 || (signatures.length === 1 && signatures[0].parameters.length === 0)) {\n        return '';\n    }\n\n    const hasOverloads = signatures.length > 1;\n    if (hasOverloads) {\n        return [\n            '',\n            '**Parameters:**',\n            '| Overload | Name | Description | Type | Required |',\n            '|----------|------|-------------|------|----------|',\n            ...signatures.flatMap((s, si) =>\n                s.parameters.map(v => {\n                    return `| \\`[${si + 1}]\\` | \\`${v.name}\\` | ${(v.longDescription ?? v.shortDescription)?.replaceAll('\\n', '<br />') ?? ''} | \\`${nodeTypesToSyntax(v).replaceAll('|', '\\\\|')}\\` | ${isRequiredParameter(v.parseMode) ? 'yes' : 'no'} ${v.defaultValue ?? ''} |`;\n                })\n            )\n        ].join('\\n');\n    } else {\n        return [\n            '',\n            '**Parameters:**',\n            '| Name | Description | Type | Required |',\n            '|------|-------------|------|----------|',\n            ...signatures.flatMap(s =>\n                s.parameters.map(v => {\n                    return `| \\`${v.name}\\` | ${(v.longDescription ?? v.shortDescription)?.replaceAll('\\n', '<br />') ?? ''} | \\`${nodeTypesToSyntax(v).replaceAll('|', '\\\\|')}\\` | ${isRequiredParameter(v.parseMode) ? 'yes' : 'no'} ${v.defaultValue ?? ''} |`;\n                })\n            )\n        ].join('\\n');\n    }\n}\n\nfunction parameterValueDocsToMarkDown(docs: ParameterValueDefinition): string {\n    return [`## ${docs.name}`, docs.longDescription ?? docs.shortDescription, ''].join('\\n');\n}\n\nfunction signatureToSyntax(prefix: string, value: SignatureDefinition, index: number, hasOverloads: boolean): string {\n    let syntax = '';\n\n    if (hasOverloads) {\n        syntax += `// [${index + 1}]: ${value.description ?? ''}\\n`;\n    } else if (value.description) {\n        syntax += `//  ${value.description}\\n`;\n    }\n\n    syntax += prefix;\n    if (value.parameters.length > 0) {\n        syntax += `(${value.parameters.map(p => parameterToSyntax(p, true)).join(' ')})`;\n    }\n\n    return syntax;\n}\n\nfunction isRequiredParameter(parseMode: alphaTab.importer.alphaTex.ArgumentListParseTypesMode) {\n    switch (parseMode) {\n        case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.Required:\n        case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsFloat:\n        case alphaTab.importer.alphaTex.ArgumentListParseTypesMode.RequiredAsValueList:\n            return true;\n        default:\n            return false;\n    }\n}\n","import type * as alphaTab from '@coderline/alphatab';\nimport {\n    allMetadata,\n    beatProperties,\n    durationChangeProperties,\n    noteProperties\n} from '@coderline/alphatab-alphatex/definitions';\nimport type {\n    ParameterDefinition,\n    PropertyDefinition,\n    SignatureDefinition,\n    WithSignatures\n} from '@coderline/alphatab-alphatex/types';\nimport {\n    type AlphaTexTextDocument,\n    type Connection,\n    ParameterInformation,\n    type SignatureHelp,\n    SignatureInformation,\n    type TextDocuments\n} from '@coderline/alphatab-language-server/server/types';\nimport { binaryNodeSearch, parameterToSyntax } from '@coderline/alphatab-language-server/server/utils';\n\nexport function setupSignatureHelp(connection: Connection, documents: TextDocuments<AlphaTexTextDocument>) {\n    connection.onSignatureHelp(params => {\n        const document = documents.get(params.textDocument.uri);\n        if (!document?.ast) {\n            return null;\n        }\n\n        const offset = document.offsetAt(params.position);\n\n        // lookup bar at location\n        const bar = binaryNodeSearch(document.ast.bars, offset);\n        if (!bar) {\n            return null;\n        }\n\n        const metaData = binaryNodeSearch(bar.metaData, offset);\n        if (metaData) {\n            return createMetaDataSignatureHelp(metaData, offset);\n        }\n\n        const beat = binaryNodeSearch(bar.beats, offset);\n        if (beat) {\n            return createBeatSignatureHelp(beat, offset);\n        }\n\n        return null;\n    });\n}\n\nfunction createMetaDataSignatureHelp(\n    metaData: alphaTab.importer.alphaTex.AlphaTexMetaDataNode,\n    offset: number\n): SignatureHelp | null {\n    const metaDataDocs = allMetadata.get(`\\\\${metaData.tag.tag.text.toLowerCase()}`);\n    if (!metaDataDocs) {\n        return null;\n    }\n\n    const endOfValues = metaData.arguments?.end?.offset ?? metaData.properties?.start?.offset ?? metaData.end!.offset;\n    if (metaData.start!.offset <= offset && offset < endOfValues) {\n        return createArgumentsSignatureHelp(`\\\\${metaData.tag.tag.text}`, metaDataDocs, metaData.arguments, offset);\n    }\n\n    if (metaData.properties && metaDataDocs.properties) {\n        const help = createPropertiesSignatureHelp(metaData.properties, metaDataDocs.properties, offset);\n        if (help != null) {\n            return help;\n        }\n    }\n\n    return null;\n}\n\nfunction createBeatSignatureHelp(\n    beat: alphaTab.importer.alphaTex.AlphaTexBeatNode,\n    offset: number\n): SignatureHelp | null {\n    if (beat.durationChange?.properties) {\n        const hover = createPropertiesSignatureHelp(beat.durationChange.properties, durationChangeProperties, offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    if (beat.notes) {\n        const note = binaryNodeSearch(beat.notes.notes, offset);\n        if (note) {\n            return createNoteSignatureHelp(note, offset);\n        }\n    }\n\n    if (beat.beatEffects) {\n        const hover = createPropertiesSignatureHelp(beat.beatEffects, beatProperties, offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    return null;\n}\n\nfunction createNoteSignatureHelp(\n    note: alphaTab.importer.alphaTex.AlphaTexNoteNode,\n    offset: number\n): SignatureHelp | null {\n    if (note?.noteEffects) {\n        const hover = createPropertiesSignatureHelp(note.noteEffects, [noteProperties, beatProperties], offset);\n        if (hover != null) {\n            return hover;\n        }\n    }\n\n    return null;\n}\n\nfunction createPropertiesSignatureHelp(\n    properties: alphaTab.importer.alphaTex.AlphaTexPropertiesNode,\n    propertiesDocs: Map<string, PropertyDefinition> | Map<string, PropertyDefinition>[],\n    offset: number\n): SignatureHelp | null {\n    const prop = binaryNodeSearch(properties.properties, offset);\n    if (!prop) {\n        return null;\n    }\n\n    let propDocs: PropertyDefinition | undefined;\n    if (Array.isArray(propertiesDocs)) {\n        for (const d of propertiesDocs) {\n            propDocs = d.get(prop.property.text.toLowerCase());\n            if (propDocs) {\n                break;\n            }\n        }\n    } else {\n        propDocs = propertiesDocs.get(prop.property.text.toLowerCase());\n    }\n\n    if (propDocs) {\n        return createArgumentsSignatureHelp(prop.property.text, propDocs, prop.arguments, offset);\n    }\n\n    return null;\n}\n\nfunction createArgumentsSignatureHelp(\n    parentItemLabel: string,\n    docs: WithSignatures,\n    values: alphaTab.importer.alphaTex.AlphaTexArgumentList | undefined,\n    offset: number\n): SignatureHelp | null {\n    const help: SignatureHelp = {\n        signatures: docs.signatures.map(s => signatureDefinitionToHelp(parentItemLabel, docs, s)),\n        activeSignature: undefined,\n        activeParameter: undefined\n    };\n\n    if (!values) {\n        return help;\n    }\n\n    if (values.signatureCandidateIndices !== undefined) {\n        help.activeSignature = values.signatureCandidateIndices[0];\n        const value = binaryNodeSearch(values.arguments, offset);\n        if (value) {\n            if (value.parameterIndices !== undefined) {\n                for (const [signatureIndex, parameterIndex] of value.parameterIndices) {\n                    if (parameterIndex >= 0) {\n                        help.signatures[signatureIndex].activeParameter = parameterIndex;\n                    }\n                }\n            }\n        }\n    }\n\n    return help;\n}\n\nfunction createParameterInfo(signature: SignatureInformation, doc: ParameterDefinition) {\n    const start = signature.label.length;\n    signature.label += parameterToSyntax(doc, false);\n\n    const end = signature.label.length;\n    signature.parameters!.push(ParameterInformation.create([start, end], doc.longDescription ?? doc.shortDescription));\n}\n\nfunction signatureDefinitionToHelp(\n    label: string,\n    docs: WithSignatures,\n    signature: SignatureDefinition\n): SignatureInformation {\n    const signatureDocs = SignatureInformation.create(`${label} `, docs.longDescription ?? docs.shortDescription);\n\n    signatureDocs.label += ' (';\n    for (let i = 0; i < signature.parameters.length; i++) {\n        if (i > 0) {\n            signatureDocs.label += ' ';\n        }\n        createParameterInfo(signatureDocs, signature.parameters[i]);\n    }\n\n    signatureDocs.label += ')';\n    return signatureDocs;\n}\n","import { setupCompletion } from '@coderline/alphatab-language-server/server/completion';\nimport { setupDiagnostics } from '@coderline/alphatab-language-server/server/diagnostics';\nimport { setupHover } from '@coderline/alphatab-language-server/server/hover';\nimport { setupSignatureHelp } from '@coderline/alphatab-language-server/server/signatureHelp';\nimport {\n    type AlphaTexTextDocument,\n    type Connection,\n    type InitializeParams,\n    type InitializeResult,\n    PositionEncodingKind,\n    TextDocument,\n    TextDocumentSyncKind,\n    TextDocuments\n} from '@coderline/alphatab-language-server/server/types';\n\n// the only place where we should import specif vscode-languageserver packages\nimport {\n    BrowserMessageReader,\n    BrowserMessageWriter,\n    createConnection as createBrowserConnection\n} from 'vscode-languageserver/lib/browser/main.js';\nimport {\n    createConnection as createNodeConnection,\n    ProposedFeatures as NodeProposedFeatures\n} from 'vscode-languageserver/lib/node/main.js';\n\nfunction startLanguageServer(serverConnection: Connection) {\n    const documents = new TextDocuments<AlphaTexTextDocument>(TextDocument);\n\n    serverConnection.onInitialize((params: InitializeParams) => {\n        const capabilities = params.capabilities;\n\n        const hasWorkspaceFolderCapability = !!(capabilities.workspace && !!capabilities.workspace.workspaceFolders);\n\n        const result: InitializeResult = {\n            capabilities: {\n                textDocumentSync: TextDocumentSyncKind.Incremental,\n                positionEncoding: PositionEncodingKind.UTF16,\n                completionProvider: {\n                    resolveProvider: true\n                },\n                signatureHelpProvider: {\n                    triggerCharacters: ['(']\n                },\n                diagnosticProvider: {\n                    interFileDependencies: false,\n                    workspaceDiagnostics: false\n                },\n                hoverProvider: {}\n            }\n        };\n        if (hasWorkspaceFolderCapability) {\n            result.capabilities.workspace = {\n                workspaceFolders: {\n                    supported: true\n                }\n            };\n        }\n        return result;\n    });\n\n    setupDiagnostics(serverConnection, documents);\n    setupCompletion(serverConnection, documents);\n    setupHover(serverConnection, documents);\n    setupSignatureHelp(serverConnection, documents);\n\n    documents.listen(serverConnection);\n    serverConnection.listen();\n}\n\n\ntype Port = ConstructorParameters<typeof BrowserMessageReader>[0];\n\n/**\n * Starts a new language server communicating via WebWorker.\n * @param readerPort The port used to reading incoming language server messages\n * @param writerPort The port used to writer outgoing language server messages\n */\nexport function startWebWorkerLanguageServer(\n    readerPort: Port,\n    writerPort: Port\n) {\n    startLanguageServer(\n        createBrowserConnection(\n            new BrowserMessageReader(readerPort),\n            new BrowserMessageWriter(writerPort)\n        )\n    );\n}\n\n/**\n * Starts a new language server communicating from a Node.js process with a parent Node.js.\n */\nexport function startNodeLanguageServer() {\n    startLanguageServer(createNodeConnection(NodeProposedFeatures.all));\n}\n","{\n    \"$schema\": \"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json\",\n    \"name\": \"alphaTex\",\n    \"scopeName\": \"source.alphatex\",\n    \"uuid\": \"1ebe68ca-6558-428e-a6af-90831f41e88e\",\n    \"patterns\": [\n        { \"include\": \"#statements\" }\n    ],\n    \"repository\": {\n        \"statements\": {\n            \"patterns\": [\n                { \"include\": \"#string\" },\n                { \"include\": \"#comment\" },\n                { \"include\": \"#metadata\" },\n                { \"include\": \"#literal\" },\n                { \"include\": \"#expression\" },\n                { \"include\": \"#punctuation-pipe\" },\n                { \"include\": \"#punctuation-dot\" }\n            ]\n        },\n        \"string\": {\n            \"patterns\": [\n                { \"include\": \"#qstring-single\" },\n                { \"include\": \"#qstring-double\" }\n            ]\n        },\n        \"qstring-single\": {\n            \"name\": \"string.quoted.single.alphatex\",\n            \"begin\": \"'\",\n            \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.begin.alphatex\" } },\n            \"end\": \"(\\\\')|((?:[^\\\\\\\\\\\\n])$)\",\n            \"endCaptures\": {\n                \"1\": { \"name\": \"punctuation.definition.string.end.alphatex\" },\n                \"2\": { \"name\": \"invalid.illegal.newline.alphatex\" }\n            },\n            \"patterns\": [ { \"include\": \"#string-character-escape\" } ]\n        },\n        \"qstring-double\": {\n            \"name\": \"string.quoted.double.alphatex\",\n            \"begin\": \"\\\"\",\n            \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.string.begin.alphatex\" } },\n            \"end\": \"(\\\")|((?:[^\\\\\\\\\\\\n])$)\",\n            \"endCaptures\": {\n                \"1\": { \"name\": \"punctuation.definition.string.end.alphatex\" },\n                \"2\": { \"name\": \"invalid.illegal.newline.alphatex\" }\n            },\n            \"patterns\": [ { \"include\": \"#string-character-escape\" } ]\n        },\n        \"string-character-escape\": {\n            \"name\": \"constant.character.escape.alphatex\",\n            \"match\": \"\\\\\\\\(u[0-9A-Fa-f]{4}|.|$)\"\n        },\n        \"comment\": {\n            \"patterns\": [\n                {\n                    \"name\": \"comment.block.alphatex\",\n                    \"begin\": \"/\\\\*\",\n                    \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.comment.alphatex\" } },\n                    \"end\": \"\\\\*/\",\n                    \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.comment.alphatex\" } }\n                },\n                {\n                    \"begin\": \"(^[ \\\\t]+)?(?=//)\",\n                    \"beginCaptures\": { \"1\": { \"name\": \"punctuation.whitespace.comment.leading.alphatex\" } },\n                    \"end\": \"(?=$)\",\n                    \"patterns\": [\n                        {\n                            \"name\": \"comment.line.double-slash.alphatex\",\n                            \"begin\": \"//\",\n                            \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.comment.alphatex\" } },\n                            \"end\": \"(?=$)\"\n                        }\n                    ]\n                }\n            ]\n        },\n        \"literal\": {\n            \"patterns\": [ { \"include\": \"#numeric-literal\" } ]\n        },\n        \"numeric-literal\": {\n            \"name\": \"constant.numeric.decimal.alphatex\",\n            \"match\": \"[0-9]+\",\n            \"captures\": { \"0\": { \"name\": \"constant.numeric.decimal.alphatex\" } }\n        },\n        \"expression\": {\n            \"patterns\": [\n                { \"include\": \"#string\" },\n                { \"include\": \"#comment\" },\n                { \"include\": \"#literal\" },\n                { \"include\": \"#identifier\" },\n                { \"include\": \"#valueList\" },\n                { \"include\": \"#properties\" },\n                { \"include\": \"#punctuation\" }\n            ]\n        },\n        \"valueList\": {\n            \"begin\": \"\\\\(\",\n            \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.value-list.begin.js\" } },\n            \"end\": \"\\\\)\",\n            \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.value-list.end.js\" } },\n            \"patterns\": [\n                { \"include\": \"#string\" },\n                { \"include\": \"#comment\" },\n                { \"include\": \"#literal\" },\n                { \"include\": \"#identifier\" }\n            ]\n        },\n        \"properties\": {\n            \"begin\": \"\\\\{\",\n            \"beginCaptures\": { \"0\": { \"name\": \"punctuation.definition.properties.begin.js\" } },\n            \"end\": \"\\\\}\",\n            \"endCaptures\": { \"0\": { \"name\": \"punctuation.definition.properties.end.js\" } },\n            \"patterns\": [\n                { \"include\": \"#string\" },\n                { \"include\": \"#comment\" },\n                { \"include\": \"#literal\" },\n                { \"include\": \"#identifier\" },\n                { \"include\": \"#valueList\" }\n            ]\n        },\n        \"metadata\": {\n            \"name\": \"keyword.metadata.alphatex\",\n            \"match\": \"\\\\\\\\{1,2}[^\\\\s]+\",\n            \"captures\": { \"0\": { \"name\": \"keyword.metadata.alphatex\" } }\n        },\n        \"identifier\": {\n            \"name\": \"variable.identifier.alphatex\",\n            \"match\": \"[^/\\\"'-\\\\.:\\\\(\\\\)\\\\{\\\\}\\\\|\\\\*\\\\\\\\\\\\s][^/\\\"'\\\\.:\\\\(\\\\)\\\\{\\\\}\\\\|\\\\*\\\\\\\\\\\\s]+\",\n            \"captures\": { \"0\": { \"name\": \"variable.identifier.alphatex\" } }\n        },\n        \"punctuation\": {\n            \"patterns\": [\n                { \"include\": \"#punctuation-dot\" },\n                { \"include\": \"#punctuation-pipe\" },\n                { \"include\": \"#punctuation-asterisk\" }\n            ]\n        },\n        \"punctuation-pipe\": {\n            \"name\": \"punctuation.bar.alphatex\",\n            \"match\": \"\\\\|\"\n        },\n        \"punctuation-dot\": {\n            \"name\": \"punctuation.dot.alphatex\",\n            \"match\": \"\\\\.\"\n        },\n        \"punctuation-asterisk\": {\n            \"name\": \"punctuation.asterisk.alphatex\",\n            \"match\": \"\\\\*\"\n        }\n    }\n}","{\n    \"comments\": {\n        \"lineComment\": {\n            \"comment\": \"//\",\n            \"noIndent\": false\n        },\n        \"blockComment\": [\n            \"/*\",\n            \"*/\"\n        ]\n    },\n    \"brackets\": [\n        [\n            \"{\",\n            \"}\"\n        ],\n        [\n            \"[\",\n            \"]\"\n        ],\n        [\n            \"(\",\n            \")\"\n        ]\n    ],\n    \"autoClosingPairs\": [\n        {\n            \"open\": \"{\",\n            \"close\": \"}\"\n        },\n        {\n            \"open\": \"[\",\n            \"close\": \"]\"\n        },\n        {\n            \"open\": \"(\",\n            \"close\": \")\"\n        },\n        {\n            \"open\": \"\\\"\",\n            \"close\": \"\\\"\"\n        },\n        {\n            \"open\": \"'\",\n            \"close\": \"'\"\n        }\n    ],\n    \"surroundingPairs\": [\n        {\n            \"open\": \"{\",\n            \"close\": \"}\"\n        },\n        {\n            \"open\": \"[\",\n            \"close\": \"]\"\n        },\n        {\n            \"open\": \"(\",\n            \"close\": \")\"\n        },\n        {\n            \"open\": \"\\\"\",\n            \"close\": \"\\\"\"\n        },\n        {\n            \"open\": \"'\",\n            \"close\": \"'\"\n        }\n    ]\n}","import {\n    barMetaData,\n    beatProperties,\n    durationChangeProperties,\n    noteProperties,\n    scoreMetaData,\n    staffMetaData,\n    structuralMetaData\n} from '@coderline/alphatab-alphatex/definitions';\nimport { startNodeLanguageServer, startWebWorkerLanguageServer } from '@coderline/alphatab-language-server/server';\n\nconst documentation = {\n    structuralMetaData,\n    scoreMetaData,\n    staffMetaData,\n    barMetaData,\n    durationChangeProperties,\n    beatProperties,\n    noteProperties\n};\n\nimport type {\n    AlphaTexExample,\n    MetadataTagDefinition,\n    ParameterDefinition,\n    ParameterValueDefinition,\n    PropertyDefinition,\n    SignatureDefinition,\n    WithDescription,\n    WithSignatures\n} from '@coderline/alphatab-alphatex/types';\n\nimport textMateGrammarJson from './alphatex.tmLanguage.json';\nimport languageConfigurationJson from './language-configuration.json';\n\n// export jsons as untyped objects for further use\n\n/**\n * The TextMate grammar definition as JSON encoded.\n * Write this to a local json (e.g. alphatex.tmLanguage.json ) or pass it to any supported parser for further use.\n */\nconst textMateGrammar: any = textMateGrammarJson;\n/**\n * The contents of a language-configuration.json to use in editors like VSCode.\n */\nconst languageConfiguration: any = languageConfigurationJson;\n\nexport {\n    documentation, languageConfiguration, startNodeLanguageServer,\n    startWebWorkerLanguageServer, textMateGrammar, type AlphaTexExample,\n    type MetadataTagDefinition, type ParameterDefinition, type ParameterValueDefinition, type PropertyDefinition, type SignatureDefinition, type WithDescription, type WithSignatures\n};\n\nif (import.meta.main) {\n    startNodeLanguageServer();\n}\n"],"mappings":"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CACR,EACI,YAAY,CACR;EACI,MAAM;EACN,kBAAkB;EAClB,WAAW,SAAS,SAAS,SAAS,2BAA2B;EACjE,MAAM,SAAS,SAAS,SAAS,iBAAiB;CACtD,GACA;EACI,MAAM;EACN,kBAAkB;EAClB,WAAW,SAAS,SAAS,SAAS,2BAA2B;EACjE,MAAM,SAAS,SAAS,SAAS,iBAAiB;CACtD,CACJ,EACJ,CACJ;CAEA,UAAU;;;;;;;;;AASd;;;ACsGA,IAAa,qBAAqB,SAAS,OAAO,OAAO,KAAK;AAC9D,IAAa,gBAAgB,SACzB,OACA,UACA,QACA,OACA,OACA,OACA,eACA,WACA,YACA,cACA,SACA,KACA,eACA,sBACA,cACA,cACA,wBACA,cACA,mBACA,4BACA,2BACA,0BACA,2BACA,iCACA,kCACA,gBACA,sBACA,iBACA,8BACA,yBACA,uBACJ;AAEA,IAAa,gBAAgB,SACzB,QACA,OACA,MACA,QACA,cACA,kBACA,WACA,cACJ;AAEA,IAAa,cAAc,SACvB,IACA,IACA,IACA,IACA,IACA,MACA,QACA,OACA,IACA,IACA,SACA,MACA,IACA,QACA,aACA,cACA,OACA,OACA,MACA,aACA,KACA,KACA,KACA,IACA,WACA,kBACA,OACJ;AAEA,IAAa,cAAc,IAAI,IAAI;CAC/B,GAAG,mBAAmB,QAAQ;CAC9B,GAAG,cAAc,QAAQ;CACzB,GAAG,cAAc,QAAQ;CACzB,GAAG,YAAY,QAAQ;AAC3B,CAAC;AAED,IAAa,2BAA2B,WAAW,EAAE;AAErD,IAAa,iBAAiB,WAC1B,GACA,IACA,IACA,GACA,IACA,GACA,GACA,IACA,GACA,IACA,IACA,IACA,KACA,KACA,SACA,SACA,SACA,SACA,SACA,IACA,MACA,MACA,MACA,MACA,cACA,OACA,IACA,KACA,YACA,IACA,KACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,WACA,QACA,SACA,IACA,OACA,MACA,IACA,YACA,MACA,SACA,IACJ;AAEA,IAAa,iBAAiB,WAC1B,IACA,IACA,IACA,IACA,IACA,IACA,aACA,iBACA,IACA,IACA,KA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"}