Subject: PowerChords

From: Voltrane <[email-masked]>
Date: Tue, 15 Jun 2021 23:04:45 -0700 (MST)

Bonjour,

J’essaie de faire une partition de jazz dans laquelle ne figurent comme
réalisées que les tierces et les septièmes des accords (sur Do majeur 7,
n’afficher que mi et si).
J’essaie d’utiliser PowerChords mais il me rajoute toujours la fondamentale
même si je n’indique que 3 et 7. Comment éviter cela?
Merci

--
Sent from: http://lilypond-french-users.1298960.n2.nabble.com/

---

From: Christophe Pochon <[email-masked]>
Date: Wed, 16 Jun 2021 09:11:41 +0200

Bonjour,

Est-ce qu'on pourrait avoir un petit bout de code pour mieux comprendre ce
que vous cherchez à faire ?
La commande powerChords ne sert pas du tout à cela. Au contraire elle
génère des accords sans tierce....
Si je comprends bien ce que vous voulez faire, je pense qu'il faudra que
vous indiquiez manuellement les notes à jouer. Exemple :

%%%%%%%%%
\version "2.20.0"

global = {
  \key c \major
  \time 4/4
}

chordNames = \chordmode {
  \global
d1:m7
g:7
c:maj7
q
}

melody = \relative c' {
  \global
  <f c'>1
  <f b>
  <e b'>
  q
}

\score {
  <<
    \new ChordNames \chordNames
    \new Staff { \melody }
  \layout { }
}
%%%%%%%%%%%

Cordialement,

Christophe Pochon

---

From: Marc Swake <[email-masked]>
Date: Wed, 16 Jun 2021 10:17:38 +0200

Bonjour,

Merci de votre réponse.
Voici un exemple de ce que j’ai codé:
\powerChords c1: 3.7 | \powerChords f:3.7 | \powerChords bes:3.7 | \powerChords a: 3.7 \break 
Je m’attendais à voir affiché
mi si; la mi; re la; etc.
Lilypond le fait mais inclus d’office  la tonique dans la réalisation de l’accord affichée.
Peut être est-ce effectivement une erreur de ma part dans la compréhension de ce que fait powerChords!

> Le 16 juin 2021 à 09:11, Christophe Pochon <[email-masked]> a écrit :
> 
> Bonjour,
> 
> Est-ce qu'on pourrait avoir un petit bout de code pour mieux comprendre ce que vous cherchez à faire ?
> La commande powerChords ne sert pas du tout à cela. Au contraire elle génère des accords sans tierce.... 
> Si je comprends bien ce que vous voulez faire, je pense qu'il faudra que vous indiquiez manuellement les notes à jouer. Exemple :
> 
> %%%%%%%%%
> \version "2.20.0"
> 
> global = {
>   \key c \major
>   \time 4/4
> }
> 
> Le mer. 16 juin 2021 à 08:04, Voltrane <[email-masked] <mailto:[email-masked]>> a écrit :
> Bonjour,
> 
> Sent from: http://lilypond-french-users.1298960.n2.nabble.com/ <http://lilypond-french-users.1298960.n2.nabble.com/>
>

---

From: Gloops <[email-masked]>
Date: Wed, 16 Jun 2021 04:31:42 -0700 (MST)

Bonjour ! Un powerchord ou accord de puissance est normalement constitué
d'une fondamentale et de sa quinte...
Gilles

---

From: Voltrane <[email-masked]>
Date: Wed, 16 Jun 2021 09:39:23 -0700 (MST)

Bonjour,

merci de vos réponses.
En fait, j'avais cru comprendre que powerChords permettait de construire des
accords non standards. 
Quand j'écris par exemple \powerChords f:3.7, j'obtiens bien ce que je veux
comme notes affichées (tierce et septième) sauf qu'il y a aussi le fa (la
tonique) que je n'ai pas demandée (elle est donc mise par défaut et je
cherche à m'en débarrasser)...
Sans doute une mauvaise compréhension de ma part l'utilisation de
powerchords: je vais réfléchir à une autre solution!

---

From: Christophe Pochon <[email-masked]>
Date: Wed, 16 Jun 2021 18:50:35 +0200

Ok,

Comme dit précédemment, powerChords sert à générer des.... power chords....
C'est-à-dire des accords uniquement constitués de la fondamentale et la
quinte de l'accord. Dès que vous tentez de créer un autre accord dans le
mode powerChords, Lilypond génère un accord "normal".

Ceci dit j'avais donc bien compris ce que vous cherchiez à faire. Ce qu'il
faudrait c'est une petite fonction qui ne garderait que la tierce et la
septième des accords. Ça doit être faisable, j'entrevois diverses façons
d'y parvenir (en modifiant le "canonical chord" avec seulement 3 et 7 à
l'intérieur; ou en filtrant le résultat de chordname pour ne garder que la
2ème et la 4ème note de l'accord.... clin d'oeil appuyé à Jean qui saurait
très certainement créer cette fonction), mais je n'ai pas (encore) les
compétences suffisantes pour le faire.

Ceci dit, la solution que j'ai proposée dans ma première réponse fonctionne
aussi et a l'avantage de permettre de mettre directement les renversements
logiques que ferait un pianiste.

Christophe Pochon

---

From: Marc Swake <[email-masked]>
Date: Wed, 16 Jun 2021 19:20:20 +0200

Après relecture du sujet dans la documentation, je viens rapidement de faire 2 essais… un peu« au pif » mais à peu près concluant:

c1:maj7 ^1.5
et
 \powerChords c1:3.7+^1 

Dans les 2 cas ça marche et le résultat est le même: mi et si seulement
Seul défaut: du coup le nom affiché  de l’accord change! 
Dans le premier cas l’accord est renommé E  et dans le second cas E5.

Pour mon objectif ce n'est pas trop grave, car il s’agit seulement de visualiser facilement l’enchainement tierces-septièmes d’une grille de jazz dans un but didactique. On peut renommer les accords de la grille à la main après.

> Le 16 juin 2021 à 18:50, Christophe Pochon <[email-masked]> a écrit :
> 
> Ok,
> 
> Comme dit précédemment, powerChords sert à générer des.... power chords.... C'est-à-dire des accords uniquement constitués de la fondamentale et la quinte de l'accord. Dès que vous tentez de créer un autre accord dans le mode powerChords, Lilypond génère un accord "normal".
> 
> Ceci dit j'avais donc bien compris ce que vous cherchiez à faire. Ce qu'il faudrait c'est une petite fonction qui ne garderait que la tierce et la septième des accords. Ça doit être faisable, j'entrevois diverses façons d'y parvenir (en modifiant le "canonical chord" avec seulement 3 et 7 à l'intérieur; ou en filtrant le résultat de chordname pour ne garder que la 2ème et la 4ème note de l'accord.... clin d'oeil appuyé à Jean qui saurait très certainement créer cette fonction), mais je n'ai pas (encore) les compétences suffisantes pour le faire.
> 
> Ceci dit, la solution que j'ai proposée dans ma première réponse fonctionne aussi et a l'avantage de permettre de mettre directement les renversements logiques que ferait un pianiste. 
> 
> Christophe Pochon
> 
> 
> 
> Le mer. 16 juin 2021 à 10:17, Marc Swake <[email-masked] <mailto:[email-masked]>> a écrit :
> Bonjour,
> 
> Merci de votre réponse.
>> Le 16 juin 2021 à 09:11, Christophe Pochon <[email-masked] <mailto:[email-masked]>> a écrit :
>> 
>> Bonjour,
>>

---

From: Christophe Pochon <[email-masked]>
Date: Wed, 16 Jun 2021 21:41:00 +0200

Bravo !

Je ne comprends pas du tout comment ça fonctionne ? D'où sort cette idée de
faire ^1.5 ?

En tout cas, ça semble fonctionner.

Christophe Pochon

Le mer. 16 juin 2021 à 19:20, Marc Swake <[email-masked]> a écrit :

> Après relecture du sujet dans la documentation, je viens rapidement de
> faire 2 essais… un peu« au pif » mais à peu près concluant:
>
> c1:maj7 ^1.5
> et
>  \powerChords c1:3.7+^1
>
> Pour mon objectif ce n'est pas trop grave, car il s’agit seulement de
> visualiser facilement l’enchainement tierces-septièmes d’une grille de jazz
> dans un but didactique. On peut renommer les accords de la grille à la main
> après.
>
> Comme dit précédemment, powerChords sert à générer des.... power
> chords.... C'est-à-dire des accords uniquement constitués de la
> fondamentale et la quinte de l'accord. Dès que vous tentez de créer un
> autre accord dans le mode powerChords, Lilypond génère un accord "normal".
>
> Ceci dit, la solution que j'ai proposée dans ma première réponse
> fonctionne aussi et a l'avantage de permettre de mettre directement les
> renversements logiques que ferait un pianiste.
>
> Christophe Pochon
>
>
>
>> Peut être est-ce effectivement une erreur de ma part dans la
>> compréhension de ce que fait powerChords!
>>
>>

---

From: Marc Jacob de Cordemoy <[email-masked]>
Date: Thu, 17 Jun 2021 07:00:38 +0200

Sur cette page de la documentation :

http://lilypond.org/doc/v2.19/Documentation/notation/chord-mode#extended-and-altered-chords

Marc

> Le 16 juin 2021 à 21:41, Christophe Pochon <[email-masked]> a écrit :
> 
> 
> Bravo !
> 
> Je ne comprends pas du tout comment ça fonctionne ? D'où sort cette idée de faire ^1.5 ?
>

---

From: Christophe Pochon <[email-masked]>
Date: Thu, 17 Jun 2021 07:52:43 +0200

Ah oui ! J'avais oublié cette possibilité. Merci.

De vos deux solutions, la première est la meilleure. Dans la deuxième, la
commande \powerChords est inutile, le résultat sera le même avec ou sans.

Une solution pour avoir les bons noms affichés :

%%%%%%
\version "2.20.0"

global = {
  \key f \minor
  \time 4/4
}

f1:m7
bes:m7
es:7
as:maj7
des:maj7
g:7
c:maj7
}

chordNamesBis = \chordmode {
  \global
f1:m7^1.5
bes:m7^1.5
es:7^1.5
as:maj7^1.5
des:maj7^1.5
g:7^1.5
c:maj7^1.5
}

\score {
  <<
    \new ChordNames \chordNames
    \new Staff { \chordNamesBis }
  \layout { }
}
%%%%%%%%%%%%

Christophe Pochon

Le jeu. 17 juin 2021 à 07:00, Marc Jacob de Cordemoy <[email-masked]>
a écrit :

>> Ceci dit j'avais donc bien compris ce que vous cherchiez à faire. Ce
>> qu'il faudrait c'est une petite fonction qui ne garderait que la tierce et
>> la septième des accords. Ça doit être faisable, j'entrevois diverses façons

---

From: Marc Jacob de Cordemoy <[email-masked]>
Date: Thu, 17 Jun 2021 17:20:52 +0200

Mais c’est moi qui vous remercie! J’ai appris que je me plantais avec powerChords!
Je vais essayer la solution pour les noms « asap »
Cordialement.

Marc

> Le 17 juin 2021 à 07:52, Christophe Pochon <[email-masked]> a écrit :
> 
> 
> De vos deux solutions, la première est la meilleure. Dans la deuxième, la commande \powerChords est inutile, le résultat sera le même avec ou sans.
> 
>> Le jeu. 17 juin 2021 à 07:00, Marc Jacob de Cordemoy <[email-masked]> a écrit :

---

From: Jean Abou Samra <[email-masked]>
Date: Thu, 17 Jun 2021 21:44:07 +0200

> même si je n’indique que 3 et 7. Comment éviter cela?

Scheme à la rescousse :

\version "2.22.1"

#(define (index-list? x)
    (and (list? x)
         (every index? x)))

selectNotes =
#(define-music-function (notes music) (index-list? ly:music?)
    (for-some-music
      (lambda (m)
        (if (music-is-of-type? m 'event-chord)
            (let loop ((i 1)
                       (remaining-elts (ly:music-property m 'elements))
                       (remaining-notes notes)
                       (acc '()))
              (cond
                ((or (null? remaining-notes)
                     (null? remaining-elts))
                 (ly:music-set-property! m 'elements (reverse! acc))
                 #t)
                ((eqv? i (car remaining-notes))
                 (loop (1+ i)
                       (cdr remaining-elts)
                       (cdr remaining-notes)
                       (cons (car remaining-elts)
                             acc)))
                (else
                  (loop (1+ i)
                        (cdr remaining-elts)
                        remaining-notes
                        acc))))
            #f))
      music)
    music)

\selectNotes 2,4 \chordmode {
   d1:m7
   g:7
   c:maj7
   q
}

Cordialement,
Jean

---

From: Voltrane <[email-masked]>
Date: Fri, 18 Jun 2021 11:32:28 -0700 (MST)

Wow de chez wow!
Rien que ça?

Je vais faire une tentative!
Merci!

---

From: Gloops <[email-masked]>
Date: Sat, 19 Jun 2021 04:12:49 -0700 (MST)

Excellent Jean bravo !!!