Skip to content

New music command \= is not parsed correctly #178

@ksnortum

Description

@ksnortum

In version 2.20, LilyPond introduced the \= command, which is used to assign IDs to slurs so thay can cross or line up correctly in a chord. For example:

\fixed c' { c\=1( d\=2( e\=1) f\=2) }
\fixed c' { <c\=A( e\=2^(>4 <d\=A) f\=2)> }

ly.lex does not parse this command correctly, leading to this issues in Frescobaldi: frescobaldi/frescobaldi#1964. It looks like new classifications will be needed, perhaps called "SlurAssignment" and "SlurId".

Using a simple Python script and the above LilyPond source code, you can see the problem:

import sys
import ly.lex

with open(sys.argv[1]) as f:
	txt = f.read()

for t in ly.lex.state("lilypond").tokens(txt):
	print(t, t.__class__.__name__)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions