Subject: Numéros de cordes en chiffres romains dans des accords

From: Karim Barkati <[email-masked]>
Date: Tue, 7 Jun 2011 03:48:59 -0700 (PDT)

Bonjour,

J'aimerais indiquer des numéros de cordes en chiffres romains dans des
accords, pour un violon alto. 

1) La façon la plus élégante serait sans doute de pouvoir paramétrer le
système qui existe déjà pour la guitare, qui utilise des chiffres arabes
dans un cercle, avec une barre oblique après la note: &lt;f\4 c'\5&gt;.
Est-ce que cela est possible ?

2) La façon laborieuse que j'utilise actuellement consiste à créer une
colonne:
	 _\markup{
		\override #'(baseline-skip . 2)
		\column{\tiny III \tiny IV}
	}

3) Un moyen-terme utiliserait au moins une fonction pour généraliser l'appel
(par exemple  _\stringsColumn "IV" "III"), mais ma tentative ne fonctionne
pas:

stringsColumn = #(define-music-function (parser location lowString
highString)
(string? string?)
#{
	\markup{
		\override #'(baseline-skip . 2)
		\column{\tiny #$highString \tiny #$lowString}
	}
#})

Des idées ?

Cordialement,
Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6448991.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "[email-masked]" <[email-masked]>
Date: Tue, 7 Jun 2011 13:49:21 +0200

> 		\column{\tiny #$highString \tiny #$lowString}

Il faudrait changer les propriétés `text' et `stencil' de StringNumber.

\relative c {
\override StringNumber #'stencil = #ly:text-interface::print
\override StringNumber #'text =
#(lambda (grob)
 (let ((digit (ly:event-property (event-cause grob) 'string-number))
       (roman '("I" "II" "III" "IV" "V" "VI" "VII" "VIII" "IX" "X")))
   (markup #:normal-text (list-ref roman (1- digit)))))

\clef alto
<c\4> <g'\3> <d'\2> <a'\1>
}

Cordialement,
~Mike

---

From: Karim Barkati <[email-masked]>
Date: Tue, 7 Jun 2011 05:11:12 -0700 (PDT)

> Il faudrait changer les propriétés `text' et `stencil' de StringNumber.

Super ! On y est presque !

Je souhaiterais regrouper les numéros d'un accord tous ensemble, en haut (ou
en bas). Pour l'instant,  avec &lt;c\4 g'\3&gt; on a "IV" en bas et "III" en
haut.

\relative c {
\override StringNumber #'direction = #UP

\clef alto
&lt;c\4 g'\3&gt;
}

J'ai essayé sans succès les deux lignes suivantes (indépendamment):
\set Staff.StringNumber = #'(up)
\override StringNumber #'direction = #UP

Musicalement ;)
Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6449257.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Xavier Scheuer <[email-masked]>
Date: Tue, 7 Jun 2011 14:49:07 +0200

> \override StringNumber #'direction = #UP

Pas loin !  ;-)

  \set stringNumberOrientations = #'(up)

Cordialement,
Xavier

-- 
Xavier Scheuer <[email-masked]>

---

From: Karim Barkati <[email-masked]>
Date: Tue, 7 Jun 2011 06:24:34 -0700 (PDT)

Merci Xavier et merci Mike !

Je redonne le code complet qui fonctionne chez moi :

\version "2.12.3"

\relative c {

	\clef alto
	&lt;c\4 g'\3&gt;
}

Cordialement,
Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6449544.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Nicolas Sceaux <[email-masked]>
Date: Tue, 7 Jun 2011 21:16:11 +0200

>   (markup #:normal-text (list-ref roman (1- digit)))))

On peut utiliser `format' pour écrire directement les nombres romains :

guile> (use-modules (ice-9 format) (srfi srfi-1))
guile> (map (lambda (i) (format #f "~@r" i)) (iota 10 1 1))
("I" "II" "III" "IV" "V" "VI" "VII" "VIII" "IX" "X")

Nicolas

---

From: Eluze <[email-masked]>
Date: Wed, 8 Jun 2011 01:59:09 -0700 (PDT)

Karim Barkati wrote:
> 
> Ce code fonctionne dans des accords mais pas sur les notes seules ! Je
> m'en suis rendu compte en essayant de substituer mes vieux "^\markup{\tiny
> III}" avec l'élégant "\3" ;-)
> 
> Ci-dessous un exemple avec "&lt;d'\2&gt; a'\1" : quelqu'un voit pourquoi
> le "la" n'a pas de numéro ?
> 
oui, c'est conçu comme-ça!

d'autre part il y le snippet http://lsr.dsi.unimi.it/LSR/Item?u=1&id=768 qui
peut être utilisé pour saisir les doigtés, strokefinger et stringnumber sans
mettre chaque note dans un accord!
il fonctionne parfaitement avec ces deux \overrides!

cordialement
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6452869.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Karim Barkati <[email-masked]>
Date: Wed, 8 Jun 2011 01:29:56 -0700 (PDT)

Bonjour,

Ce code fonctionne dans des accords mais pas sur les notes seules ! Je m'en
suis rendu compte en essayant de substituer mes vieux "^\markup{\tiny III}"
avec l'élégant "\3" ;-)

Ci-dessous un exemple avec "&lt;d'\2&gt; a'\1" : quelqu'un voit pourquoi le
"la" n'a pas de numéro ?

Cordialement,
Karim

\version "2.12.3"

\relative c {

	\clef alto
	&lt;c\4 g'\3&gt; &lt;d'\2&gt; a'\1
}

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6452784.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Karim Barkati <[email-masked]>
Date: Wed, 8 Jun 2011 06:24:55 -0700 (PDT)

Merci Eluze pour le lien vers \addFingering, mais cette solution d'écrire à
part est trop lourde pour ma gravure en cours où les indications de numéros
de cordes sont plutôt éparses.

Je vais donc laisser mes "\markup" pour les notes isolées.

Cordialement,
Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6453600.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Wed, 8 Jun 2011 08:09:44 -0700 (PDT)

Karim Barkati wrote:
> 
> Merci Eluze pour le lien vers \addFingering, mais cette solution d'écrire
> à part est trop lourde pour ma gravure en cours où les indications de
> numéros de cordes sont plutôt éparses.
> 
si on place les définitions du LSR dans un fichier qu'on inclut
régulièrement, ça devient tout facile, voire idéal pour marquer des notes
singulières.

numbers = {
  \override StringNumber #'stencil = #ly:text-interface::print 
  \override StringNumber #'text = #(lambda (grob) 
          (let ((digit (ly:event-property (event-cause grob)
'string-number)) 
                (roman '("I" "II" "III" "IV" "V" "VI" "VII" "VIII" "IX" "X"
"XI" "XII" "XIII" "XIV" "XV" "XVI" "XVII" "XIII" "XIX" "XX"))) 
               (markup #:normal-text (list-ref roman (1- digit))))) 
}

le code de la pièce se réduit alors à:

{  
  \numbers
  c d e f |
  c d \addStringNumber e #"4" f |
  c \addStringNumber d #"3" e f |
}

(je ne joue pas le violoncelle!)

et on peut définir un nom plus court pour cette fonction!

cordialement
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6454080.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Thu, 9 Jun 2011 02:26:44 -0700 (PDT)

Karim Barkati wrote:
> 
> Alors avec \addStringNumber, j'obtiens l'erreur suivante pour le code
> ci-dessous... Est-ce que je dois passer à la version 2.14 ?
> 
non, pas nécessaire!

> Erreur : chaîne d'échappement inconnue : « \addStringNumber »
> 
> 
cela indique que la définition de \addStringNumber n'est pas présente - il
faut donc inclure le code du snippet (en effaçant les parties exemples) soit
dans le fichier lui-même (ce qui fait un peu lourd, en effet) soit dans un
autre fichier (par ex. "snippets.ly" qui lui sera inclu avant le code:

\version "2.12.3" 

\include "snippets.ly"

numbers = { 

{   
  \numbers 
  c d e f | 

bien sur on peut aussi mettre la définition numbers = … ci-dessus dans ce
fichier.

cordialement
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6457123.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Karim Barkati <[email-masked]>
Date: Thu, 9 Jun 2011 02:12:47 -0700 (PDT)

\version "2.12.3"

numbers = {

{  
  \numbers
  c d e f |

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6457099.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Thu, 9 Jun 2011 09:06:48 -0700 (PDT)

Karim Barkati wrote:
> 
> Merci Eluze, ça fonctionne pour les notes hors des accords avec
> \addStringNumber !
> 
> J'ai téléchargé le code à l'adresse suivante :
> https://lsr.dsi.unimi.it/form.php?type=snippet;id=768;rld=m_snippet
> 
> Puis j'ai mis en commentaire les exemples de la fin.
> 
> Enfin, j'ai ajouté dans mon fichier principal la ligne suivante :
> \include "fingering.ly" 
> 
très bien 

> Une chose m'a cependant surpris concernant la place du numéro, car je
> m'attendais à ce qu'il vienne juste après le nom de la note, or il doit
> venir juste avant le nom de la note suivante, ce qui peut devenir assez
> difficile à relire dans certains cas :
> 
> \addStringNumber bih16:64->\ppp^\markup{arco s.p. gliss., accel.}
> \glissando \< [ #"3" a!16:64-> \! ]
> 
en effet, c'est chargé!

> Peut-être que ça serait plus facile à relire (et donc à maintenir) en
> plaçant le numéro comme premier argument de \addStringNumber ?
> 
pourquoi ne pas séparer les diverses instructions et mettre - par ex. - les
dynamiques dans une voix supplémentaire, les textes dans une autre et ainsi
de suite?!

\context Staff << 
  \context Voice = "musique" { … }
  \context Voice = "dynamiques" { s4 s s s \ppp s s  … }
  \context Voice = "annotations" { s4 s s s -\markup bonjour s s  … }

la voix qui n'utilise que des skips (s) peut facilement être construite à
l'aide d'un autre snippet:  http://lsr.dsi.unimi.it/LSR/Item?u=1&id=507
Ghost voice  (décidément, je fais la PR pour les snippets de Gilles!)

cordialement
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6458524.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Fri, 10 Jun 2011 04:03:31 -0700 (PDT)

Karim Barkati wrote:
> 
> Du coup, je continue de penser que le design de la fonction
> \addStringNumber gagnerait à passer le numéro de corde en *premier*
> argument, par exemple pour pouvoir écrire ma ligne chargée tout en la
> gardant lisible:
> 
> \addStringNumber #"3" bih16:64->\ppp^\markup{arco s.p. gliss., accel.}
> \glissando \< [ a!16:64-> \! ] 
> 
> 
pour cela je pense qu'il suffit de changer l'ordre des paramètres - je
redéfinis la nouvelle fonction:

myStringNumber =  #(define-music-function (parser location fingerStr music) 
                                                             (string?
ly:music?)  
  (add-articulation 'StringNumberEvent 'string-number 0 9 music fingerStr))

cordialement
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6461747.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Karim Barkati <[email-masked]>
Date: Fri, 10 Jun 2011 02:58:19 -0700 (PDT)

Eluze wrote:
> 
> pourquoi ne pas séparer les diverses instructions et mettre - par ex. -
> les dynamiques dans une voix supplémentaire, les textes dans une autre et
> ainsi de suite?!
> 

Merci Eluze, c'est une solution sympathique que je vais garder dans un coin
de ma tête :) Cependant, dans cette partition je trouve que c'est plus
facile d'avoir les dynamiques directement spécifiées avec la note à laquelle
elles sont rattachées, pour pouvoir s'y retrouver dans cette pièce qui
utilise de la polyphonie sur une seule portée, des rythmes un peu
compliqués, n'a pas toujours de barres de mesure et qui dure 12 minutes !

Du coup, je continue de penser que le design de la fonction \addStringNumber
gagnerait à passer le numéro de corde en *premier* argument, par exemple
pour pouvoir écrire ma ligne chargée tout en la gardant lisible:

Cordialement,
- Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6461546.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Karim Barkati <[email-masked]>
Date: Thu, 9 Jun 2011 04:37:58 -0700 (PDT)

\addStringNumber bih16:64->\ppp^\markup{arco s.p. gliss., accel.} \glissando
\< [ #"3" a!16:64-> \! ]

Cordialement,
- Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6457414.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "Gilles THIBAULT" <[email-masked]>
Date: Fri, 10 Jun 2011 16:25:19 +0200

> \glissando \< [ a!16:64-> \! ]
Je viens de découvrir qu'il y a pleins de messages qui ne sont pas passés 
par la liste Lilypond. Je viens d'en prendre connaissances que par Nabble.

Réécrire \addStringNumber pour chaques notes c'est quand même un peut lourd.
Mais comme je suis aussi d'accord pour dire que c'est aussi un peu lourd si 
on doit écrire des "xxxxxxxxxxxxxxx" à répétitions, j'ai rajouté la 
possibilité de l'écrire d'une manière plus simple :
"*15x" par exemple sera alors converti par la fonction, en "xxxxxxxxxxxxxxx" 
(15 fois x)
[Ne pas mettre d'espaces]

Par exemple
\addStringNumber \music
             #"1234
                *15x    % 15 notes + tard (en comptant les notes dans les 
accords)
                1234"

Ci-joint le .ly

Gilles

---

From: Eluze <[email-masked]>
Date: Fri, 10 Jun 2011 09:05:33 -0700 (PDT)

merci, Gilles!

petit détail gênant un peu:

avec l'ancienne version je pouvais écrire \addFingering \music #"" alors que
maintenant je suis obligé de mettre une espace #" " entre les guillemets.

le message est:

Parsing...ERROR: Value out of range: 0

cordialement
Eluze

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6462858.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: "Gilles THIBAULT" <[email-masked]>
Date: Fri, 10 Jun 2011 18:45:51 +0200

> maintenant je suis obligé de mettre une espace #" " entre les guillemets.

Oups, j'avais pas prévu ce cas là ! Pas bien ça.
La version ci-jointe devrait arranger ça.

Gilles

---

From: Karim Barkati <[email-masked]>
Date: Fri, 10 Jun 2011 08:55:24 -0700 (PDT)

Ca fonctionne ;) 
Merci Eluze !

Dans l'idéal, il ne resterait plus qu'à supporter l'écriture avec la barre
contre-oblique comme dans les accords (par ex. "bih16:64\3"), mais là j'ai
déjà réécrit la partition avec \myStringNumber et ça me suffit 8-)

Musicalement,
Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6462815.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Karim Barkati <[email-masked]>
Date: Fri, 10 Jun 2011 08:56:53 -0700 (PDT)

Merci Gilles !

Ca promet d'être très pratique ;-)

- Karim

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6462822.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.

---

From: Eluze <[email-masked]>
Date: Fri, 10 Jun 2011 14:51:16 -0700 (PDT)

> La version ci-jointe devrait arranger ça.
perfetto, merci!

--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Numeros-de-cordes-en-chiffres-romains-dans-des-accords-tp6448991p6463886.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.