Hi Lukas, This snippet basically works by defining an Exception for each single Polychord structure you’re going to use. This is not even done in a systematic way, so you could easily add other Exceptions along the way. In my opinion the main issue here is that the chord naming strategy of first transforming theoretical respesentation of a chord into a bunch of notes to then have some function try to make sense of that and turn in again into a theoretical representation of a chord is absolute madness if we do actually already know how this chord should look.
Suppose we had a different way of specifying chords not as a bunch of notes, but in a representation that preserves the theoretical meaning of such a chord. Then ChordNames would simply have to take care of formatting. In the current design we have a huge function that is responsible for both interpreting the notes as well as formatting the chord. The other way we could have two functions, one that formats chords and another that interprets notes as chords. This way we could have a transposable syntax to say e.g. des|c to specify Db major over C major or even g|dis:m|cis:m or something and would be able to quickly get the chord specification we actually want, instead of having to do something like c:3.5.9-.11.13- or even something like this cis,:m3.5.9.11.13.19-.21.23-. Best, Valentin Am Dienstag, 9. August 2022, 12:28:25 CEST schrieb Lukas-Fabian Moser: > Hi Kieren, > > > What's the current best snippet for rendering polychords? I know the GSoC > > chord stuff is still in air traffic control, but the snippet found > > at<https://lists.gnu.org/archive/html/lilypond-user/2012-02/txtmAr2kxZ1Uy > > .txt> definitely doesn't work, and is likely far from optimal given the > > decade-plus of advances in the codebase. > I don't have much time at the moment, but as a first pointer: > > The snippet worked as late as 2.18.2. What broke it after that is that > the meaning of c1:5.9-.11.13- in chordmode has changed: > > \version "2.18.2" > > \chordmode { > c1:5.9-.11.13- > } > > yields > > in 2.18.2, whereas in 2.19.83, it yields > > The culprit seems to be the added support for power chords: In 2.18.2, > c1:5 generated a c major chord; now it only generates a power chord > fifth. My guess would be that Valentin V.'s chord name cleanup in > 78225bc1b386e12dc was the point when this changed. > > Lukas
signature.asc
Description: This is a digitally signed message part.
