Bonjour,
J'avais récupéré une fonction dans le LSR qui permet d'ajouter des signes
d'articulation à une série de notes. Et ça marchait très bien... jusqu'au
passage en 2.16 qui l'ignore complètement. Qu'est-ce qui a changé ?
Voici le code:
\version "2.16.0"
%%% addStacc ..........................................
#(define (make-script x)
(make-music 'ArticulationEvent
'articulation-type x))
#(define (add-script m x)
(if
(equal? (ly:music-property m 'name) 'EventChord)
(set! (ly:music-property m 'elements)
(append (ly:music-property m 'elements)
(list (make-script x)))))
m)
#(define (add-staccato m)
(add-script m "staccato"))
addStacc =
#(define-music-function (parser location music)
(ly:music?)
(music-map add-staccato music))
%%% fin addStacc ............................................
\score {
\relative c'' {
c c c c
\addStacc { c c c c } %% ajoute un point (staccato) aux notes entre { }
}
}
Cordialement,
Michel
···
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Ajout-de-staccato-tp7578476.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.
Le 24/09/2012 17:34, Philhar disait :
Bonjour,
J'avais récupéré une fonction dans le LSR qui permet d'ajouter des signes
d'articulation à une série de notes. Et ça marchait très bien... jusqu'au
passage en 2.16 qui l'ignore complètement. Qu'est-ce qui a changé ?
En pareil cas, j'intégrerais la « formule » dans un fichier d'une version précédente et comparerais avec ce qui résulte d'un
convert-ly. Les changements de syntaxe sont normalement réalisés automatiquement (comme \markuplines qui est devenu \markuplist).
@+
Jean-Charles
En pareil cas, j'intégrerais la « formule » dans un fichier d'une
version précédente et comparerais avec ce qui résulte d'un
convert-ly. Les changements de syntaxe sont normalement réalisés
automatiquement (comme \markuplines qui est devenu \markuplist).
convert-ly ne change que le n° de version.
Je crois d'ailleurs que convert-ly ne modifie pas le code Scheme.
Michel
···
_______________________________________________
liste de diffusion lilypond-user-fr
lilypond-user-fr@
https://lists.gnu.org/mailman/listinfo/lilypond-user-fr
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Ajout-de-staccato-tp7578476p7578479.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.
J'avais récupéré une fonction dans le LSR qui permet d'ajouter des signes
d'articulation à une série de notes. Et ça marchait très bien... jusqu'au
passage en 2.16 qui l'ignore complètement. Qu'est-ce qui a changé ?
Voici le code:
C'est parce-que la structure interne des notes a changé.
Ce code ne marchera que pour les accords, qui eux n'ont pas changé.
Plusieurs solutions
1- réécrire soi-même le code en tenant compte de la nouvelle structure ...
2- Utiliser la fonction \eventChords qui a été spécialement faite
pour ceux qui voudraient utiliser des "vieilles fonctions".
\addStacc \eventChords { c c c c }
(voir LilyPond Changes: New features in 2.16 )
3- Utiliser un snippet dont la mise à jour a été faite.
J'utilise celui-ci :
http://lsr.dsi.unimi.it/LSR/Item?id=769
avec la mise à jour pour 2.16 ici :
http://gillesth.free.fr/Lilypond/copyArticulations/copyArticulations.ly
%%%%%%%%
\include "copyArticulations.ly"
addStacc = #(define-music-function (parser location x) (ly:music?)
#{
\copyArticulations c-. $x
#})
\score {
\relative c'' {
c c c c
\addStacc { c c c c } %% ajoute un point (staccato) aux notes
}
}
%%%%%%%%
···
--
Gilles
Plusieurs solutions
1- réécrire soi-même le code en tenant compte de la nouvelle structure ...
%%%%%%%%%%%%%%%%
\version "2.16.0"
%%% addStacc ..........................................
#(define (make-script x)
(make-music 'ArticulationEvent
'articulation-type x))
#(define (add-script m x)
(case (ly:music-property m 'name)
((NoteEvent) (set! (ly:music-property m 'articulations)
(append (ly:music-property m 'articulations)
(list (make-script x))))
m)
((EventChord)(set! (ly:music-property m 'elements)
(append (ly:music-property m 'elements)
(list (make-script x))))
m)
(else #f)))
#(define (add-staccato m)
(add-script m "staccato"))
addStacc = #(define-music-function (parser location music)
(ly:music?)
(map-some-music add-staccato music))
%%% fin addStacc ............................................
\score {
\relative c'' {
c c c c
\addStacc { c\p <c e> c-> c }
%% ajoute un point (staccato) aux notes entre { }
}
}
%%%%%%%%%%%%%%%%%%%%%%
···
--
Gilles
Plusieurs solutions
1- réécrire soi-même le code en tenant compte de la nouvelle
structure ...
Merci Gilles d'avoir réécrit le code de cette fonction.
Je ne comprends pas grand chose au Scheme, mais j'essaie simplement
d'adapter du code existant à mes besoins personnels. Et là, j'aurais eu bien
du mal.
Je me voyais mal reprendre les centaines de fichiers de musique où j'ai
utilisé cette fonction. Heureusement, j'ai placé la définition de la
fonction dans un fichier Global pour chaque partition, ce qui m'évitera de
revoir les fichiers de musique.
Cordialement,
Michel
···
--
View this message in context: http://lilypond-french-users.1298960.n2.nabble.com/Ajout-de-staccato-tp7578476p7578484.html
Sent from the LilyPond French Users mailing list archive at Nabble.com.