Bonjour,
Est-ce que quelqu'un pourrait m'aiguiller pour réaliser une fonction scheme de filtrage. L'idée est de réaliser une fonction qui me permettrait facilement de séparer les notes d'un instrument en fonction des articulations. Ainsi je pourrais, à partir d'une portée destinée à l'impression, générer 4-5 portées midi, une pour les notes normales, la deuxième pour les notes staccato, etc. Et ensuite je pourrais assigner ces pistes aux sons de l'instrument, avec une piste par articulation.
Exemple :
%%%%%%%%%%%
\version "2.20.0"
music = \relative c'
{
c8 c-. d( e f) g4-- a8
}
% normal = \keepOnly "n" \music % générerait :
normal = \relative c'
{
c8 r r4 r r8 a'
}
% dotted = \keepOnly "d" \music% générerait :
dotted = \relative c'
{
r8 c r4 r2
}
% slurred = \keepOnly "s" \music% générerait :
slurred = \relative c'
{
r4 d8 e f r8 r4
}
\score {
<<
\music
\normal
\dotted
\slurred
>>
}
%%%%%%%
Je ne souhaite pas que quelqu'un me fasse tout ce travail, au contraire : j'ai envie de profiter de cette motivation pour progresser en scheme. Mais je ne sais pas trop comment m'y prendre.
Je présume que ma fonction commencera ainsi :
keepOnly = #(define-music-function (what music) (string ly:music?))
mais à l'intérieur, je ne sais pas comment commencer. Il y aura probablement une ligne avec (case what , mais ça m'énerve de pas m'en sortir.
Merci de votre aide !
Christophe Pochon