|
2001-11-28 - Représentation des paroles avec compo
Considérons cet espèce de morphing entre la mélodie d'une
comédie musicale éminemment populaire, et quelque composition
dans le style d'un motet médiéval, où une voix entonne
le même texte que l'autre voix, mais deux fois plus lentement :
Entendre
Toute section de la forme (lyrics ...) au sein d'un script compo
correspond à une section de texte destinée à figurer sur
la partition. Chaque syllabe ou mot est représentée par une note
élémentaire incluant du texte sous la forme d'une chaîne
de caractères, comme par exemple :
(lyrics ("I'm")("sin-")("ging")("in")("the")("rain"))
Mais pour que le texte figure effectivement sous une portée, il doit
être associé à la voix correspondante, simplement en positionnant
la propriété de voix de manière appropriée, au niveau
de l'objet lyrics :
(lyrics :treble ("I'm")("sin-")("ging")("in")("the")("rain"))
Notez que bien qu'il figure ici, :treble est la valeur par défaut
de la voix et n'a donc pas besoin d'être spécifié.
Ainsi, en synchronisant cette expression avec toute autre expression à
la voix de treble contenant des notes, le texte viendra se positionner sous
chaque note ayant la même position. Deux conditions sont nécessaires
pour cette synchronisation. La section de paroles et la section de notes doivent
être placées à l'intérieur d'une structure contenant
le mot-clé :sync, indiquant un départ simultané
des deux sections :
(note :sync
(lyrics :tenor ("I'm")("sin-")("ging")("in")("the")("rain"))
(:tenor (:c)(:c5 :dur (+ :h :8th))(:a :8th)(:g :8th)(:f
:8th)(:d :h.)))
et chaque partie de texte doit être positionnée de manière
équivalente à la note correspondante :
(note :sync
(lyrics :tenor ("I'm")("sin-" :dur (+ :h :8th))("ging"
:8th)("in" :8th)("the" :8th)("rain"
:h.))
(:tenor (:c)(:c5 :dur (+ :h :8th))(:a :8th)(:g :8th)(:f
:8th)(:d :h.)))
Bien entendu, si vous connaissez déjà compo, vous aurez noté
que, dans l'exemple de partition ci-dessus, la première moitié
de la voix de treble, et toute la voix de basse peuvent être représentées
par le même objet :
(note :sync
x=(:sync
(lyrics (:rest :h.)("I'm")("sin-"
:dur (+ :h :8th))("ging" :8th)("in" :8th)("the"
:8th)("rain" :h.))
((:rest :h.)(:c)(:c5 :dur (+ :h :8th))(:a :8th)(:g
:8th)(:f :8th)(:d :h.)))
(:treble x ...)
(:bass :c3 :h x))
Ainsi, non seulement les notes musicales peuvent être partagées,
mais également les paroles associées. Maintenant supposons que
l'exemple doivent être répété deux fois, la basse
entonnant la seconde partie du texte lors de la répétition. Ceci
est représenté sur la partition ainsi :
La seconde ligne sous la portée en clé de fa étant le
même texte que celui de la seconde partie de la voix de treble, ce texte
peut également être abstrait dans une variable afin d'être
partagé :
y=(lyrics ("Just")("sin-" :dur
(+ :h :8th))("ging" :8th)("in" :8th)("the" :8th)("rain"
:h.))
Voici finalement le source complet de cet exemple :
(note :sync
x=(:sync
(lyrics (:rest :h.)("I'm")("sin-"
:dur (+ :h :8th))("ging" :8th)("in" :8th)("the"
:8th)("rain" :h.))
((:rest :h.)(:c)(:c5 :dur (+ :h :8th))(:a :8th)(:g
:8th)(:f :8th)(:d :h.)))
y=(lyrics ("Just")("sin-" :dur (+ :h
:8th))("ging" :8th)("in" :8th)("the" :8th)("rain"
:h.))
(x (:sync y (:c)(:f :dur (+ :h :8th))(:f :8th)(:g
:8th)(:a :8th)(:c5 :h.))
(:bass :c3 :h :sync x ((:rest :h.) (:bf y))))
Notez la hauteur :bf à la dernière instance de y,
qui est le moyen d'indiquer que le texte correspondant doit être placé
en deuxième ligne.
|