lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: adding chordmode chord modifiers


From: Thomas Morley
Subject: Re: adding chordmode chord modifiers
Date: Mon, 7 Sep 2020 21:47:55 +0200

Am Mo., 7. Sept. 2020 um 18:32 Uhr schrieb Randy Josleyn
<randy.josleyn@gmail.com>:
>
> Hi list,
>
> Using my extremely limited general programming knowledge, I found in the 
> scheme file chord-entry.scm that the chord modifiers m, maj, sus, and so on 
> are defined. Is it possible to add to this list? I want to write "add9" 
> chords like `c:add9`, which would be equivalent to writing `<c e g d'>` or 
> `c:3.5.9` in chordmode (plus the chord exceptions snippet in the NM to add 
> the "add"). However, the latter methods are too verbose for me.
>
> My use case is for printing chord symbols above the staff in a lead sheet.
>
> I checked the snippets repository for "chord modifier", "chord*", and "add9", 
>  but I didn't see anything relevant.
>
> Is there a way to create the "c:add9" syntax to get "Cadd9" to print as a 
> chord symbol? Any help would be appreciated!
>
> Regards,
>
>
> Randy

Speaking only for me I'd be fine with:

mus = \chordmode {
  \set additionalPitchPrefix = "add"
  c:3.5.9
}

<<
  \new ChordNames \mus
  \new Staff \mus
>>

But of course you can go for c:add9, see p.e. Aaron's reply.

My own take is a little different.
It's restricted to "add9", which will _remove_ a 7th pitch-step and no
need for chord-exceptions

%% c/p from chord-ignatzek-names.scm
#(define (pitch-step p)
  "Musicological notation for an interval.  Eg. C to D is 2."
  (+ 1 (ly:pitch-steps p)))

%% c/p from chord-ignatzek-names.scm
#(define (remove-step x ps)
  "Copy PS, but leave out the Xth step."
  (if (null? ps)
      '()
      (let* ((t (remove-step x (cdr ps))))
        (if (= (- x 1) (ly:pitch-steps (car ps)))
            t
            (cons (car ps) t)))))

%% proc to _remove_ 7
#(define (add9-modifier pitches)
  (remove-step (pitch-step (ly:make-pitch 0 6 0)) pitches))

%% let lily know about it
chordmodifiers = #(cons (cons 'add  add9-modifier) default-chord-modifier-list)

mus = \chordmode {
  \set additionalPitchPrefix = "add"
  c:3.5.9
  c:add9
}

<<
  \new ChordNames \mus
  \new Staff \mus
>>

Cheers,
  Harm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]