lilypond-user-fr
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fonction avec argument pour la valeur d'un silence


From: Jean ABOU SAMRA
Subject: Re: Fonction avec argument pour la valeur d'un silence
Date: Thu, 16 May 2019 19:30:35 +0200

Au fait, pour être complet, mentionnons également une solution plus évidente (je ne conserve qu'une portée) :

\language "français"
\new Staff <<
\new Voice = "S" { \relative do'' { \oneVoice r4 \voiceOne fa mi re }}
\new Voice = "A" { \relative do'' { \voiceTwo s4 re do si }}
>>


Cordialement,
Jean Abou Samra

Le 16 mai 2019 à 18:58, Jean ABOU SAMRA <address@hidden> a écrit :

Bonjour,
Il y a deux problèmes dans votre code. Examinons la ligne :

\tweak #'Y-offset #0 r#(arg1)

D'une part, (arg1) signifie en Scheme « appeler la fonction arg1 sans argument » (pensez par exemple à « (newline) »). Une version plus correcte serait donc #arg1 tout simplement.
D'autre part, LilyPond ne supporte pas que l'on mélange ainsi la syntaxe Scheme et son propre mode de notes. Il faudrait faire tout cela en Scheme et ce serait un peu plus complexe.

Heureusement, rien de tout cela n'est nécessaire ici puisqu'il suffit d'ajouter en tête de fichier :

\layout {
\context {
\Staff
% fusionner automatiquement les silences identiques entre les voix
\consists "Merge_rests_engraver"
}
}

Cordialement,
Jean Abou Samra.

Le 16 mai 2019 à 16:50, Bernard-B <address@hidden> a écrit :

Bonjour à tous, En tant que chef de chœur, je suis souvent en train de graver des partitions pour mes choristes... Et je sais que je ne suis pas le seul !!! Bref ! Des cas comme ci-dessous, j'en ai des tonnes :
\version "2.19.80"
\language "italiano"

\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice = "S" { \voiceOne \relative do'' { r4 fa mi re }}
      \new Voice = "A" { \voiceTwo \relative do'' { r4 re do si }}
    >>
    \new Staff <<
      \clef bass
      \new Voice = "T" { \voiceOne \relative do { r4 fa mi re }}
      \new Voice = "B" { \voiceTwo \relative do { r4 re do si }}    
    >>
  >>
}
Et pour éclaircir la partition, je fais :
\version "2.19.80"
\language "italiano"
\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice = "S" { \voiceOne \relative do'' { \tweak #'Y-offset #0 r4 fa mi re }}
      \new Voice = "A" { \voiceTwo \relative do'' { s4 re do si }}
    >>
    \new Staff <<
      \clef bass
      \new Voice = "T" { \voiceOne \relative do { \tweak #'Y-offset #0 r4 fa mi re }}
      \new Voice = "B" { \voiceTwo \relative do { s4 re do si }}    
    >>
  >>
}
Pour gagner du temps, j'ai tenté d'écrire une fonction :
BBrest = 
#(define-music-function
     (parser location arg1)
     (number?)
   #{
        \tweak #'Y-offset #0 r#(arg1) }
   #})
Afin de factoriser un peu mon code source et pouvoir écrire :
\version "2.19.80"
\language "italiano"
\score {
  \new ChoirStaff <<
    \new Staff <<
      \new Voice = "S" { \voiceOne \relative do'' { \BBrest #4 fa mi re }}
      \new Voice = "A" { \voiceTwo \relative do'' { s4 re do si }}
    >>
    \new Staff <<
      \clef bass
      \new Voice = "T" { \voiceOne \relative do { \BBrest #4 fa mi re }}
      \new Voice = "B" { \voiceTwo \relative do { s4 re do si }}    
    >>
  >>
}
À la compile (sous frescobaldi, nobody's perfect), j'ai :
/tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:9:28: Avertissement : _expression_ non musicale ignorée
     \tweak #'Y-offset #0 r
                           #arg1 }
/tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:9:34: Erreur : syntax error, unexpected '}'
     \tweak #'Y-offset #0 r#arg1 
                                 }
/tmp/frescobaldi-dgs6e0a8/tmp95fxsx8p/document.ly:43:53: Erreur : erreur dans #{ ... #}
      \new Voice = "S" { \voiceOne \relative do'' { 
                                                    \BBrest #4 fa mi re }}
Je me doute bien que je programme comme un noob... mais si quelqu'un avait la gentillesse de me dire où est ma grosse bêtise, je lui en serais reconnaissant, et pourquoi pas une p'tite bière !!! Un grand merci à tous ! Bernard.

Sent from the LilyPond French Users mailing list archive at Nabble.com.
_______________________________________________
liste de diffusion lilypond-user-fr
address@hidden
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr

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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]