[ << Notation spécialisée ] | [Top][Contents][Index] | [ Généralités en matière d’entrée et sortie >> ] |
[ < Portées de percussion ] | [ Up : Vue d’ensemble des percussions ] | [ Notes fantômes > ] |
Personnalisation de portées de percussion
LilyPond offre la possibilité de construire son propre style de
percussion grâce à une définition de la propriété drumStyleTable
.
Les notations existantes peuvent se redéfinir au travers d’une liste
associative dans laquelle chaque entrée doit comporter quatre éléments :
un nom, le style de tête de note (ou ‘()’ pour adopter la valeur
par défaut), un éventuel signe d’articulation (ou #f
dans le cas
contraire) et, enfin, le positionnement de la tête de note sur la
portée. Cette liste devra alors être convertie en table de hachage à
l’aide de la fonction alist->hash-table
.
#(define mydrums '( (bassdrum () #f -1) (snare () #f 0) (hihat cross #f 1) (halfopenhihat cross halfopen 1) (pedalhihat xcircle stopped 2) (lowtom diamond #f 3))) up = \drummode { hh8 hh hhho hhho hhp4 hhp } down = \drummode { bd4 sn bd toml8 toml } \new DrumStaff \with { drumStyleTable = #(alist->hash-table mydrums) } << \new DrumVoice { \voiceOne \up } \new DrumVoice { \voiceTwo \down } >>
De nouveaux noms peuvent venir s’ajouter à ces notations personnalisées
grâce à la variable drumPitchNames
qui peut être redéfinie en
tant que liste associative (ou augmentée par ajout d’une nouvelle
liste aux valeurs existantes comme indiqué ci-dessous). Ceci permet par
ailleurs de définir des alias : raccourcis pour la saisie de certaines
notations.
drumPitchNames = #(append '((leftsnap . sidestick) (rightsnap . ridecymbal)) drumPitchNames) drumPitchNames.ls = #'sidestick drumPitchNames.rs = #'ridecymbal \drums { leftsnap4. rightsnap8 leftsnap4 rightsnap ls8 rs ls rs ls4 rs }
De la même manière, la propriété drumPitchTable
associe une
hauteur spécifique (autrement dit un son instrumental différent tel que
fourni par les fontes sonores MIDI disponibles) à chaque notation. Cette
propriété requiert d’être définie sous forme de table de hachage,
convertie elle aussi à partir d’une liste associative (enregistrée par
défaut en tant que variable midiDrumPitches
). La redéfinition de
ces associations s’effectue comme indiqué ci-dessus, soit en créant
l’intégralité d’une liste associative, soit certains de ses membres.
L’exemple ci-dessous démontre la manière de créer un jeu entier de
notation, avec sa propre syntaxe de saisie, sa notation personnalisée et
les instruments MIDI correspondants.
drumPitchNames.dbass = #'dbass drumPitchNames.dba = #'dbass % 'db is in use already drumPitchNames.dbassmute = #'dbassmute drumPitchNames.dbm = #'dbassmute drumPitchNames.do = #'dopen drumPitchNames.dopenmute = #'dopenmute drumPitchNames.dom = #'dopenmute drumPitchNames.dslap = #'dslap drumPitchNames.ds = #'dslap drumPitchNames.dslapmute = #'dslapmute drumPitchNames.dsm = #'dslapmute #(define djembe-style '((dbass () #f -2) (dbassmute () stopped -2) (dopen () #f 0) (dopenmute () stopped 0) (dslap () #f 2) (dslapmute () stopped 2))) midiDrumPitches.dbass = g midiDrumPitches.dbassmute = fis midiDrumPitches.dopen = a midiDrumPitches.dopenmute = gis midiDrumPitches.dslap = b midiDrumPitches.dslapmute = ais test = \drummode { dba4 do ds dbm dom dsm } \score { \new DrumStaff \with { \override StaffSymbol.line-count = 3 instrumentName = "Djembé " drumStyleTable = #(alist->hash-table djembe-style) drumPitchTable = #(alist->hash-table midiDrumPitches) } { \time 3/4 \test } \layout {} \midi {} }
Voir aussi
Fichiers d’initialisation : ly/drumpitch-init.ly.
Morceaux choisis : Percussion.
[ << Notation spécialisée ] | [Top][Contents][Index] | [ Généralités en matière d’entrée et sortie >> ] |
[ < Portées de percussion ] | [ Up : Vue d’ensemble des percussions ] | [ Notes fantômes > ] |