Subject: Simplifier l’affiche et/ou la supression des numéros des mesures

From: Philippe Nenert <[email-masked]>
Date: Thu, 10 Apr 2014 16:23:23 +0200

Bonjour à tous,

Il se trouve que j’utilise souvent ces deux lignes de code :
         \override Score.BarNumber.break-visibility   = ##(#f #f #f)
         \override Score.BarNumber.break-visibility   = ##(#f #t #t)

Savez-vous comment fait un raccourcis ou une fonction du type \maFonction #f ou #t

Merci d’avance de vos lumières
Philippe

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Thu, 10 Apr 2014 21:14:35 +0200

> Bonjour à tous,

Bonjour Philippe,

> Savez-vous comment fait un raccourcis ou une fonction du type \maFonction

Simplement :

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.18.2"

maFonctionF = \override Score.BarNumber.break-visibility = ##(#f #f #f)

maFonctionT = \override Score.BarNumber.break-visibility = ##(#f #t #t)

{

   \maFonctionF

   \repeat unfold 16 c'1

   \maFonctionT

   \repeat unfold 16 c'1

   \maFonctionF

   \repeat unfold 16 c'1

   \maFonctionT

   \repeat unfold 16 c'1

}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Cordialement,

~Pierre

---

From: Philippe Nenert <[email-masked]>
Date: Fri, 11 Apr 2014 10:53:56 +0200

> Simplement :

Bonjour Pierre,

En effet, c’est d’une extrême simplicité…

Dans la même veine saurais-tu comment faire 
maFonction = #f	=> \override Score.BarNumber.break-visibility = ##(#f #f #f)
maFonction = #t	=> \override Score.BarNumber.break-visibility = ##(#f #t #t)

Encore merci pour ce raccourcis,
Bien à toi, Philippe

---

From: Philippe Nenert <[email-masked]>
Date: Fri, 11 Apr 2014 11:50:06 +0200

> maFonction = #t	=> \override Score.BarNumber.break-visibility = ##(#f #t #t)

Je me réponds à moi-même pour les lecteurs de cette liste.

Une fois compris le fonctionnement du Guile, cela devient plus simple à réaliser. 
http://www.gnu.org/software/guile/ 
Le Guile est l’interprète et compilateur du Scheme, langage de programmation inclus avec Lilypond

Voici le code, avec ses commentaires.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.19.3"

% La fonction et sa déclaration obligatoire avec les mots clefs «parser» et «location»
% la variable porte le nom de «isBarNumberVisibility» est est de type «boolean» (Oui/Non)
barNumberVisibility =
  #(define-music-function (parser location isBarNumberVisibility) (boolean?)
  ; La fonction IF prends trois arguments : le test, la réponse si OUI, la réponse si NON
    (if 
      ; le test
      isBarNumberVisibility
      ; la réponse OUI
      #{ \override Score.BarNumber.break-visibility = ##(#f #t #t) #}
      ; la réponse NON
      #{ \override Score.BarNumber.break-visibility = ##(#f #f #f) #}
      ; le fait d’encadrer le retour par «#{» et «#}» est pour renvoyer du code lilypond
    )
  )

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Essai d’usage, merci Pierre
{
  \barNumberVisibility ##t
  \repeat unfold 16 c'1
  \barNumberVisibility ##f
  \repeat unfold 16 c'1
  \barNumberVisibility ##t
  \repeat unfold 16 c'1
  \barNumberVisibility ##f
  \repeat unfold 16 c'1
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Merci de m’avoir lu jusqu’ici
Si un PRO du scheme, veux bien me corriger et/ou simplifier ce code, je lui en serai reconnaissant.

Bonne journée, Philippe

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Fri, 11 Apr 2014 14:19:50 +0200

> lui en serai reconnaissant.

Oui il y a plus simple mais je ne trouvais pas la solution ce matin.
La voici donc :

barNumberVisibility =  #(define-music-function (parser location arg)
(boolean?)

   #{ \override Score.BarNumber.break-visibility = #(vector #f arg arg) #})

(et merci à David pour le debuggage
http://lilypond.1069038.n5.nabble.com/Scheme-function-with-boolean-argument-td161478.html
)

Cordialement,
~Pierre

---

From: Philippe Nenert <[email-masked]>
Date: Fri, 11 Apr 2014 14:37:00 +0200

On 11 avr. 2014, at 14:19, Pierre Perol-Schneider <[email-masked]> wrote:

> barNumberVisibility =  #(define-music-function (parser location arg) (boolean?)
> (et merci à David pour le debuggage http://lilypond.1069038.n5.nabble.com/Scheme-function-with-boolean-argument-td161478.html)
> 
> Cordialement,
> ~Pierre

Super !

Un GRAND merci, je n’y avais pas pensé !
Philippe