Subject: [Fisarmonica] - concatenation de texte en scheme

From: Daniel Cartron <[email-masked]>
Date: Sat, 01 Jun 2013 17:13:07 +0200

Bonjour,

J'ai écrit ce qui suit pour fabriquer des markup à la volée :

(define corg 
 '(
  ( (1 1) . ( _\markup{ } ) )
  ( (1 2) . ( ^\markup{ } ) )
  ( (1 3) . ( ^\markup{\column {\line{ }\null}} ) )
  ( (2 1) . ( _\markup{\underline } ) )
  ( (2 2) . ( ^\markup{\underline } ) )
  ( (2 3) . ( ^\markup{\column{\line\underline{ }\null}} ) )
))

(define syst corg)
(define (btn-markup btn-ref)
	(list
		(car(assoc-ref syst (list (caar btn-ref) (cadar btn-ref))))
		(caddar btn-ref)
		(cadr(assoc-ref syst (list (caar btn-ref) (cadar btn-ref))))
	)
)

(define btn-ref '((2 3 7)))  ; le "button-pitch" dont je parlais précédemment
s'il est écrit avec des (()) c'est parce que c'est comme ça que ma fonction 
précédente le renvoit

(btn-markup btn-ref)

et je récupère une liste (^\markup{\column{\line\underline{ 7 }\null}})

J'ai mis ça sous forme de liste sinon je n'ai que la dernière ligne de (btn-
markup btn-ref) qui s'affiche. Mais ce que je veux c'est un texte concaténé 
que je vais ensuite accoler à une note.

J'ai essayé string-append mais j'ai des erreurs, string-join idem, je ne vois 
plus.

Par ailleurs au départ j'avais écrit ma liste associative avec des "" et des 
\\ et j'ai constaté que ça ne fait pas d'erreur comme ça, mais une fois 
réintégré dans le reste du code, je me demande...

Si une bonne âme peut me donner son avis, voire me corriger...

Merci.

-- 
Cordialement, Daniel Cartron
«Madame! N'achetez plus de tissu écossais. Écossez vous-même vos tissus! »
Francis Blanche

---

From: Daniel Cartron <[email-masked]>
Date: Tue, 04 Jun 2013 11:08:31 +0200

Le samedi 1 juin 2013 17:13:07 Daniel Cartron a écrit :
Bonjour, 

Je me permet de faire remonter mon courrier de samedi, car je n'ai pas 
trouvé de réponse dans mes fouilles sur le web...

Merci

> (define btn-ref '((2 3 7)))  ; le "button-pitch" dont je parlais
> précédemment s'il est écrit avec des (()) c'est parce que c'est comme ça
> que ma fonction précédente le renvoit
> 
> (btn-markup btn-ref)
> 
> J'ai essayé string-append mais j'ai des erreurs, string-join idem, je ne
> vois plus.
> 
-- 
Cordialement, Daniel Cartron
« Qui aime bien ses lunettes ménage sa monture. »
Francis Blanche - Mon oursin et moi

---

From: Gazagnes Arnaud <[email-masked]>
Date: Tue, 04 Jun 2013 11:32:34 +0200

Bonjour !Sur ma voix de ténor (avec donc une clé de fa), la partition commence par une pause. Mais quand je saisis le r1, j'obtiens bien une pause mais dessinée plus haut (une octave, en fait). J'ai essayé spontanément r,1 mais cela me donne une erreur à la compilation. Comment puis-je fais pour grever correctement cette pause ?
Merci !
AG

---

From: "j-f.lucarelli" <[email-masked]>
Date: Tue, 4 Jun 2013 12:23:10 +0200

Tout d'abord, si la pause occupe toute la mesure, il est préférable d'utiliser R1, ce qui va centrer la pause sur la mesure.
Et pour la position verticale, la pause se place par défaut à sa posistion standard (sous la 4ième ligne en commençant par le bas), sauf si la musique est de style polyphonique, auquel cas la pause sera remontée ou descendue selon qu'elle appartient à la première ou à la seconde voix.
Pour modifier ce comportement, il existe plusieurs méthodes :

La plus simple : écrire b1 \rest (ou b'1, pour amener le silence sur l'octave correcte) - ce qui transforme le 'si' en silence équivalent. Inconvénients, le silence ne sera pas centré horizontalement et la note sera transcrite en midi.
La méthode la plus logique :
  \once \override MultiMeasureRest #'staff-position = #2 R1       % pour travailler avec les silences multimesures, centrés horizontalement
  \once \override Rest #'staff-position = #0 r1                         % pour travailler avec un silence ordinaire
Les valeurs #2 et #1 sont à ajuster au cas par cas. Normalement, #0 indique un centrage vertical sur la portée, mais dans le cas d'une pause, le mot "centrage" est quelque peu équivoque.

Cordialement,

Jean-François

>Bonjour !
>Sur ma voix de ténor (avec donc une clé de fa), la partition commence par une pause. Mais quand je saisis le r1, j'obtiens bien une pause mais dessinée plus haut (une octave, en fait). J'ai essayé >spontanément r,1 mais cela me donne une erreur à la compilation. Comment puis-je fais pour grever correctement cette pause ?
>Merci !
>AG

---

From: Jean-Jacques Gerbaud <[email-masked]>
Date: Tue, 04 Jun 2013 12:53:57 +0200

> Bonjour !
Bonjour Arnaud,

Sur ma voix de ténor (avec donc une clé de fa), la partition commence 
par une pause. Mais quand je saisis le r1, j'obtiens bien une pause mais 
dessinée plus haut (une octave, en fait). J'ai essayé spontanément r,1 
mais cela me donne une erreur à la compilation. Comment puis-je fais 
pour grever correctement cette pause ?

Normalement on met une

\relative c' {

Je propose que tu mettes :

\relative c {
%%%%%%%%%%%%%%%%%%

Ca serait trop simple pour que ça marche  !!! :-)

-- 
JJG

Linux ? Y a moins bien mais c'est plus cher !
http://www.radiosuisseclassique.ch/fr

---

From: Daniel Cartron <[email-masked]>
Date: Tue, 04 Jun 2013 13:03:41 +0200

> trouvé de réponse dans mes fouilles sur le web...

Finalement en trafiquant mon "dictionnaire" de notes, et en utilisant string-
concatenate il semble que j'arrive au résultat recherché, donc désolé du 
dérangement.

Ceci dit le point sur laquelle je butais est que j'ai une fonction qui renvoit 
un nombre, donc refus catégorique de scheme de l'inclure dans une chaine... Il 
y a une solution autre que remplacer les nombres par des "nombre" dans la 
liste d'origine ?

-- 
Cordialement, Daniel Cartron
« L'homme descend du singe. Or, l'homme est fait à l'image de Dieu. Donc, Dieu 
est King-Kong. »
François Cavanna - Le saviez-vous ?

---

From: Gilles <[email-masked]>
Date: Tue, 04 Jun 2013 18:18:01 +0200

Le Tue, 04 Jun 2013 13:03:41 +0200, Daniel Cartron <[email-masked]> a  

> y a une solution autre que remplacer les nombres par des "nombre" dans la

number->string ?

-- 
Gilles

---

From: Daniel Cartron <[email-masked]>
Date: Tue, 04 Jun 2013 19:38:58 +0200

> number->string ?

je cherchais un truc de ce genre mais pas trouvé dans les docs que j'ai 
fouillées. Je vais tester. Merci.

-- 
Cordialement, Daniel Cartron
« Je pompe donc je suis. »
Devise Shadock

---

From: Gazagnes Arnaud <[email-masked]>
Date: Wed, 05 Jun 2013 16:01:40 +0200

C'était effectivement trop simple ! La preuve, je l'avais essayé ! AG

---

From: Gazagnes Arnaud <[email-masked]>
Date: Wed, 05 Jun 2013 16:04:46 +0200

Bonjour !
Effectivement, la pause occupe toute la mesure et la musique est de style polyphonique... 
La méthode "la plus simple" (écrire b1 \rest) n'a pas l'air de faire de changement. Par contre, la méthode "la plus logique", marche bien. Merci !
AG