Subject: Appogiature en début de partition

From: Carlus <[email-masked]>
Date: Wed, 2 Jan 2019 01:45:57 -0700 (MST)

Bonne et heureuse année à tous !

Ayant commencé mon premier jour de l'année en compagnie de Lilypond :-) je
suis tombé sur un petit souci inédit pour moi.
Il s'agit du début d'une étude de caisse-claire (une seule ligne) mais je
pense que ce serait pareil dans un format normal.

L'étude commence par un "ra" c'est à dire une appogiature de deux notes.
Aucun problème avec les \acciaccatura d'habitude mais là, comme c'est le
début du morceau, j'ai l'impression que Lilypond l'interprète comme une
anacrouse.

<http://lilypond-french-users.1298960.n2.nabble.com/file/t57856/Lilypond_Ra.png> 

Le tempo est décalé un peu vers la droite au lieu d'être aligné à gauche (je
mets toujours "indent" à 0)
Le "C" de la mesure se retrouve avant et après l'appogiature, ce qui est un
peu bizarre.

J'aimerais un début de partition aligné normalement à gauche..
Le code ci-dessous.
Merci d'avance pour vos suggestions.

\version "2.18.2"

% Notation française
#(define ma_notation '( 
        (snare () #f 0)			
))

% Réglages papier
\paper { 
  % espace entre portées
  system-system-spacing #'basic-distance = #8 
  % espace entre notes/exercice et portee
  markup-system-spacing #'basic-distance = #5
  %system-system-spacing #'space = 3\cm 
  score-system-spacing = 
  #'((basic-distance . 12) 
  (minimum-distance . 1) 
  (padding . 1) 
  (stretchability . 1)) 
  % Supprimer l'indentation
  indent=0  
} 

\layout { 
  % Pleine largeur
  ragged-right = ##f 
}

% En-tête
\header{
  title = \markup {\column {"Le Rat Flagada" \vspace #1 \null}} 
  subtitle = ""
  composer = ""
  tagline = "" 
}

D=^\markup { \fontsize #4 \char ##x00B0 }
G=^\markup { \char ##x2022 }

\new DrumStaff \with { 
              drumStyleTable = #percussion-style
              % Enlever les barres de mesure
              % \remove Bar_engraver
               % Forcer la mesure en numérique 
               %\numericTimeSignature
                % Une seule ligne
                \override StaffSymbol #'line-count = #1
                % Pas de mesure
                %\once \override Staff.TimeSignature #'stencil = ##f
                } 

<< 
       \set DrumStaff.drumStyleTable = #(alist->hash-table ma_notation)
       \override Score.MetronomeMark #'outside-staff-padding = #3
       % Réglages Tremolos
       \override Score.StemTremolo #'slope = #0.5                %
inclinaison
       \override Score.StemTremolo #'beam-width = #1.5
       \override Score.StemTremolo #'Y-offset = #-1.6
        \tempo 4=115
        \time 4/4
 	\drummode 
	{ 
           % Ligne 1
           \acciaccatura {sn16 sn} sn8\D^> [sn\G] sn\D [sn\G] \acciaccatura
sn8 sn8\D^> [sn\G] sn\D sn\G
           \acciaccatura {sn16 sn} sn8\D^> [sn\G] sn\D [sn\G^>] sn4\D^> r
           
            \bar "||"
	} 

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

---

From: Valentin Villenave <[email-masked]>
Date: Wed, 2 Jan 2019 10:03:22 +0100

> Bonne et heureuse année à tous !

Bonjour,
tout pareil.

> j'ai l'impression que Lilypond l'interprète comme une anacrouse.

Ce n’est pas exactement ce qui se passe ; tout le problème est que
\time et \tempo sont ici inclus dans la construction simultanée << >>
plutôt que la construction consécutive {}.

Donc en mettant comme ceci :

\new DrumStaff \with { % blablabla
                }  <<
        \drummode   {
        \tempo 4=115
        \time 4/4
           % Ligne 1
           \acciaccatura {sn16 sn} sn8\D^> [sn\G] sn\D [sn\G] \acciaccatura
sn8 sn8\D^> [sn\G] sn\D sn\G
           \acciaccatura {sn16 sn} sn8\D^> [sn\G] sn\D [sn\G^>] sn4\D^> r
        }

… ça marche sans problème : LilyPond connaît d’abord son tempo et son
chiffre de mesure, _puis_ ajoute les notes, plutôt que de voir
débarquer tout ça en même temps tout en étant obligé d’ajouter les
acciaccatures en premier lieu. (D’ailleurs les << >> ne sont même pas
nécessaires dans l’exemple ci-dessus, s’il n’y a vraiment qu’une voix
dans cette portée de caisse claire ; même les \override peuvent être
transférés au même niveau que \tempo et \time.)

De surcroît, ce n’est pas la peine de commencer par régler
drumStyleTable dans le \with {} si c’est pour le re-\set plus loin, on
peut remonter l’instruction avec alist->hash-table à la place de
#percussion-style sans problème.

Cordialement,
V.

---

From: Carlus <[email-masked]>
Date: Wed, 2 Jan 2019 06:32:35 -0700 (MST)

On voit pourquoi certains sont administrateurs et pas d'autres :-))
Il fallait un niveau de maîtrise que je suis loin d'avoir.

J'ai tout corrigé, ça fonctionne nickel et effectivement cela fait un code
plus clair et plus épuré.
Un grand merci Valentin !

---

From: Carlus <[email-masked]>
Date: Wed, 2 Jan 2019 09:05:31 -0700 (MST)

Du coup j'ai avancé un peu.
Le problème des \acciaccatura c'est que c'est galère à coder car ça fait des
lignes très longues, genre :

\acciaccatura {sn16 sn} sn4\G^> \acciaccatura sn8 sn8\D^> sn16\G sn\D sn\G
sn\D \acciaccatura sn8 sn8\G^> sn\D [\acciaccatura {sn16 sn} sn8\G^>]

et ça ce n'est qu'une seule mesure.

Du coup je me suis dit que je vais mettre des variables pour les Flas et les
Ra, ce qui serait infiniment plus lisible.
J'ai donc déclaré (au même endroit que mes variables de doigtés :
Fla=\acciaccatura sn8
Ra=\acciaccatura {sn16 sn}

puis remplacé dans le texte (voir code ci-dessous où je l'ai fait sur la
première mesure).

Ca coince avec le code d'erreur :
/tmp/frescobaldi-2lr6upbo/tmpvyu2_v7p/20180101_Le Rat flagada.ly:40:22:
Erreur : type d'argument erroné pour 1.
 Attendait music, "sn" trouvé
Fla=\acciaccatura sn8

Comme s'il ne connaissait pas "sn".
Il doit donc y avoir des restrictions dans les variables que je n'ai pas
trouvé dans la doc que j'ai pourtant bien relue.

Donc toute aide serait précieuse......

\version "2.18.2"

% Notation française
#(define ma_notation '( 
        (snare () #f 0)			
))

% Réglages papier
\paper { 
  % espace entre portées
  system-system-spacing #'basic-distance = #12 

\layout { 
  % Pleine largeur
  ragged-right = ##f 
}

% En-tête
\header{

% Variable de doigtés
D=^\markup { \fontsize #4 \char ##x00B0 }
G=^\markup { \char ##x2022 }
Fla=\acciaccatura sn8
Ra=\acciaccatura {sn16 sn}

\new DrumStaff \with { 
  drumStyleTable = #(alist->hash-table ma_notation)
  }        
  \drummode{ 
    \override Score.MetronomeMark #'outside-staff-padding = #3
    % Réglages Tremolos
    \override Score.StemTremolo #'slope = #0.5                % inclinaison
    \override Score.StemTremolo #'beam-width = #1.5
    \override Score.StemTremolo #'Y-offset = #-1.6
    % Une seule ligne
    \override Score.StaffSymbol #'line-count = #1
    \tempo 4=115
    \time 4/4
    % Ligne 1
    \Ra sn8\D^> [sn\G] sn\D [sn\G] sn8\D  [sn\G] \Fla sn4\G  ^>
    \acciaccatura {sn16 sn} sn8\D^> [sn\G] sn\D [\acciaccatura sn8 sn\G^>]
\acciaccatura sn8 sn4\D^> r
    \break
    % Ligne 2
    \acciaccatura {sn16 sn} sn4\G^> sn8\D [\acciaccatura sn8 sn\G^>] sn8\D
[sn8\G] \acciaccatura sn8 sn4\D^>
    \acciaccatura {sn16 sn} sn4\G^> sn8\D [sn\G] sn\D [\acciaccatura sn8
sn\G^>] \acciaccatura sn8 sn4\D^>
    \break
    % Ligne 3
    \acciaccatura {sn16 sn} sn4\D^> \acciaccatura sn8 sn4\G \acciaccatura
{sn16 sn} sn8\D^> sn16\G sn\D \acciaccatura sn8 sn4\G^>
    \acciaccatura {sn16 sn} sn4\D^> \acciaccatura sn8 sn4\G \acciaccatura
{sn16 sn} sn8\D^> sn16\G sn\D sn8\G  \acciaccatura sn8 sn8\G^>
    \break
    % Ligne 4
    \acciaccatura {sn16 sn} sn4\G^> \acciaccatura sn8 sn8\D^> sn16\G sn\D
sn8\G [\acciaccatura {sn16 sn} sn16\D^> sn\G] sn\D sn\G sn8\D
    \acciaccatura {sn16 sn} sn4\G^> \acciaccatura sn8 sn8\D^> sn16\G sn\D
sn\G sn\D \acciaccatura sn8 sn8\G^> sn\D [\acciaccatura {sn16 sn} sn8\G^>]

    \bar "||"
  }

---

From: Valentin Villenave <[email-masked]>
Date: Wed, 2 Jan 2019 17:18:49 +0100

> trouvé dans la doc que j'ai pourtant bien relue.

Non, c’est juste que par défaut LilyPond s’attend à trouver de la
syntaxe standard dans ses variables. Si on veut mettre autre chose il
faut définir la variable en indiquant dans quelle sorte d’expression
on se trouve :

variable = \layout { ici du layout }
variable = \lyricmode { ici des paroles }
variable = \chordmode { ici des accords }
variable = \drummode { ici des rythmes }

En l’occurrence, le dernier cas.

Cordialement,
V.

---

From: Carlus <[email-masked]>
Date: Wed, 2 Jan 2019 10:00:58 -0700 (MST)

Merci beaucoup Valentin.
Je me doutais d'un truc du genre, je vais le noter précieusement.
Après remplacement par les variables, c'est le jour et la nuit au niveau du
code :-)
Très bonne soirée