Subject: Hampes trop longues avec NullVoice

From: Olivier Miakinen <[email-masked]>
Date: Sun, 28 Oct 2018 22:23:41 +0100

Bonjour,

Je reviens avec un nouveau bug qui m'embête bien, et que j'aimerais
résoudre. Voici un exemple minimal : <http://lilybin.com/ds9e6q/1>.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.18.2"
notes = \relative c' { c8 d e4 e' f8 g }
\score {
	\new ChoirStaff <<
		\new Staff <<
			\new Voice { \notes }
		\new Staff <<
			\new Voice { \notes }
			\new NullVoice { \notes }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Le problème est que les hampes des croches avec ligature deviennent
trop longues aussitôt que l'on ajoute un NullVoice dans le Staff.

Je n'ai aucunement l'intention de supprimer le NullVoice parce que
j'en ai besoin pour aligner les paroles (non reproduites dans cet
exemple minimal). Du coup, comment rendre à mes croches des hampes
de longueur raisonnable ?

Cordialement,
-- 
Olivier Miakinen

---

From: Christophe Pochon <[email-masked]>
Date: Mon, 29 Oct 2018 08:27:25 +0100

Salut,

Je ne sais pas s'il y a un moyen de corriger cela en 2.18.2, mais en
2.19.48 c'est corrigé.

A+

Christophe Pochon

Le dim. 28 oct. 2018 à 22:23, Olivier Miakinen <[email-masked]> a
écrit :

> _______________________________________________
> liste de diffusion lilypond-user-fr
> [email-masked]
> https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Mon, 29 Oct 2018 17:21:57 +0100

Bonjour Olivier,
Ça a l'air de fonctionner, à vérifier :

\version "2.18.2"

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
      \new SansVoix { \notes }
  \layout {
    \context {
      \name SansVoix
      \type "Engraver_group"
      \alias NullVoice
    }
    \context {
      \Staff
      \accepts "SansVoix"
    }
  }
}

Le dim. 28 oct. 2018 à 22:24, Olivier Miakinen <[email-masked]> a

---

From: Olivier Miakinen <[email-masked]>
Date: Mon, 29 Oct 2018 22:19:18 +0100

> notes = \relative c' { c8 d e4 e' f8 g }

Ça fonctionne parfaitement bien pour les hampes. Mais en revanche je ne
peux pas associer de Lyrics à un SansVoix, ça me donne le message :
 Avertissement : impossible de repérer la voix (Voice) « nom »

Voir <http://lilybin.com/ds9e6q/2> (mais n'affiche pas le message), ou :
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.18.2"

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
      \new SansVoix = "sansvoix" { \notes }
      \new Lyrics \lyricsto "sansvoix" { c d e e f g }
  \layout {
    \context {
      \name SansVoix
      \type "Engraver_group"
      \alias NullVoice
    }
    \context {
      \Staff
      \accepts "SansVoix"
    }
  }
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

---

From: Olivier Miakinen <[email-masked]>
Date: Mon, 29 Oct 2018 22:20:18 +0100

[désolé pour le premier envoi en privé]

> Je ne sais pas s'il y a un moyen de corriger cela en 2.18.2, mais en

Bon sang, tu as raison ! Alors que c'est si facile à vérifier avec
Lilybin, je n'avais même pas essayé.

Il faut alors vraiment que j'installe la version instable de LilyPond ?
Je n'étais pas très chaud pour le faire tant que je pouvais me
débrouiller avec la version stable.

-- 
Olivier Miakinen

---

From: Christophe Pochon <[email-masked]>
Date: Mon, 29 Oct 2018 22:23:55 +0100

Ah et moi j'ai répondu aussi en privé, du coup :

Personnellement je travaille depuis des années avec les versions instables
sans déconvenues.
Et je crois qu'il est possible d'avoir les deux versions sur le même
ordinateur sans problème.
Le problème sera plutôt la tentation d'utiliser les nouvelles
fonctionnalités de la 2.19, incompatibles avec la 2.18.
Je me suis très vite habitué par exemple à des c8 8 4 4. 8 2~8 4. qui
dérangeraient la 2.18 :-)

Christophe Pochon

Le lun. 29 oct. 2018 à 22:20, Olivier Miakinen <[email-masked]> a

---

From: Olivier Miakinen <[email-masked]>
Date: Mon, 29 Oct 2018 22:30:41 +0100

> ordinateur sans problème.

Oui, je le crois aussi, mais j'ai un peu la flemme. C'est si confortable
de laisser son Linux décider quelle version des logiciels il installe !

> dérangeraient la 2.18 :-)

J'avoue que c'est une fonctionnalité que j'attends depuis longtemps, et
que je risque d'en user et d'en abuser si elle m'est permise. :-)

-- 
Olivier Miakinen

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Tue, 30 Oct 2018 10:11:53 +0100

Bonjour Olivier,

Le lun. 29 oct. 2018 à 22:19, Olivier Miakinen <[email-masked]> a
> Avertissement : impossible de repérer la voix (Voice) « nom »

Il y a quelques trucs mal fichu dans ce NullVoice; j'enverrai un rapport à
ce propos au BugSquad.
Essaie :

\version "2.18.2"

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
      \new NullVoice = "sansvoix" { \notes }
      \new Lyrics \lyricsto "sansvoix" { c d e e f g }
  \layout {
    \context {
      \NullVoice
      \override NoteHead.stencil = ##f
    }
  }
}

... et vérifie bien que ça n'entraîne pas de décalages des paroles.
Cordialement,
Pierre

---

From: Olivier Miakinen <[email-masked]>
Date: Tue, 30 Oct 2018 10:55:24 +0100

Bonjour Pierre,

> Il y a quelques trucs mal fichu dans ce NullVoice; j'enverrai un rapport à

Merci.

> [...]
> [...]

Ça me donne des erreurs sur la partition complète (de 26 pages en une
dizaine de fichiers source... j'essaierai de faire un exemple minimal
ce soir si nécessaire).

erreur de programmation : slur attachment is inf/nan
poursuite ; croisons les doigts.
erreur de programmation : slur attachment is inf/nan
poursuite ; croisons les doigts.
erreur de programmation : slur attachment is inf/nan
poursuite ; croisons les doigts.
erreur de programmation : slur attachment is inf/nan
poursuite ; croisons les doigts.
/home/om/Documents/Monteverdi/Saison 2018-2019/Antonín
Dvořák/notes/pInotes.ily:116:24: Avertissement : slur trying to
encompass an empty note column.
  sol4\pp sol sol | sol
                       (\< fad8[ mi]) re4\! | mi2 re4 |
/home/om/Documents/Monteverdi/Saison 2018-2019/Antonín
Dvořák/notes/pInotes.ily:116:24: Avertissement : slur trying to
encompass an empty note column.
  sol4\pp sol sol | sol
                       (\< fad8[ mi]) re4\! | mi2 re4 |
Arrêté avec le code de retour 11.

Bon, je dois partir. Je reviens ce soir.

Cordialement,
-- 
Olivier Miakinen

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Tue, 30 Oct 2018 12:34:27 +0100

Autre tentative :

%%%%%
\version "2.18.2"

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
  \layout {
    \context {
      \name SansVoix
      \type "Engraver_group"
      \alias Voice
      \override NoteHead.no-ledgers = ##t
      \override NoteHead.X-extent = #'()
      \override NoteHead.stencil = ##f
      \override Beam.stencil = ##f
      \override Slur.stencil = ##f
      \override Tie.stencil = ##f
      squashedPosition = 0
    }
    \context {
      \Staff
      \accepts "SansVoix"
    }
  }
}
%%%%

Cdt,
Pierre

Le mar. 30 oct. 2018 à 10:56, Olivier Miakinen <[email-masked]> a
écrit :

> dizaine de fichiers source... [...]
>

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Tue, 30 Oct 2018 12:49:12 +0100

Corrections :

\version "2.18.2"

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
  \layout {
    \context {
      \name SansVoix
      \type "Engraver_group"
      \alias Voice
      \override NoteHead.no-ledgers = ##t
      \override NoteHead.X-extent = #'()
      \override NoteHead.stencil = ##f
      \override Beam.stencil = ##f
      \override NoteHead.stencil = ##f
      \override Accidental.stencil = ##f
      \override AccidentalCautionary.stencil = ##f
      \override Slur.stencil = ##f
      \override Tie.stencil = ##f
      squashedPosition = 0
    }
    \context {
      \Staff
      \accepts "SansVoix"
    }
  }
}

Pierre

Le mar. 30 oct. 2018 à 12:34, Pierre Perol-Schneider <
[email-masked]> a écrit :

> Le mar. 30 oct. 2018 à 10:56, Olivier Miakinen <[email-masked]>
> a écrit :
>
>> Bonjour Pierre,
>>

---

From: Olivier Miakinen <[email-masked]>
Date: Tue, 30 Oct 2018 20:11:35 +0100

>       \override Tie.stencil = ##f

C'est de mieux en mieux, je n'ai plus d'erreur et les hampes sont
correctes, malheureusement les Slur et les Tie ne sont plus respectés
pour le placement des paroles.

Illustration : <http://www.lilybin.com/043lgt/2>.

P.-S. : J'ai installé LilyPond 2.19 sur une autre machine, un Windows,
mais je n'ai pas pu y compiler ma partition à cause de la disparition
de la directive \partcombineApartOnce. Il faut que j'essaye avec la
nouvelle syntaxe de \partcombine mais je n'ai pas accès tous les jours
à cet autre ordi.

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 31 Oct 2018 01:33:41 +0100

... Bon...
On va faire simple, que donne :

\version "2.18.2"

notes = \relative c' { c8 d e4( e') f8 g }

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
      \new NullVoice = "nullevoix" { \notes }
      \new Lyrics \lyricsto "nullevoix" { c d "2e" __ f g }
    \new Staff <<
      \new Voice { \notes }
      \new Voice = "sansvoix" {
        \override NoteColumn.ignore-collision = ##t
        \hideNotes
        \notes
      }
      \new Lyrics \lyricsto "sansvoix" { c d "2e" __ f g }
  \layout { }
}

Pierre

---

From: Olivier Miakinen <[email-masked]>
Date: Wed, 31 Oct 2018 02:17:09 +0100

>         \override NoteColumn.ignore-collision = ##t

C'est ok pour les hampes, ok aussi pour les paroles.

En revanche j'ai des tonnes d'avertissements « collision de silences
insoluble : positionnement du silence indéterminée » (bien que les
silences ne soient pas visibles en double). Et ce sont les nuances
qui sont visibles en double.

Un exemple de rendu ici : <https://i.goopics.net/LknbY.png>.

---

From: Olivier Miakinen <[email-masked]>
Date: Wed, 31 Oct 2018 02:34:48 +0100

> Un exemple de rendu ici : <https://i.goopics.net/LknbY.png>.

Au \hideNotes j'ai ajouté :
  \override DynamicText #'stencil = ##f
  \override DynamicTextSpanner #'stencil = ##f
  \override Hairpin #'stencil = ##f

... et ça semble fonctionner. Bon, j'ai toujours une tonne
d'avertissements, mais le résultat du PDF semble correct.
Euh... ah, sauf les \fermata qui restent en double.

---

From: Olivier Miakinen <[email-masked]>
Date: Wed, 31 Oct 2018 02:52:25 +0100

> Euh... ah, sauf les \fermata qui restent en double.

J'avais aussi des liaisons redoublées, supprimées avec :
  \override Slur #'stencil = ##f

En revanche je ne sais pas comment supprimer les doublons de points
d'orgue (\fermata).

Aussi, j'utilise une fonction pour mettre un Hairpin entre crochets,
et cette fonction redéfinit le Hairpin.stencil... autant dire que ça
annule l'effet de mon « \override Hairpin #'stencil ». ;-)

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Wed, 31 Oct 2018 10:37:08 +0100

Ok, un dernier essai :

\version "2.18.2"

notes = \relative c' { c8\< d\fermata e4( e') f8 g\! }

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
    \new Staff <<
      \new Voice { \notes }
      \new Voice = "sansvoix"
      \with {
        \override NoteColumn.ignore-collision = ##t
        \remove Dots_engraver
        \remove Dynamic_engraver
        \remove Script_engraver
        \remove Drum_notes_engraver
        \remove New_fingering_engraver
        \remove Rest_engraver
        \remove Multi_measure_rest_engraver
        \override Stem.length = #0
        \override Stem.ignore-collision = ##t
        \override Slur.transparent = ##t
        \override Tie.transparent = ##t
        %% ... etc si nécessaire
        \hideNotes
      } { \notes }
      \new Lyrics \lyricsto "sansvoix" { c d "2e" __ f g }
  \layout { }
}

... Sinon, pour la version 2.19 -- très stable, la 2.20 devrait voir le
jour sous peu -- uninstall-lilypond suivi de sh lilypond-2.19... devrait
prendre moins d'une minute...

Cordialement,
Pierre

Le mer. 31 oct. 2018 à 02:53, Olivier Miakinen <[email-masked]> a

---

From: Olivier Miakinen <[email-masked]>
Date: Wed, 31 Oct 2018 11:09:18 +0100

> Ok, un dernier essai :

... qui n'a pas fonctionné. Le moindre \remove Whatever_engraver
entraîne une erreur fatale. Tant pis. Je te remercie d'avoir passé
tout ce temps à essayer de m'aider, même si finalement ça n'a pas
fonctionné.

> prendre moins d'une minute...

Il y a juste une chose qui m'inquiète un peu, maintenant que j'ai
essayé avec une 2.19 sur Windows, c'est la compatibilité de mes
anciens fichiers. On peut avoir le convert-ly de la 2.19 avant de
désinstaller la 2.18 ?