How to encode slurs in **kern data.


Slurs are indicated by adding ( to a token for the slur start, and ) for a slur end.

Nested slurs

Slurs can be nested by opening another slur while another one is active. The first slur closing will affect the closest slur opening to it.

Notice the direction RDF character which can be used to force the direction of a slur.

Crossing slurs

Slurs can cross each other by prefixing an ampersand (&) in front of a slur marker which crosses another slur. For more than one crossing slur at a time, additional & characters can be added to the slur prefix.

Slur orientation

There are two ways to control the placement of slurs on the staff. When a slur needs to be placed in an arbitrary position, use one of the following two systems.

By layout parameters

The !LO:S: layout prefix indicates that the layout parameter applies to the slur in the next data token in the spine. To force the slur above the staff, add the parameter a, which is short for a=true. To force the slur below the staff, add the parameter b.

By RDF records

When slur orientations need to be adjusted often in a score, a more compact way of encoding them is to use an RDF record:

In the above example, the < character is defined as a qualification on the slur to force it below the staff, and > is used to force the slur above the staff. These characters must immediately follow the ( character representing the slur start. Other positions in the token will cause slur or beam to be oriented up or down, and placing the above/below signifiers after a note will move it to the next staff above or below the current one.

Slurs on chords

When a chord possesses two slurs, the two slurs will be moved to opposite sides of the chord automatically:

The position of the slur in the chord is not important: the slur is attached to the chord, not to any individual notes in the chord.

Dashed and dotted slurs

Layout parameters can be prefixed to the starting token of a slur to display the slur as dotted or dashed lines.

The layout prefix !LO:S: means that the layout parameter applies to a slur in the next data token. To display the slur as a dashed line, add the parameter dash which is equivalent to dash=true. To display the slur as a dotted line, add the parameter dot.

Multiple slurs

Multiple slurs on notes or chords can be addressed individually within the layout parameter by adding the n parameter set to the number of the slur. For example, if there are two slurs, then the first one can be referenced by adding n=1 to the layout parameter, and n=2 for the second one.

Coloring slurs

Slurs can be colored by giving an SVG color as a color layout parameter:

Phrase marks

Phrase marks are similar to slurs but are used to mark analytic phrases in **kern data. The default rendering style for phrasing is an open bracket:

Phrase rendering styles

Phrase marks can be rendered in a variety of styles and colors as illustrated below:

Default rendering style for phrases marks

An RDF record can be used to set the default rendering style of phrase marks.

Various rendering styles:

style result
brack bracket
dot dotted bracket
dash dashed bracket
none no bracket
open open bracket (default)
slur slur
slur dot dotted slur
slur dash dashed slur

The default phrase style can also be given a color as in the above example.

Here is an example of suppressing phrase marks by default, but giving a local style to the last phrase:

Cross-staff slurs

Cross-staff slurs (in particular for piano music), can be created using an RDF record as in the following example:

The RDF record N = linked is used to create the link between the two slur endpoints in the data. The link signifier must come immediately in front of the tie signifiers in the data.