Subject: passage à ne pas transposer

From: Vincent Gay <[email-masked]>
Date: Sun, 24 Apr 2022 18:30:58 +0200

Bonsoir,

il me semble avoir vu quelque part, je pense même dans cette liste, une 
astuce pour ne pas transposer un passage dans une partie. Mais je ne la 
retrouve pas...
explication : dans un lead sheet je veux faire apparaître l'intro jouée 
par la guitare. Lors de la transposition pour les instruments en B♭ et 
E♭ je voudrais que cette intro ne soit pas transposé (la suite oui).

Merci d'avance

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

---

From: Jean Abou Samra <[email-masked]>
Date: Sun, 24 Apr 2022 18:52:29 +0200

Le 24/04/2022 à 18:30, Vincent Gay a écrit :
> Bonsoir,
>
> il me semble avoir vu quelque part, je pense même dans cette liste, 
> une astuce pour ne pas transposer un passage dans une partie. Mais je 
> ne la retrouve pas...
> explication : dans un lead sheet je veux faire apparaître l'intro 
> jouée par la guitare. Lors de la transposition pour les instruments en 
> B♭ et E♭ je voudrais que cette intro ne soit pas transposé (la suite 
> oui).
>
> Merci d'avance
>

Bonsoir Vincent,

Effectivement, j'ai un vague souvenir du fil en question (n'était-ce
pas avec Gilles Thibault ?) mais je n'arrive pas à retrouver le lien
dans l'archive…

En tous cas, l'astuce est celle-ci :

\version "2.22.2"

\transpose c d {
   c'4 4 4 4
   \withMusicProperty untransposable ##t { c'4 4 4 4 }
   c'4 4 4 4
}

Explication : untransposable est une propriété des objets musicaux
qui est mise à #t sur ceux qui ne doivent pas être transposés, comme
les \set et \override (par exemple, \transposition bes, qui sert à
définir un instrument transpositeur pour le MIDI, est une raccourci
pour \set Staff.instrumentTransposition = bes, et le fait qu'une
clarinette soit en si bémol ne change pas avec \transpose !). Il
n'y a pas de commande prédéfinie qui change la valeur de untransposable,
mais il existe \withMusicProperty, une commande générique qui change
la valeur de n'importe quelle propriété d'objet musique, un peu comme
\set pour les contextes ou \override pour les grobs.

D'ailleurs, rien n'empêche de définir une fonction plus pratique, soit
par la syntaxe traditionnelle…

\version "2.22.2"

untransposable =
#(define-music-function (music) (ly:music?)
    #{ \withMusicProperty untransposable ##t #music #})

\transpose c d {
   c'4 4 4 4
   \untransposable { c'4 4 4 4 }
   c'4 4 4 4
}

… soit avec la syntaxe \etc, que je trouve simplement magique :

\version "2.22.2"

untransposable = \withMusicProperty untransposable ##t \etc

\transpose c d {
   c'4 4 4 4
   \untransposable { c'4 4 4 4 }
   c'4 4 4 4
}

Et si tu ne connaissais pas \etc, je t'invite à faire un tour par
la documentation. La page qui explique \etc est donnée dans l'index
des commandes :

https://lilypond.org/doc/v2.22/Documentation/notation/lilypond-command-index

(À titre expérimental, je ne donne pas de lien direct mais un lien
vers l'index. Il arrive que des pages de documentation changent d'adresse,
alors que l'index, ou plutôt les deux index, le normal et l'index
des commandes, sont normalement stables. En plus, j'ai l'impression
que les index sont des pages sous-utilisées qui méritent d'être mieux 
connues.)

Cordialement,
Jean

---

From: Vincent Gay <[email-masked]>
Date: Sun, 24 Apr 2022 18:56:46 +0200

Le 24/04/2022 à 18:52, Jean Abou Samra a écrit :
> \withMusicProperty untransposable ##t
ah oui, c'est ça ! Merci