Subject: Accords, armure et altérations

From: Philippe Neyrat <[email-masked]>
Date: Tue, 17 Dec 2013 12:55:13 +0100

Bonjour à tous,

Dans le but de me fabriquer un aide-mémoire, je construis en ce moment 
un document
qui répertorie, pour les gammes majeures, leurs mineures naturelles 
relatives,
ainsi que les relatives mineures harmoniques, les accords qui 
constituent ces différentes gammes.
Ces accords apparaissent donc dans l'ordre de la gamme, et leurs noms 
sont affichés, après quoi quelques accords plus exotiques sont affichés.

J'utilise une structure du type :

sol =
{
   \key g \major
   \chordmode
   {
     g1:maj7  a:m7      b:m7     c:maj7   d:7     e:m7         
fis:3-.5-.7       \break
     g:6.9    a:m6.9    b:m7.9-  c:6.9    d:6.9   e:m6-.7.9    
fis:3-.5-.7.9-    \break

   } % chordmode "sol"
} % sol

%%%%%%%%%%%%%%%%% ... %%%%%%%%%%%%%%%%%%%%%

\score
{
<<
     \new ChordNames \sol
     \new Staff \sol
   \header { piece = "Sol majeur et Mi mineur" }

} %score

Pour les gammes contenant des altérations (cette Sol majeure par exemple),
  je désire faire apparaître l'armure à la clé en début de portée,
mais aussi les altérations des accords, qui ne s'affichent pas par 
défaut dans la version 2.16.2.
j'ai tenté dans mon layout :
\layout
{
  \context
  {
    \Score
    \remove "Bar_number_engraver"
    \remove "Time_signature_engraver"
  } % context Score

  \context
  {
    \Staff
    \consist "Accidental_engraver" <--------- Génère une erreur !!!
  } % context Staff

} %layout

mais ça génère une erreur...

J'ai fouillé dans la doc, mais je n'ai rien trouvé concernant 
l'affichage forcé des altérations dans les accords.
Je suppose donc qu'il faut bien modifier une propriété d'un contexte 
(lequel ?), mais je ne sais pas faire...
Le \remove fonctionne, pas le \consist.

Auriez-vous une idée ?

Par ailleurs, si je voulais, par exemple, colorer une note particulière 
d'un accord, est-ce que la structure \chordmode serait appropriée ? Ou 
serais-je contraint d'utiliser un truc du type < ceg > en "bidouillant" 
la note désirée ? Idem pour mettre entre parenthèse une note, pour 
rendre la 9ème, la 11ème etc...

Merci.

Philippe

-- 
Propulsé par l'Association Sud-Ouest.org
Plateforme Libre d'hébergement mail à prix libre
	https://www.sud-ouest.org

---

From: Eluze <[email-masked]>
Date: Tue, 17 Dec 2013 04:00:35 -0800 (PST)

Phil wrote
>  \consist "Accidental_engraver" <--------- Génère une erreur !!! 

\consists !

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Accords-armure-et-alterations-tp7580702p7580703.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philippe Neyrat <[email-masked]>
Date: Tue, 17 Dec 2013 13:07:09 +0100

Le 17/12/2013 13:00, Eluze a écrit :
> Phil wrote
>    
>>   \consist "Accidental_engraver"<--------- Génère une erreur !!!
>>      
> \consists !
>
> Eluze
>
>    

Bon ben voilà...
Pffff...

Merci !

Philippe

---

From: Philippe Neyrat <[email-masked]>
Date: Tue, 17 Dec 2013 13:14:00 +0100

Ça n'a pas l'effet escompté,
que j'ajoute le \consists dans le layout :

  \context
  {
    \Staff
    \consists "Accidental_engraver"
  } %context "Staff"

ou dans le bloc :

\score
{

<<
     \new ChordNames \sol
     \new Staff \with { \consists "Accidental_engraver" } \sol

} %score

Les altérations qui sont à l'armure ne sont pas reportées sur la portée, 
dans les accords...
Comment forcer leur gravure ?

Merci.

Philippe.

---

From: Eluze <[email-masked]>
Date: Tue, 17 Dec 2013 08:33:34 -0800 (PST)

Phil wrote
> Comment forcer leur gravure ?

peut-être il y a un stile convenant ici - p.ex. forget?

http://lilypond.org/doc/v2.17/Documentation/notation-big-page#automatic-accidentals

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Accords-armure-et-alterations-tp7580702p7580706.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philippe Neyrat <[email-masked]>
Date: Tue, 17 Dec 2013 20:08:14 +0100

> http://lilypond.org/doc/v2.17/Documentation/notation-big-page#automatic-accidentals
Je les ai tous essayés un à un dans le contexte Staff, aucun ne rend le 
résultat escompté :-(
"teaching" et "dodecaphonic" pourraient convenir s'ils ne rendaient les 
accords illisibles en ajoutant des
bécarres (éventuellement parenthésés !) à chaque note non altérée.

J'en déduis que lilypond ne permet pas d'afficher à la fois l'armure à 
la clef ET les altérations des accords.
Mais ça me semble bizarre de la part de lilypond...

Ou alors je cherche où il ne faut pas : ce ne sont pas les altérations 
"accidentelles" que je cherche à graver, mais justement celles de 
l'armure, et ce pour chaque accord...

C'est rallant, parce que ça m'oblige à créer une portée isolée avec la 
gamme alors que l'ordre des accords
suffirait (pour avoir sous les yeux l'armure à la clef, la gamme avec 
son nom, sa relative mineure avec son nom, sa relative mineure 
harmonique avec son nom et les accords ordonnés qui les constituent avec 
leurs noms bien sagement installés au dessus).

J'ai vu probablement trop grand...

En tous cas merci pour les réponses, et si vous avez d'autres pistes...
Ou même si vous voulez me faire un retour sur mon bout de code joint
(simplifié et réindenté différemment), n'hésitez pas...

Philippe

---

From: Philippe Neyrat <[email-masked]>
Date: Tue, 17 Dec 2013 20:31:20 +0100

Erratum !

Voila le bout de code qui compile chez moi...
J'avais oublié d'enlever des références...

Merci.

Philippe

---

From: Eluze <[email-masked]>
Date: Tue, 17 Dec 2013 13:00:03 -0800 (PST)

Phil wrote
> l'armure, et ce pour chaque accord...

jen'suis pas sûr de bien comprendre - est-ce tu peux nous envoyer un scan
d'un ou deux accords avec armature et clef et altération!?

merci
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Accords-armure-et-alterations-tp7580702p7580712.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philippe Neyrat <[email-masked]>
Date: Wed, 18 Dec 2013 09:40:12 +0100

Bonjour à tous,

Voilà en pièce jointe un résultat de ce que j'obtiens...
Ce que je veux, c'est afficher, pour chaque accord constitutif d'une 
gamme, à la fois l'armure à la clef et les altérations des accords qui 
ne sont pas accidentelles.

Sur le pdf joint, ces altérations ne sont pas imprimées sur les accords :

Par exemple, le fa dièse de l'accord de Gmaj7 ne s'affiche pas, puis 
qu'il est à l'armure. C'est justement ce comportement que je voudrais 
changer, dans un but pédagogique.
Tout le reste me convient...

Merci !

Philippe

---

From: Eluze <[email-masked]>
Date: Wed, 18 Dec 2013 05:00:10 -0800 (PST)

Phil wrote
> changer, dans un but pédagogique.

nokeycan=\once{
  \set printKeyCancellation = ##t
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \override Staff.KeyCancellation #'break-visibility = #all-invisible
}
\chordmode{
  \key g \major \grace s16 \nokeycan \key c \major g1:maj7
  \key g \major \grace s16 \nokeycan \key c \major c1:maj7
  \key g \major \grace s16 \nokeycan \key c \major d1:7
  \key g \major \grace s16 \nokeycan \key c \major e1:m7
  \key g \major \grace s16 \nokeycan \key c \major fis1:3-.5-.7.9-
}
\layout{
  \context{
    \Staff \override TimeSignature #'stencil = ##f
  }
}

est-ce la bonne direction (faudrait écrire une fonction [scheme] ...)

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Accords-armure-et-alterations-tp7580702p7580718.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philippe Neyrat <[email-masked]>
Date: Wed, 18 Dec 2013 14:23:55 +0100

> est-ce la bonne direction (faudrait écrire une fonction [scheme] ...)

Malheureusement non. :-(

Ce que ça produit, c'est réécrire l'armure avant chaque accord.

Ce que je cherche (désolé, je suis pas doué pour me faire comprendre),
c'est que l'armure figure bien en début de portée, puis que les accords 
s'affichent avec toutes leurs altérations ( comme si l'armure n'était 
pas là ).
En effet :
Si j'enlève l'armure, j'ai bien toutes mes altérations sur mes accords, 
mais si je l'indique,
seules les altérations accidentelles des accords s'affichent...
... Ce qui est normal pour une partition musicale,
mais dans ce cadre "pédagogique", ce n'est pas ce que je cherche.

Merci quand même infiniment pour l'aide.

Philippe

---

From: Eluze <[email-masked]>
Date: Wed, 18 Dec 2013 05:43:30 -0800 (PST)

Phil wrote
> Ce que ça produit, c'est réécrire l'armure avant chaque accord.

bien sur - mais on peut supprimer ça (ce n'était qu'un début!)

essayons:

\language nederlands

myDef =
#(define-music-function (parser location music) (ly:music?) #{
  \key g \major \grace s16 \nokeycan \key c \major $music
#})

nokeycan=\once{

sol= \chordmode {
  g1:maj7 a:m7 b:m7 
  c:maj7 d:7 e:m7 fis:3-.5-.7
  g:6.9 a:m6.9 b:m7.9- c:6.9 d:6.9 e:m6-.7.9 fis:3-.5-.7.9-
}
\new StaffGroup <<
  \new ChordNames \sol
  \myDef \sol

\layout{
  \context{

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Accords-armure-et-alterations-tp7580702p7580720.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philippe Neyrat <[email-masked]>
Date: Wed, 18 Dec 2013 18:29:35 +0100

>    \override Staff.KeyCancellation #'break-visibility = #all-invisible

Ça a l'air de fonctionner ! Je n'ai donc plus qu'à modifier la référence 
à la clé de sol pour les autres
gammes, peut-être en renommant chaque fonction en :

Delete_nom_de_l-armmure =
#(define-music-function (parser location music) (ly:music?) #{
   \key<cle correspondant à l'armure à éliminer>  \grace s16 \nokeycan \key c \major $music
#})

J'essaie et je fais des retours.

Mille mercis !

Phlippe

---

From: Eluze <[email-masked]>
Date: Wed, 18 Dec 2013 14:56:31 -0800 (PST)

Phil wrote
>    \key&lt;cle correspondant à l'armure à éliminer&gt;  \grace s16
> \nokeycan \key c \major $music
> #})
> 

on peut passer 2 arguments à la fonction:

myDef=#(
  define-music-function (parser location key music) (ly:music? ly:music?) #{
    $key 
    \grace s16 \nokeycan \key c \major $music
#})

mais je ne vois pas trop à quoi ça sert - on obtient toujours le même
résultat, non!?

\myDef {\key c \major} \sol
\myDef {\key d \major} \sol

Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Accords-armure-et-alterations-tp7580702p7580722.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Philippe Neyrat <[email-masked]>
Date: Thu, 19 Dec 2013 12:12:28 +0100

> \myDef {\key d \major} \sol
Euh... Je sais pas vraiment, j'ai du mal à comprendre la fonction  (je 
ne comprends pas scheme).

Mais effectivement, c'est plus simple pour moi d'indiquer de quelle 
armure je veux voir disparaître les effets en passant la "key" concernée 
en argument, plutôt que d'écrire une fonction différente par armure.

Ma syntaxe pour l'appel de cette nouvelle fonction sera donc un truc du 
genre :

\mydef {\key g \major} \sol
\mydef {\key a \major} \la
\mydef {\key ees \minor} \mib_min

etc.

Mais déjà, la première solution a l'air de donner le résultat que je 
cherche, à savoir :

1°) - Graver l'armure de la gamme en début de portée,
2°) - annuler ses effets sur tout ce qui suit,
3°) - afficher les accords constitutifs de la gamme dont l'armure figure 
au début avec toutes leurs altérations, accidentelles ou pas.

Je continue à fouiller ça et j'essaie cette nouvelle fonction...

Merci infiniment.

Philippe

---

From: Philippe Neyrat <[email-masked]>
Date: Thu, 19 Dec 2013 20:58:48 +0100

Bonsoir à tous,

Voilà, ça fonctionne parfaitement.

J'utilise donc :

nokeycan=\once{

Stop_armor_effect=#(
    define-music-function (parser location key music) (ly:music? 
ly:music?) #{
      $key
      \grace s16 \nokeycan \key c \major $music
#})

et l'appel se fait en :

\score
{
<<                % pour les accords constitutifs de mi mineur harmonique,
                        % qui a la même armure que sol majeur
     \new ChordNames \mimh  % liste des accords de mi mineur harmonique
     \new Staff \Stop_armor_effect {\key g \major} \mimh
   \header { piece = "Mi mineur harmonique" }

} % score

Mille fois merci !

Philippe