Visual Sanity Tests
Visual regression test cases for notation rendering
This page displays notation test cases with their rendered output to help catch visual regressions and document expected rendering behavior. Use the "Copy" button to copy rendered output for updating baseline expectations.
Basic Notation (5)
Simple Notes
basic-notes
Basic swara sequence with octave marker
Input
Sw: S R G M P D N S.
Expected
Rendered
Octaves
octaves
Notes across lower, middle, and upper octaves
Input
Sw: .N .D S R G M P D N S. R.
Expected
Rendered
Groups
groups
Grouped notes played in same time duration
Input
Sw: S R [G M] P D [N S.]
Expected
Rendered
Durations
durations
Notes with explicit duration modifiers
Input
Sw: S 2 R G 3 M P
Expected
Rendered
Rests/Spaces
rests
Notes with rests/spaces between them
Input
Sw: S , R , , G , , , M
Expected
Rendered
Embellishments (4)
Jaaru (slide)
jaaru
Left embellishment indicating slide from previous note
Input
Sw: ~/ S R G
Expected
Rendered
Kampitam (oscillation)
kampitam
Top embellishment indicating oscillation
Input
Sw: ~ S ~ R ~ G
Expected
Rendered
Multiple Embellishments
multi-emb
Multiple embellishments on a single note
Input
Sw: ~/ ~ S R
Expected
Rendered
Collision Test
collision
Consecutive notes with embellishments (collision test)
Input
\beatDuration(2)
Sw:
~/ S ~/ R ~/ G ~/ M ~/ P ~/ D ~/ N ~/ S.
~/ S. ~/ N ~/ D ~/ P ~/ M ~/ G ~/ R ~/ S
Sh: A B C D E F G H I J K L M N O P Q R S T
Expected
Rendered
Layout & Configuration (4)
Two Roles
two-roles
Multi-role notation with swaras and sahitya
Input
Sw: S R G M
Sh: sa ri ga ma
Expected
Rendered
Cycle/Beat
cycle-beat
Notation with cycle configuration
Input
\cycle("|4|4|")
Sw: S R G M P D N S.
Expected
Rendered
Nested Groups
nested-groups
Nested groups with depth-based bracket lines above each group container
Input
\beatDuration(4)
Sw: S R G M P D N S.
A B [ S R [ P D [ W X ] ] ]
Expected
Rendered
Baseline Alignment
baseline-alignment
Beats with different nesting levels in the same row should have aligned atom baselines
Input
\cycle("|1|")
\beatDuration(4)
Sw: S R G M [ P D [ N S. ] ] G M P D
[ S R ] G M P D N S. [ [ W X ] ]
Expected
Rendered
Markers & Annotations (4)
Label Before
label-before
Pre-marker label appearing before notes in a dedicated column
Input
\@label("V1") S R G M P D N S.
Expected
Rendered
Label After
label-after
Post-marker label appearing after notes with position=after
Input
S R G M \@label("End", position="after") P D N S.
Expected
Rendered
Label Multi-Role
label-multi-role
Label marker on one role creates aligned column across all roles
Input
Sw: \@label("V1") S R G M P D N S.
Sh: sa ri ga ma pa dha ni sa
Expected
Rendered
Multiple Labels
label-multiple
Multiple label markers in sequence
Input
\@label("1.") S R G M P D N S.
\@label("2.") S. N D P M G R S
Expected
Rendered