Subject: transpose global (avec variable ?)

From: Daniel Cartron <[email-masked]>
Date: Fri, 03 May 2013 21:11:54 +0200

Bonsoir,

J'ai des morceaux composés de plusieurs parties (notées dans des variables).

J'ai besoin de les transposer dans une autre tonalité.

J'aimerais pouvoir indiquer en début de fichier un truc du genre : 
\Tune = {mib} et pouvoir réutiliser ça dans tous les \transpose, pour ne pas 
avoir à tous les rechercher et les rectifier un par un.

Lily tousse si je fais ça brutal : \transpose sol \Tune \MaMélodie...

Ya moyen de faire ça ou pas ?

Merci

-- 
Cordialement, Daniel Cartron
« Qui rit sous l'okoumé, pleure sous l'acajou. »
Proverbe bantou - Alexandre Vialatte

---

From: Gilles <[email-masked]>
Date: Fri, 03 May 2013 22:31:58 +0200

> \Tune = {mib} et pouvoir réutiliser ça dans tous les \transpose, pour ne  

Bonjour.
As tu essayé avec
Tune = mib ?

-- 
Gilles

---

From: Pierre Perol-Schneider <[email-masked]>
Date: Sat, 4 May 2013 10:24:58 +0200

Bonjour Daniel,
Je pense que tu es obligé de passer par scheme pour faire ça :

\version "2.17.15"
%\version "2.16.2"
\include "italiano.ly"
Tune =
#(define-music-function (parser location m)
 (ly:music?)
  #{ \transpose sol mib $m #})

\Tune
\relative do'
{
\key do \major
do do do do
}

---

From: Gilles <[email-masked]>
Date: Sat, 04 May 2013 10:46:26 +0200

> Le vendredi 3 mai 2013 22:31:58 vous avez écrit :
> j'ai essayé plusieurs variantes mais à chaque fois l'erreur est la mm :
> Erreur : syntax error, unexpected MUSIC_IDENTIFIER, expecting  
> NOTENAME_PITCH
> or TONICNAME_PITCH
> 			\transpose sol
>                                        \Tune \
>
[Oups, nous discutions en privé, je renvois à toute la liste]

Ah ? Avec la 2.16.0, ceci marche

%%%%%%%%%%%%%%%%%%%%%
tune = c'
music = \relative { c4 d e f g1}

\new Staff \music
\new Staff \transpose c \tune \music
%%%%%%%%%%%%%%%%%%%%%%%%

Note que si j'enlève les \new Staff, j'ai le même message que tu signales.
Après il faut peut-être mettre le \language au bon endroit.

-- 
Gilles

---

From: Jean-Charles Malahieude <[email-masked]>
Date: Sat, 04 May 2013 14:43:55 +0200

> Ah ? Avec la 2.16.0, ceci marche

Petite remarque, qui peut je crois être bien utile :

Je suis en train de « refaire » une passion, ce qui implique un nombre 
certain d'inclusions (un dossier par numéro, et un fichier par pupitre).
Dans la mesure où la mise en forme finale (parties instrumentales, 
chœur, conducteur, collection midis) fait l'objet d'un ficher propre à 
la racine du projet, le seul endroit où la définition de la langue est 
nécessaire se trouve être le fichier principal (dans la mesure où elle 
est identique pour tout le monde).

Il en va de même pour les clefs : le ténor, pour me relire, apparaît en 
ut 4, alors qu'il a déjà du mal à lire la clef de sol. Je joue donc sur 
une variable (TenorK) qui adoptera une valeur différente dans le 
conducteur et la partition du chœur.

En tête de Conducteur.ly j'ai : TenorK = \clef "tenor"
En tête de Choeur.ly j'ai : TenorK = \clef "G_8"

et partout où il y a du ténor
|  \new Staff = "tenor" <<
|    \TenorK
|    \new Voice = "tenor" <<
|      \include "75/tenorM.ily" \include "75/global.ily" >>
|    \new Lyrics \lyricsto "tenor \include "75/tenorL.ily"
|  >>

@+
Jean-Charles

---

From: Gilles <[email-masked]>
Date: Mon, 06 May 2013 14:32:34 +0200

Le Sat, 04 May 2013 10:24:58 +0200, Pierre Perol-Schneider  
<[email-masked]> a écrit:

> Bonjour Daniel,
> Je pense que tu es obligé de passer par scheme pour faire ça

Non, non. Depuis la 2.16 (et si j'ai bien compris), une note seule peut  
être considéré par le parser soit comme un pitch (une hauteur ) soit comme  
une note, en fonction de l'environnement
tune = mib          % <- une hauteur ou une note
tune = mib4         % <- une note
tune = mib-"coucou" % <- une note
Si vous mettez
tune  = mib
music = { \tune }
\tune est une musique,
mais si vous mettez \tune dans une fonction qui nécessite un paramètre  
(ly:pitch?), (comme c'est le cas avec \transpose) ça marchera aussi.
Par contre
tune = mib
\tune %% impossible de déterminer par l'environnement quel type utilisé
=> Erreur : syntax error, unexpected PITCH_IDENTIFIER

Bon, c'est ce que j'ai cru comprendre, ne m'en demandez pas plus.

Donc ça, marche sous 2.16

%%%%%%%%%%%%%%%%%%%%%%%%
\version "2.16.0"
\language "italiano"

tune = mib
music = \relative { do4 re mi fa sol1}

\new Staff \music
\new Staff \transpose do \tune \music

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

-- 
Gilles

---

From: Daniel Cartron <[email-masked]>
Date: Mon, 06 May 2013 17:35:42 +0200

bonne nouvelle, mon pb est que les gens d'ubuntu n'ont pas décidé de passer à 
la 2.13 et je reste bloqué à la 2.14.2. Et comme à chaque fois que j'ai essayé 
d'installer qq chose en dehors des paquets officiels j'ai fini par m'en mordre 
amèrement les doigts j'ai vraiment beaucuop de réticences à retenter...

-- 
Cordialement, Daniel Cartron
« Quand nous nous asseyons sur une brosse à cheveux, nous devenons de modestes 
fakirs. »
Ramon Gomez de la Serna