\override NoteHead sélectif

Bonjour,

Est-il possible de faire en sorte que les notes avec une tête normale (ronde)
ne soient pas affichées mais que celles sous forme de croix le soient ?

Merci.

···

--
Cordialement, Daniel Cartron
« Plus on constate qu'on n'est pas comme tout le monde, plus on veut être
comme tout le monde. »
François Cavanna - Coups de sang

Bonjour Daniel,

Essaie :

\version "2.16.2"

myCross = #(define-music-function (parser location mus) (ly:music?)
#{
\revert NoteHead #'transparent { $mus }
\override NoteHead #'transparent = ##t
#})

\relative c' {
\override NoteHead #'transparent = ##t
\override NoteHead #'style = #'cross
c d e \myCross { f } g a \myCross { b c }
}

Cordialement,

Pierre

···

Le 4 avril 2015 07:49, Daniel Cartron <****@****> a écrit :

Bonjour,

Est-il possible de faire en sorte que les notes avec une tête normale (ronde)
ne soient pas affichées mais que celles sous forme de croix le soient ?

Merci.

--
Cordialement, Daniel Cartron
« Plus on constate qu'on n'est pas comme tout le monde, plus on veut être
comme tout le monde. »
François Cavanna - Coups de sang


liste de diffusion lilypond-user-fr
lilypond-user-fr@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

Le samedi 4 avril 2015 11:00:21, vous avez écrit :

Bonjour Daniel,

Essaie :

Salut Pierre,

Très futé comme fonction mais comme je ne pensais pas que tu me proposerais ça
j'ai omis une info importante. Je vais afficher la musique de deux façons
différentes :
- partition normale, toutes les têtes de notes visibles ;
- tablature avec seules les croix visibles.

La tablature c'est la mélodie sur laquelle j'ai simplement rajouté des markups
en scheme et que j'affiche sur une portée à 1 ligne où tout ce qui est note etc
est en override transparent.

Donc ce qu'il me faut c'est une fonction mycross pour mettre une note en cross
(mais je me demande si c\cross ne serait pas plus pratique, car concerne des
notes isolées. Et deux contextes qui ont des propriétés différentes. Je sens
d'ici que ça va nécessiter du scheme...

À moins que tu n'aies une idée encore plus géniale :wink:

···

--
Cordialement, Daniel Cartron
« Je suis contre les femmes, tout contre. »
Sacha Guitry

Salut Pierre,

Très futé comme fonction mais comme je ne pensais pas que tu me
proposerais ça
j'ai omis une info importante. Je vais afficher la musique de deux façons
différentes :
- partition normale, toutes les têtes de notes visibles ;
- tablature avec seules les croix visibles.

D'où l'importance du mini exemple... :wink:

La tablature c'est la mélodie sur laquelle j'ai simplement rajouté des
markups
en scheme et que j'affiche sur une portée à 1 ligne où tout ce qui est
note etc
est en override transparent.

Donc ce qu'il me faut c'est une fonction mycross pour mettre une note en
cross
(mais je me demande si c\cross ne serait pas plus pratique, car concerne
des
notes isolées. Et deux contextes qui ont des propriétés différentes. Je
sens
d'ici que ça va nécessiter du scheme...

À moins que tu n'aies une idée encore plus géniale :wink:

Restons simples :

\version "2.16.2"

maCroix = #(define-music-function (parser location mus) (ly:music?)
          #{
             \tag #'MaCroix {
               \revert NoteHead #'transparent
               $mus
               \override NoteHead #'transparent = ##t
             }
             \tag #'Standard { $mus }

          #})

maMusique = \relative c' {
  c d e
  \maCroix { f }
  g a
  \maCroix { b c }
}

\new Staff {
  \keepWithTag #'Standard
  \maMusique
}

<<
  \new Staff {
    \override NoteHead #'transparent = ##t
    \override NoteHead #'style = #'cross
    \keepWithTag #'MaCroix
    \maMusique
  }
  \new TabStaff {
    \keepWithTag #'Standard
    \maMusique
  }

Cordialement,
Pierre

···

Le 4 avril 2015 12:12, Daniel Cartron <****@****> a écrit :

Oups, lu un peu vite, donc:

\version "2.16.2"

maCroix = #(define-music-function (parser location mus) (ly:music?)
#{
\tag #'MaCroix {
\revert NoteHead #'transparent
$mus
\override NoteHead #'transparent = ##t
}
\tag #'Standard { $mus }

#})

maMusique = \relative c' {
c d e
\maCroix { f }
g a
\maCroix { b c }
}

\new Staff {
\keepWithTag #'Standard
\maMusique
}

\new DrumStaff
\with { \override StaffSymbol #'line-count = #1 }
{
\override NoteHead #'transparent = ##t
\override Stem #'stencil = ##f
\override Accidental #'stencil = ##f
\override NoteHead #'style = #'cross
\keepWithTag #'MaCroix
\maMusique
}

Dis-moi si ça ressemble à ce que tu souhaites; au besoin, envoie moi un mini exemple du résultat exact souhaité et je modifierai la fonction dans l'après-midi.

Cordialement,

Pierre

···

Le 4 avril 2015 13:13, Pierre Perol-Schneider <****@****> a écrit :

Le 4 avril 2015 12:12, Daniel Cartron <****@****> a écrit :

Salut Pierre,

Très futé comme fonction mais comme je ne pensais pas que tu me proposerais ça
j'ai omis une info importante. Je vais afficher la musique de deux façons
différentes :

  • partition normale, toutes les têtes de notes visibles ;
  • tablature avec seules les croix visibles.

D'où l'importance du mini exemple... :wink:

La tablature c'est la mélodie sur laquelle j'ai simplement rajouté des markups
en scheme et que j'affiche sur une portée à 1 ligne où tout ce qui est note etc
est en override transparent.

Donc ce qu'il me faut c'est une fonction mycross pour mettre une note en cross
(mais je me demande si c\cross ne serait pas plus pratique, car concerne des
notes isolées. Et deux contextes qui ont des propriétés différentes. Je sens
d'ici que ça va nécessiter du scheme...

À moins que tu n'aies une idée encore plus géniale :wink:

Restons simples :

\version "2.16.2"

maCroix = #(define-music-function (parser location mus) (ly:music?)
#{
\tag #'MaCroix {
\revert NoteHead #'transparent
$mus
\override NoteHead #'transparent = ##t
}
\tag #'Standard { $mus }

#})

maMusique = \relative c' {
c d e
\maCroix { f }
g a
\maCroix { b c }
}

\new Staff {
\keepWithTag #'Standard
\maMusique
}

<<
\new Staff {
\override NoteHead #'transparent = ##t
\override NoteHead #'style = #'cross
\keepWithTag #'MaCroix
\maMusique
}
\new TabStaff {
\keepWithTag #'Standard
\maMusique
}

Cordialement,

Pierre

... ou bien même, simplifions encore :

\version "2.16.2"

mc = #(define-music-function (parser location mus) (ly:music?)
#{
\tag #'MaCroix {
\once\revert NoteHead #'transparent
$mus
\override NoteHead #'transparent = ##t
}
\tag #'Standard { $mus }
#})

maMusique = \relative c' {
\mc c d e \mc f g a \mc b c
}

\new Staff {
\keepWithTag #'Standard
\maMusique
}

\new DrumStaff
\with { \override StaffSymbol #'line-count = #1 }
{
\override NoteHead #'transparent = ##t
\override Stem #'stencil = ##f
\override Accidental #'stencil = ##f
\override NoteHead #'style = #'cross
\keepWithTag #'MaCroix
\maMusique
}

A+
Pierre

Le samedi 4 avril 2015 11:00:21, vous avez écrit :

Bonjour Daniel,

Essaie :

\version "2.16.2"

myCross = #(define-music-function (parser location mus) (ly:music?)
          #{
             \revert NoteHead #'transparent { $mus }
             \override NoteHead #'transparent = ##t
          #})

\relative c' {
  \override NoteHead #'transparent = ##t
  \override NoteHead #'style = #'cross
  c d e \myCross { f } g a \myCross { b c }
}

Bon histoire d'être bien clair, un fichier minimaliste.

Je voudrais avoir sur la portés supérieure toutes les notes dont les cross et
sur l'inférieure uniquement les cross, et ce à partir de la mm variable Melody

J'ai fait qq essais et ça le fait pas...

\version "2.16.2"

cross = #(define-music-function (parser location mus) (ly:music?)
          #{
             \override NoteHead #'style = #'cross
             \revert NoteHead #'transparent
                { $mus }
             \revert NoteHead #'transparent
% \override NoteHead #'transparent = ##t
          #})

Melody = \relative c' {
  c d e \cross{ f }
  g a \cross{ b c }
  a b \cross{ b c }
}

melodyStaff = \with {
  \override Fingering #'stencil = #point-stencil
}
%
tabStaff = \with {
  \override StaffSymbol #'line-count = #1
  \remove "Time_signature_engraver"
  \override Clef #'stencil = #ly:text-interface::print
  \override NoteHead #'transparent = ##t
  \override KeySignature #'stencil = ##f
  \override Tie #'stencil = ##f
  \override Stem #'stencil = ##f
  \override Stem #'Y-extent = ##f
  \override Flag #'stencil = ##f
  \override Beam #'stencil = #point-stencil
  \override Dots #'stencil = ##f
  \override TupletBracket #'stencil = ##f
  \override TupletNumber #'stencil = ##f
  \override BreathingSign #'stencil = ##f
  \override KeyChangeEvent #'stencil = #point-stencil
  \override StringNumber #'stencil = #point-stencil
  \override StrokeFinger #'stencil = ##f
  \override StaffSymbol #'staff-space = #1
}

\score {
   <<
    \new Staff \with {
      \melodyStaff
      }
      \Melody
    \new DrumStaff \with {
      \tabStaff
    }
      \Melody
  >>
}

···

--
Cordialement, Daniel Cartron
« Depuis que j'ai une maîtresse que j'aime, je n'ai plus envie de tromper ma
femme. »
Sacha Guitry

Super.

Donc ça donnerait :

\version "2.16.2"

cross = #(define-music-function (parser location mus) (ly:music?)
#{
\tag #'Cross {
\revert NoteHead #'transparent
$mus
\override NoteHead #'transparent = ##t
}
\tag #'Portee {
\override NoteHead #'style = #'cross
$mus
\revert NoteHead #'style
}
#})

Melody = \relative c' {
c d e \cross { f }
g a \cross { b c }
a b \cross { b c }
}

melodyStaff = \with {
\override Fingering #'stencil = #point-stencil
}

tabStaff = \with {
\override StaffSymbol #'line-count = #1
\remove "Time_signature_engraver"
\override Clef #'stencil = ##f
\override KeySignature #'stencil = ##f
\override Stem #'stencil = ##f
\override Accidental #'stencil = ##f
\override NoteHead #'style = #'cross
\override Tie #'stencil = ##f
\override Stem #'stencil = ##f
\override Stem #'Y-extent = ##f
\override Flag #'stencil = ##f
\override Beam #'stencil = ##f
\override Dots #'stencil = ##f
\override TupletBracket #'stencil = ##f
\override TupletNumber #'stencil = ##f
\override BreathingSign #'stencil = ##f
\override KeyChangeEvent #'stencil = ##f
\override StringNumber #'stencil = ##f
\override StrokeFinger #'stencil = ##f
}

<<
\new Staff
\melodyStaff
{
\keepWithTag #'Portee
\Melody
}
\new DrumStaff
\tabStaff
{
\override NoteHead #'transparent = ##t
\keepWithTag #'Cross
\Melody
}

Cordialement,

Pierre

···

Le 4 avril 2015 18:55, Daniel Cartron <****@****> a écrit :

Bon histoire d'être bien clair, un fichier minimaliste.

Je voudrais avoir sur la portés supérieure toutes les notes dont les cross et
sur l'inférieure uniquement les cross, et ce à partir de la mm variable Melody

J'ai fait qq essais et ça le fait pas...

\version "2.16.2"

cross = #(define-music-function (parser location mus) (ly:music?)
#{
\override NoteHead #'style = #'cross
\revert NoteHead #'transparent
{ $mus }
\revert NoteHead #'transparent
% \override NoteHead #'transparent = ##t
#})

Melody = \relative c' {
c d e \cross{ f }
g a \cross{ b c }
a b \cross{ b c }
}

melodyStaff = \with {
\override Fingering #'stencil = #point-stencil
}
%
tabStaff = \with {
\override StaffSymbol #'line-count = #1
\remove "Time_signature_engraver"
\override Clef #'stencil = #ly:text-interface::print
\override NoteHead #'transparent = ##t

\override KeySignature #'stencil = ##f
\override Tie #'stencil = ##f
\override Stem #'stencil = ##f
\override Stem #'Y-extent = ##f
\override Flag #'stencil = ##f
\override Beam #'stencil = #point-stencil
\override Dots #'stencil = ##f
\override TupletBracket #'stencil = ##f
\override TupletNumber #'stencil = ##f
\override BreathingSign #'stencil = ##f
\override KeyChangeEvent #'stencil = #point-stencil
\override StringNumber #'stencil = #point-stencil
\override StrokeFinger #'stencil = ##f
\override StaffSymbol #'staff-space = #1
}

\score {
<<
\new Staff \with {
\melodyStaff
}
\Melody
\new DrumStaff \with {
\tabStaff
}
\Melody

}

--
Cordialement, Daniel Cartron
« Depuis que j'ai une maîtresse que j'aime, je n'ai plus envie de tromper ma
femme. »
Sacha Guitry


liste de diffusion lilypond-user-fr
lilypond-user-fr@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

ce qui m'arrangerait plus ce serait :
c a g\cross b a
et n'avoir la croix que sur le g.

Je sais pas si c'est faisable. Et en adaptant \deadNote on pourrait pas faire
qq chose aussi ? Je viens juste de découvrir ça par hasard.

···

Le samedi 4 avril 2015, 21:26:15 Pierre Perol-Schneider a écrit :

  g a \cross { b c }

--
Cordialement, Daniel Cartron
« Perdre l'un de ses parents peut être regardé comme un malheur. Perdre les
deux ressemble à de la négligence. »
Oscar Wilde - Il importe d'être constant

Ça ne change rien, \deadNote se plaçant avant la note :

\version "2.16.2"

cross = #(define-music-function (parser location mus) (ly:music?)
#{
\tag #'Cross {
\revert NoteHead #'transparent
$mus
\override NoteHead #'transparent = ##t
}
\tag #'Portee {
\deadNote { $mus }
}
#})

Melody = \relative c' {
c d e \cross f
g a \cross { b c }
a b \cross b \harmonic c
}

melodyStaff = \with {
\override Fingering #'stencil = #point-stencil
}

tabStaff = \with {
\override StaffSymbol #'line-count = #1
\remove "Time_signature_engraver"
\override Clef #'stencil = ##f
\override KeySignature #'stencil = ##f
\override Stem #'stencil = ##f
\override Accidental #'stencil = ##f
\override NoteHead #'style = #'cross
\override Tie #'stencil = ##f
\override Stem #'stencil = ##f
\override Stem #'Y-extent = ##f
\override Flag #'stencil = ##f
\override Beam #'stencil = ##f
\override Dots #'stencil = ##f
\override TupletBracket #'stencil = ##f
\override TupletNumber #'stencil = ##f
\override BreathingSign #'stencil = ##f
\override KeyChangeEvent #'stencil = ##f
\override StringNumber #'stencil = ##f
\override StrokeFinger #'stencil = ##f
}

<<
\new Staff
\melodyStaff
{
\keepWithTag #'Portee
\Melody
}
\new DrumStaff
\tabStaff
{
\override NoteHead #'transparent = ##t
\keepWithTag #'Cross
\Melody
}

En revanche, si tu me trouves où se cache la fonction '\harmonic' ça pourrait probablement m'aider (je n'ai aucune idée de l'endroit où elle se trouve...)

···

Le 5 avril 2015 12:37, Daniel Cartron <****@****> a écrit :

Le samedi 4 avril 2015, 21:26:15 Pierre Perol-Schneider a écrit :

g a \cross { b c }

ce qui m'arrangerait plus ce serait :
c a g\cross b a
et n'avoir la croix que sur le g.

Je sais pas si c'est faisable. Et en adaptant \deadNote on pourrait pas faire
qq chose aussi ? Je viens juste de découvrir ça par hasard.

--
Cordialement, Daniel Cartron
« Perdre l'un de ses parents peut être regardé comme un malheur. Perdre les
deux ressemble à de la négligence. »
Oscar Wilde - Il importe d'être constant


liste de diffusion lilypond-user-fr
lilypond-user-fr@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

Je ne suis pas sûr de bien comprendre ce que tu entends par "la seule".

Dans 'ma' logique, la place de le fonction écrite plus haut - tout comme 'deadNote', 'grace', 'tuplet', etc. - est cohérente dans la mesure où elle ne peut être post-événementielle ; mais je suis encore loin de tout comprendre et effectivement, comme déjà dit, la fonction '\harmonic' mériterai d'être étudiée car elle suit 'ta' logique... Sauf que je ne sais pas où elle se cache.

···

Le 5 avril 2015 15:47, Daniel Cartron <****@****> a écrit :

Le dimanche 5 avril 2015 13:24:48, vous avez écrit :

Ça ne change rien, \deadNote se plaçant avant la note :
oui c'est juste que ce sera la seule indication qui devra se mettre devant et
non après la note, c'est un peu incohérent.
--
Cordialement, Daniel Cartron
« Il n'y a point de génie sans un grain de folie. »
Aristote - Poétique

Quand je dis la seule c'es qu'il y a pas mal d'autres signes d'interprétation
possibles et qu'ils se placent tous comme des articulations. D'ailleurs au
passage, c'est possible de créer de nouvelles articulations ex-nihilo ? Parce
que ma façon de faire est de créer un alias pour une articulation existante et
ensuite j'analyse en scheme pour savoir quoi rajouter dans mon markup.

Bref je continue mes explications. Ces indications de mettent donc comme ça :
c\sld alors que là je suis obligé d'écrire \cross c donc ça va dérouter les
utilisateurs. Parce que c'est pas pour moi que j'écris ce truc mais pour tous
ceux qui jouent de l'harmonica.

Par ailleurs 'est vraiment cette version qui me convient le mieux, une croix
dans la portée et une dans la tablature.

cross = #(define-music-function (parser location mus) (ly:music?)
          #{
             \tag #'Cross {
               \revert NoteHead #'transparent
               $mus
               \override NoteHead #'transparent = ##t
             }
             \tag #'Portee {
               \deadNote { $mus }
             }
          #})

···

Le dimanche 5 avril 2015, 18:28:54 Pierre Perol-Schneider a écrit :

Je ne suis pas sûr de bien comprendre ce que tu entends par "la seule".
Dans 'ma' logique, la place de le fonction écrite plus haut - tout comme
'deadNote', 'grace', 'tuplet', etc. - est cohérente dans la mesure où elle
ne peut être post-événementielle

--
Cordialement, Daniel Cartron
« L'amour platonique est à l'amour charnel ce que l'armée de réserve est à
l'armée active. »
Pierre Dac

Non ça n'est pas ça; et je suis quasiment certain que c'est dans le dossier
.../scm

···

Le 6 avril 2015 07:23, Daniel Cartron <****@****> a écrit :

Je pense que c'est là !
/usr/share/lilypond/2.16.2/ly/music-functions-init.ly
ligne 439

Je pense que cet article pourrait t'intéresser : http://lilypondblog.org/2013/08/adding-ornamentations-to-note-heads-part-1/

···

Le 6 avril 2015 07:49, Daniel Cartron <****@****> a écrit :

Le dimanche 5 avril 2015, 18:28:54 Pierre Perol-Schneider a écrit :

Je ne suis pas sûr de bien comprendre ce que tu entends par "la seule".
Dans 'ma' logique, la place de le fonction écrite plus haut - tout comme
'deadNote', 'grace', 'tuplet', etc. - est cohérente dans la mesure où elle
ne peut être post-événementielle

Quand je dis la seule c'es qu'il y a pas mal d'autres signes d'interprétation
possibles et qu'ils se placent tous comme des articulations. D'ailleurs au
passage, c'est possible de créer de nouvelles articulations ex-nihilo ? Parce
que ma façon de faire est de créer un alias pour une articulation existante et
ensuite j'analyse en scheme pour savoir quoi rajouter dans mon markup.

Bref je continue mes explications. Ces indications de mettent donc comme ça :
c\sld alors que là je suis obligé d'écrire \cross c donc ça va dérouter les
utilisateurs. Parce que c'est pas pour moi que j'écris ce truc mais pour tous
ceux qui jouent de l'harmonica.

Par ailleurs 'est vraiment cette version qui me convient le mieux, une croix
dans la portée et une dans la tablature.

cross = #(define-music-function (parser location mus) (ly:music?)
#{
\tag #'Cross {
\revert NoteHead #'transparent
$mus
\override NoteHead #'transparent = ##t
}
\tag #'Portee {
\deadNote { $mus }
}
#})

--
Cordialement, Daniel Cartron
« L'amour platonique est à l'amour charnel ce que l'armée de réserve est à
l'armée active. »
Pierre Dac

C'est effectivement intéressant mais la fonction que tu m'as écrite me suffira je
pense. En fait c'est surtout au niveau markup que ça se passe pour une
tablature.

Mais merci, je vais regarder ça tranquillement.

···

Le lundi 6 avril 2015, 10:53:34 Pierre Perol-Schneider a écrit :

Je pense que cet article pourrait t'intéresser :
http://lilypondblog.org/2013/08/adding-ornamentations-to-note-heads-part-1/

--
Cordialement, Daniel Cartron
« Le bonheur à deux ça dure le temps de compter jusqu'à trois. »
Sacha Guitry