9 \description "Hard coded entry point for LilyPond. Cannot be tuned."
10 \grobdescriptions #all-grob-descriptions
14 \type "Engraver_group"
17 \consists "Output_property_engraver"
18 \consists "Bar_engraver"
19 %% Bar_engraver must be first so default bars aren't overwritten
22 \consists "Font_size_engraver"
23 \consists "Volta_engraver"
24 \consists "Separating_line_group_engraver"
25 \consists "Dot_column_engraver"
27 %% perhaps move to Voice context?
28 \consists "Ottava_spanner_engraver"
29 \consists "Clef_engraver"
30 \consists "Key_engraver"
31 \consists "Time_signature_engraver"
32 \consists "Ledger_line_engraver"
33 \consists "Staff_symbol_engraver"
34 \consists "Collision_engraver"
35 \consists "Rest_collision_engraver"
36 \consists "Accidental_engraver"
37 \consists "Piano_pedal_engraver"
38 \consists "Instrument_name_engraver"
39 \consists "String_number_engraver"
40 \consists "Axis_group_engraver"
42 \override VerticalAxisGroup #'minimum-Y-extent = #'(-4 . 4)
43 extraVerticalExtent = ##f
45 localKeySignature = #'()
48 %% explicitly set instrument, so we don't get
49 %% weird effects when doing instrument names for
59 \description "Handles clefs, bar lines, keys, accidentals. It can contain
60 @code{Voice} contexts."
66 \type "Engraver_group"
70 \remove "Accidental_engraver"
71 \remove "Ottava_spanner_engraver"
72 \remove "Key_engraver"
73 \remove "Piano_pedal_engraver"
74 \remove "String_number_engraver"
76 \description "Handles typesetting for percussion."
80 \defaultchild "DrumVoice"
82 clefGlyph = #"clefs.percussion"
84 \override Script #'staff-padding = #0.75
89 \type "Engraver_group"
90 \name "InnerChoirStaff"
91 \consists "System_start_delimiter_engraver"
92 systemStartDelimiter = #'SystemStartBracket
98 \accepts "RhythmicStaff"
100 \accepts "PianoStaff"
102 \accepts "ChordNames"
103 \defaultchild "Staff"
110 \defaultchild "Staff"
111 \accepts "InnerChoirStaff"
112 \accepts "InnerStaffGroup"
113 \description "Identical to @code{StaffGroup} except that the
114 contained staves are not connected vertically."
119 \type "Engraver_group"
121 \override VerticalAxisGroup #'minimum-Y-extent = ##f
122 extraVerticalExtent = ##f
124 localKeySignature = #'()
127 squashedPosition = #0
131 \override BarLine #'bar-size = #4
132 \override VoltaBracket #'staff-padding = #3
133 \override StaffSymbol #'line-count = #1
135 \override Stem #'neutral-direction = #UP
136 \override Beam #'neutral-direction = #UP
138 \consists "Output_property_engraver"
139 \consists "Font_size_engraver"
140 \consists "Volta_engraver"
141 \consists "Separating_line_group_engraver"
142 \consists "Dot_column_engraver"
143 \consists "Bar_engraver"
144 \consists "Staff_symbol_engraver"
145 \consists "Pitch_squash_engraver"
146 \consists "Time_signature_engraver"
147 \consists "Instrument_name_engraver"
148 \consists "Axis_group_engraver"
152 \defaultchild "Voice"
155 A context like @code{Staff} but for printing rhythms. Pitches are
156 ignored; the notes are printed on one line.
162 \type "Engraver_group"
166 Corresponds to a voice on a staff. This context handles the
167 conversion of dynamic signs, stems, beams, super- and subscripts,
168 slurs, ties, and rests.
170 You have to instantiate this explicitly if you want to have
171 multiple voices on the same staff."
173 localKeySignature = #'()
174 \consists "Font_size_engraver"
176 \consists "Pitched_trill_engraver"
177 \consists "Output_property_engraver"
178 \consists "Arpeggio_engraver"
179 \consists "Multi_measure_rest_engraver"
180 \consists "Text_spanner_engraver"
181 \consists "Trill_spanner_engraver"
182 \consists "Grob_pq_engraver"
183 \consists "Forbid_line_break_engraver"
184 \consists "Laissez_vibrer_engraver"
185 \consists "Repeat_tie_engraver"
186 \consists "Note_head_line_engraver"
187 \consists "Glissando_engraver"
188 \consists "Ligature_bracket_engraver"
189 \consists "Breathing_sign_engraver"
190 \consists "Note_heads_engraver"
191 \consists "Rest_engraver"
193 %% switch on to make stem directions interpolate for the
195 % \consists "Melody_engraver"
197 \consists "Stem_engraver"
198 \consists "Beam_engraver"
199 \consists "Grace_beam_engraver"
200 \consists "Auto_beam_engraver"
201 \consists "New_fingering_engraver"
202 \consists "Chord_tremolo_engraver"
203 \consists "Percent_repeat_engraver"
204 \consists "Slash_repeat_engraver"
205 \consists "Melisma_translator"
206 \consists "Part_combine_engraver"
208 \consists "Text_engraver"
209 \consists "Dynamic_engraver"
210 \consists "Fingering_engraver"
212 \consists "Script_engraver"
213 \consists "Script_column_engraver"
214 \consists "Rhythmic_column_engraver"
215 \consists "Phrasing_slur_engraver"
216 \consists "Cluster_spanner_engraver"
217 \consists "Slur_engraver"
218 \consists "Tie_engraver"
219 \consists "Tuplet_engraver"
220 \consists "Grace_engraver"
222 \consists "Skip_event_swallow_translator"
231 \override Stem #'length-fraction = #(magstep -4)
232 \override Beam #'length-fraction = #(magstep -4)
240 \description "A voice on a percussion staff."
241 \remove "Arpeggio_engraver"
242 \consists "Multi_measure_rest_engraver"
243 \consists "Text_spanner_engraver"
244 \consists "Grob_pq_engraver"
246 \remove "Note_head_line_engraver"
247 \remove "Glissando_engraver"
248 \remove "Ligature_bracket_engraver"
249 \remove "Note_heads_engraver"
250 \consists "Drum_notes_engraver"
251 \remove "New_fingering_engraver"
253 \remove "Fingering_engraver"
255 \remove "Cluster_spanner_engraver"
256 \consists "Tuplet_engraver"
258 \consists "Skip_event_swallow_translator"
262 \type "Engraver_group"
264 localKeySignature = #'()
266 \description " A group of staffs, with a brace on the left
267 side, grouping the staves together. The bar lines of the
268 contained staves are connected vertically. "
270 \consists "Span_bar_engraver"
271 \consists "Span_arpeggio_engraver"
272 \consists "System_start_delimiter_engraver"
273 systemStartDelimiter = #'SystemStartBrace
284 "Just like @code{GrandStaff} but with a forced distance between
285 the staves, so cross staff beaming and slurring can be used."
287 \override VerticalAlignment #'forced-distance = #12
288 \override VerticalAlignment #'self-alignment-Y = #0
290 \consists "Vertical_align_engraver"
291 \consists "Instrument_name_engraver"
298 \type "Engraver_group"
299 \name InnerStaffGroup
301 \consists "Span_bar_engraver"
302 \consists "Span_arpeggio_engraver"
303 \consists "Output_property_engraver"
304 systemStartDelimiter = #'SystemStartBracket
306 \consists "System_start_delimiter_engraver"
308 \defaultchild "Staff"
310 \accepts "RhythmicStaff"
312 \accepts "GrandStaff"
313 \accepts "PianoStaff"
316 \accepts "ChordNames"
325 "Groups staffs while adding a bracket on the left side, grouping
326 the staves together. The bar lines of the contained staves are
327 connected vertically. StaffGroup only consists of a collection of
328 staffs, with a bracket in front and spanning bar lines. "
330 \accepts "InnerChoirStaff"
331 \accepts "ChoirStaff"
332 \accepts "InnerStaffGroup"
333 \accepts "FiguredBass"
338 \type "Engraver_group"
339 \override VerticalAxisGroup #'minimum-Y-extent = #'(-1.2 . 2.4)
340 extraVerticalExtent = ##f
343 \description " Corresponds to a voice with lyrics. Handles the
344 printing of a single line of lyrics. "
347 \consists "Lyric_engraver"
348 \consists "Extender_engraver"
349 \consists "Hyphen_engraver"
350 \consists "Stanza_number_engraver"
351 \consists "Instrument_name_engraver"
352 \consists "Skip_event_swallow_translator"
353 \consists "Font_size_engraver"
354 \consists "Hara_kiri_engraver"
355 \override VerticalAxisGroup #'remove-first = ##t
356 \override VerticalAxisGroup #'remove-empty = ##t
357 \override SeparationItem #'padding = #0.2
358 \override InstrumentName #'self-alignment-Y = ##f
360 %% sync with define-grobs.scm ;
361 \override InstrumentName #'font-size = #1.0
363 %% make sure that barlines aren't collapsed, when
364 %% Bar_engraver is there.
365 \override BarLine #'bar-size = #0.1
370 \type "Engraver_group"
372 \consists "Axis_group_engraver"
374 \override VerticalAxisGroup #'minimum-Y-extent = ##f
375 extraVerticalExtent = ##f
379 \consists "Rest_swallow_translator"
380 \consists "Skip_event_swallow_translator"
381 \consists "Tie_engraver"
382 \consists "Note_name_engraver"
383 \consists "Separating_line_group_engraver"
387 \type "Engraver_group"
389 \description "Typesets chord names."
391 \consists "Volta_engraver"
393 \consists "Rest_swallow_translator"
394 \consists "Output_property_engraver"
395 \consists "Separating_line_group_engraver"
396 \consists "Chord_name_engraver"
397 \consists "Skip_event_swallow_translator"
398 \consists "Hara_kiri_engraver"
400 voltaOnThisStaff = ##f
401 \override VerticalAxisGroup #'minimum-Y-extent = #'(0 . 2.5)
402 extraVerticalExtent = ##f
403 \override SeparatingGroupSpanner #'padding = #0.8
404 \override VerticalAxisGroup #'remove-first = ##t
405 \override VerticalAxisGroup #'remove-empty = ##t
410 RemoveEmptyStaffContext= \context {
412 \remove "Axis_group_engraver"
413 \consists "Hara_kiri_engraver"
414 \override Beam #'auto-knee-gap = #'()
415 \override VerticalAxisGroup #'remove-empty = ##t
418 AncientRemoveEmptyStaffContext = \context {
419 %% why not add by default?
421 \RemoveEmptyStaffContext
422 \accepts "VaticanaVoice"
423 \accepts "GregorianTranscriptionVoice"
424 \accepts "MensuralVoice"
428 \type "Score_engraver"
431 \description "This is the top level notation context. No
432 other context can contain a @code{Score} context. This context
433 handles the administration of time signatures. It also makes sure
434 that items such as clefs, time signatures, and key-signatures are
435 aligned across staves.
437 You cannot explicitly instantiate a Score context (since it is
438 not contained in any other context). It is instantiated
439 automatically when an output definition (a @code{\score} or
440 @code{\layout} block) is processed."
443 \consists "Paper_column_engraver"
444 \consists "Vertically_spaced_contexts_engraver"
445 \consists "Repeat_acknowledge_engraver"
446 \consists "Staff_collecting_engraver"
448 %% move the alias along with the engraver.
450 \consists "Timing_translator"
451 \consists "Default_bar_line_engraver"
452 \consists "Output_property_engraver"
453 \consists "System_start_delimiter_engraver"
454 \consists "Mark_engraver"
455 \consists "Metronome_mark_engraver"
456 \consists "Break_align_engraver"
457 \consists "Spacing_engraver"
458 \consists "Vertical_align_engraver"
459 \consists "Stanza_number_align_engraver"
460 \consists "Bar_number_engraver"
461 \consists "Tweak_engraver"
462 \consists "Parenthesis_engraver"
464 \defaultchild "Staff"
467 \accepts "RhythmicStaff"
469 \accepts "VaticanaStaff"
470 \accepts "GregorianTranscriptionStaff"
471 \accepts "MensuralStaff"
472 \accepts "StaffGroup"
475 \accepts "ChordNames"
476 \accepts "GrandStaff"
477 \accepts "ChoirStaff"
478 \accepts "PianoStaff"
481 \accepts "FiguredBass"
484 soloIIText = #"Solo II"
486 printPartCombineTexts = ##t
487 systemStartDelimiter =#'SystemStartBar
489 drumStyleTable = #drums-style
491 melismaBusyProperties = #default-melisma-properties
493 clefGlyph = #"clefs.G"
495 middleCPosition = #-6
498 defaultBarType = #"|"
499 barNumberVisibility = #first-bar-number-invisible
502 explicitClefVisibility = #all-visible
503 explicitKeySignatureVisibility = #all-visible
504 autoBeamSettings = #default-auto-beam-settings
506 autoBeamCheck = #default-auto-beam-check
507 scriptDefinitions = #default-script-alist
509 pedalSustainStrings = #'("Ped." "*Ped." "*")
510 pedalSustainStyle = #'text
511 pedalUnaCordaStrings = #'("una corda" "" "tre corde")
512 pedalUnaCordaStyle = #'text
514 %% These are in ordinary italic font, including the *,
515 %% but they are unlikely to be used,
516 %% as the default pedal-style for SostenutoPedal is 'mixed':
517 %% i.e. Sost. Ped_____________________
518 pedalSostenutoStrings = #'("Sost. Ped." "*Sost. Ped." "*")
519 pedalSostenutoStyle = #'mixed
521 harmonicAccidentals = ##t
522 fingeringOrientations = #'(up down)
523 stringNumberOrientations = #'(up down)
524 tupletNumberFormatFunction = #denominator-tuplet-formatter
525 markFormatter = #format-mark-letters
530 autoAccidentals = #'(Staff (same-octave . 0))
531 autoCautionaries = #'()
533 printKeyCancellation = ##t
534 keyAlterationOrder = #`(
535 (6 . ,FLAT) (2 . ,FLAT) (5 . ,FLAT ) (1 . ,FLAT) (4 . ,FLAT) (0 . ,FLAT) (3 . ,FLAT)
536 (3 . ,SHARP) (0 . ,SHARP) (4 . ,SHARP) (1 . ,SHARP) (5 . ,SHARP) (2 . ,SHARP) (6 . ,SHARP)
537 (6 . ,DOUBLE-FLAT) (2 . ,DOUBLE-FLAT) (5 . ,DOUBLE-FLAT ) (1 . ,DOUBLE-FLAT) (4 . ,DOUBLE-FLAT) (0 . ,DOUBLE-FLAT) (3 . ,DOUBLE-FLAT)
538 (3 . ,DOUBLE-SHARP) (0 . ,DOUBLE-SHARP) (4 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (5 . ,DOUBLE-SHARP) (2 . ,DOUBLE-SHARP) (6 . ,DOUBLE-SHARP)
541 barCheckSynchronize = ##f
544 chordNameFunction = #ignatzek-chord-names
545 majorSevenSymbol = #whiteTriangleMarkup
546 chordNameSeparator = #(make-simple-markup "/")
547 chordNameExceptions = #ignatzekExceptions
548 chordNoteNamer = #'()
549 chordRootNamer = #note-name->markup
550 chordPrefixSpacer = #0
551 chordNameExceptionsFull = #fullJazzExceptions
552 chordNameExceptionsPartial = #partialJazzExceptions
555 bassStaffProperties = #'((assign clefGlyph "clefs.F")
556 (assign clefPosition 2)
557 (assign middleCPosition 6))
559 stringOneTopmost = ##t
562 %% One may change the strings tuning as following :
563 %% The lenght of the list must be equal to the number of string
564 stringTunings = #guitar-tuning
565 tablatureFormat = #fret-number-tablature-format
568 figuredBassFormatter = #format-bass-figure
569 metronomeMarkFormatter = #format-metronome-markup
571 (Voice Stem direction ,UP)
572 (Voice Stem font-size -3)
573 (Voice NoteHead font-size -3)
574 (Voice Dots font-size -3)
575 (Voice Stem length-fraction 0.8)
576 (Voice Stem no-stem-extend #t)
577 (Voice Beam thickness 0.384)
578 (Voice Beam length-fraction 0.8)
579 (Voice Accidental font-size -4)
580 (Voice Slur direction ,DOWN)
583 keepAliveInterfaces = #'(rhythmic-grob-interface lyric-interface percent-repeat-interface)
584 quotedEventTypes = #'(note-event rest-event time-scaled-music tie-event beam-event)
585 instrumentTransposition = #(ly:make-pitch 0 0 0)
587 verticallySpacedContexts = #'(Staff)
589 hairpinToBarline = ##t
598 \type "Engraver_group"
601 \consists "Figured_bass_engraver"
602 \consists "Note_swallow_translator"
603 \consists "Skip_event_swallow_translator"
604 \consists "Separating_line_group_engraver"
605 \consists "Hara_kiri_engraver"
607 \override VerticalAxisGroup #'remove-empty = ##t
608 \override VerticalAxisGroup #'remove-first = ##t
609 \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
614 \type "Engraver_group"
616 %% don't want to route anything out of here:
619 \consists "Swallow_engraver"
620 \description "Silently discards all musical information given to this context. "
627 \consists "Tab_note_heads_engraver"
628 \remove "Note_heads_engraver"
629 \remove "Fingering_engraver"
630 \remove "New_fingering_engraver"
632 \description "Context for drawing notes in a Tab staff. "
634 %% TabStaff increase the staff-space, which in turn
635 %% increases beam thickness and spacing; beams are
636 %% too big. We have to adjust the beam settings:
637 \override Beam #'thickness = #0.32
638 \override Beam #'length-fraction = #0.62
640 %% No accidental in tablature !
641 \remove Accidental_engraver
649 \remove "Staff_symbol_engraver"
650 \consists "Tab_staff_symbol_engraver"
652 \description "Context for generating tablature. [DOCME]"
655 \defaultchild "TabVoice"
658 \override StaffSymbol #'staff-space = #1.5
660 %% Don't draw stems over the tablature figures !
661 \override Stem #'avoid-note-head = ##t
663 %% No accidental in tablature !
664 \remove "Accidental_engraver"
665 \remove "Key_engraver"
666 \remove "String_number_engraver"
667 %% Special "TAB" clef
668 clefGlyph = #"clefs.tab"
672 %% TODO: Gregorian Chant contexts should be moved to gregorian-init.ly,
673 %% but this does not work (is this a bug or intended behaviour?):
675 %% If I try to do so, I get "error: unknown escaped string:
676 %% `\VaticanaStaff'" in params-init.ly. If I also move
677 %% "\context { \Vaticana*Context }" from params-init.ly to the end
678 %% of gregorian-init.ly, then I get "error: parse error, unexpected
679 %% TRANSLATOR: \context { \VaticanaStaff }" in
680 %% gregorian-init.ly. --jr
684 \name "VaticanaVoice"
686 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
688 \remove "Slur_engraver"
689 \remove "Stem_engraver"
690 \remove "Ligature_bracket_engraver"
691 \consists "Vaticana_ligature_engraver"
693 %% Set default head for notes outside of \[ \].
694 \override NoteHead #'style = #'vaticana.punctum
696 %% Put some space before and after divisiones.
697 %% FIXME: This does not seem to show any effect.
698 \override Script #'padding = #0.5
700 %% There are no beams in Gregorian Chant notation.
703 %% Prepare TextSpanner for \episem{Initium|Finis} use.
705 %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
706 %% always produce dashed lines, regardless of the style property.
708 %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
709 %% required to force the articulation signs being placed vertically
710 %% tightly to the correpsonding note heads.
712 \override TextSpanner #'dash-fraction = #'()
713 \override TextSpanner #'style = #'line
714 \override TextSpanner #'edge-height = #'(0 . 0)
715 \override TextSpanner #'padding = #-0.1
716 \override TextSpanner #'enclose-bounds = #1
717 \override TextSpanner #'edge-text = #'("" . "")
720 %% FIXME: need something like
721 %% \remove "Bar_number_engraver" (which lives on score level)
722 %% for vaticana and gregorian transcription staves
726 \name "VaticanaStaff"
729 \accepts "VaticanaVoice"
730 \defaultchild "VaticanaVoice"
732 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting Gregorian Chant in the notational style of Editio Vaticana."
734 \remove "Time_signature_engraver"
735 \consists "Custos_engraver"
737 %% We can not remove Bar_engraver; otherwise clefs and custodes will
738 %% not show up any more among other line breaking issues.
739 %% Instead, we make the grob transparent.
740 \override BarLine #'transparent = ##t
742 \override StaffSymbol #'line-count = #4
743 \override StaffSymbol #'thickness = #0.6
745 %% FIXME: unit on StaffSymbol's width should be \linewidth.
746 %% \override StaffSymbol #'width = #60.0
748 %% Choose vaticana do clef on 3rd line as default.
749 clefGlyph = #"clefs.vaticana.do"
754 %% Select vaticana style font.
755 \override KeySignature #'style = #'vaticana
756 \override Accidental #'style = #'vaticana
757 \override Custos #'style = #'vaticana
758 \override Custos #'neutral-position = #3
759 \override Custos #'neutral-direction = #DOWN
764 \name "GregorianTranscriptionVoice"
767 %% Removing ligature bracket engraver without replacing it by some
768 %% other ligature engraver would cause a "Junking event: `LigatureEvent'"
769 %% warning for every "\[" and "\]". Therefore, we make the grob
770 %% transparent instead.
771 \override LigatureBracket #'transparent = ##t
773 %% Put some space before and after divisiones.
774 %% FIXME: This does not seem to show any effect.
775 \override Script #'padding = #0.5
777 %% There are no beams in Gregorian Chant notation.
780 %% Prepare TextSpanner for \episem{Initium|Finis} use.
782 %% N.B.: dash-fraction MUST be unset; otherwise, TextSpanner will
783 %% always produce dashed lines, regardless of the style property.
785 %% FIXME: The line @code{\override TextSpanner #'padding = #-0.1} is
786 %% required to force the articulation signs being placed vertically
787 %% tightly to the correpsonding note heads.
789 \override TextSpanner #'dash-fraction = #'()
790 \override TextSpanner #'style = #'line
791 \override TextSpanner #'edge-height = #'(0 . 0)
792 \override TextSpanner #'padding = #-0.1
793 \override TextSpanner #'enclose-bounds = #1
794 \override TextSpanner #'edge-text = #'("" . "")
799 \name "GregorianTranscriptionStaff"
802 \accepts "GregorianTranscriptionVoice"
803 \defaultchild "GregorianTranscriptionVoice"
805 %% We can not remove Bar_engraver; otherwise clefs and custodes will
806 %% not show up any more among other line breaking issues.
807 %% Instead, we make the grob transparent.
808 \override BarLine #'transparent = ##t
813 \name "MensuralVoice"
815 \description "Same as @code{Voice} context, except that it is accommodated for tyepsetting a piece in mensural style."
817 \remove "Slur_engraver"
818 \remove "Ligature_bracket_engraver"
819 \consists "Mensural_ligature_engraver"
821 %% Set default head for notes outside of \[ \].
822 \override NoteHead #'style = #'petrucci
824 %% There are no beams in mensural notation.
830 \name "MensuralStaff"
833 \defaultchild "MensuralVoice"
834 \accepts "MensuralVoice"
835 \description "Same as @code{Staff} context, except that it is accommodated for tyepsetting a piece in mensural style."
837 \consists "Custos_engraver"
839 %% We can not remove Bar_engraver; otherwise clefs and custodes will
840 %% not show up any more among other line breaking issues.
841 %% Instead, we make the grob transparent.
842 \override BarLine #'transparent = ##t
844 \override StaffSymbol #'thickness = #0.6
846 %% FIXME: unit on StaffSymbol's width should be \linewidth.
847 %% \override StaffSymbol #'width = #60.0
849 %% Choose petrucci g clef on 2nd line as default.
850 clefGlyph = #"clefs.petrucci.g"
851 middleCPosition = #-6
855 %% Select mensural style font.
856 \override TimeSignature #'style = #'mensural
857 \override KeySignature #'style = #'mensural
858 \override Accidental #'style = #'mensural
859 \override Custos #'style = #'mensural
860 \override Custos #'neutral-position = #3
861 \override Custos #'neutral-direction = #DOWN
865 RemoveEmptyRhythmicStaffContext= \context {
867 \remove "Axis_group_engraver"
868 \override VerticalAxisGroup #'remove-empty = ##t
869 \consists "Hara_kiri_engraver"