-
Notifications
You must be signed in to change notification settings - Fork 0
Addition et Multiplication
(à l'usage des implémenteurs)
Afin de facilité l'écriture des scores, les méthodes +
et *
de ruby ont été profondément modifiées (particulièrement la multiplication).
Ainsi, le code :
"a" + "b"
… au lieu de produire :
=> "ab"
… va produire :
=> "a b"
Cela permet d'additionner facilement les notes, par exemple pour créer un motif :
anoire = "a4"
cblanche = "c2"
dcroche = "d8"
mon_motif = Motif::new anoire + cblanche + dcroche
La même chose pour les multiplications :
"c" * 4 # => "c c c c"
# au lieu de : "cccc"
"a c" * 2 # => "\relative c'' { a c } \relative c'' { a c }" (*)
# au lieu de : "a ca c"
(*) Notez les \relative
qui ont été ajoutés ci-dessus afin de permettre au motif d'être toujours inscrit à la même hauteur. Dans le cas contraire, vous pourriez voir votre motif multiplié s'envoler dans les airs ou s'enfoncer dans le sol…
Il est cependant fortement recommandé, pour exécuter de telles opérations, de passer plutôt par les motifs, où les octaves seront conservées avec plus de certitude. Par exemple :
mo = Motif:new :motif => "a b c", :octave => 4
new_motif = mo * 3
# => new_motif = "\relative c'''' { a b c } \relative c'''' { a b c } \relative c'''' { a b c }"
Pour compenser l'utilisation de +
et de *
dans un processus normal, les méthodes suivantes ont été implémentées :
plus (remplace +
)
c = "im".plus("probable")
# => c = "improbable"
add (remplace +=
)
c = "im"
c.add("probable")
# => c = "improbable"
fois ou x (remplace *
)
str = "a".fois 4
# => str = "aaaa"
str = "bon".x 2
# => str = "bonbon"