カスタム打楽器譜

カスタム打楽器スタイルを定義することができます。スタイルは連想配列として定義し、drumStyleTable プロパティにセットします。連想配列の各エントリは 4 つのアイテムからなります: 名前・符頭のスタイル (デフォルトは default)・アーティキュレーション (必要ない場合には #f)・譜内の符頭の位置です。この連想配列は最終的に alist->hash-table 関数を用いて Scheme ハッシュテーブルに変換しなければなりません。

#(define mydrums '(
         (bassdrum        default   #f           -1)
         (snare           default   #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 <<
  \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
  \new DrumVoice { \voiceOne \up }
  \new DrumVoice { \voiceTwo \down }
>>

[image of music]

drumPitchNames 変数を連想配列として再定義することで、これらのカスタム スタイルに新たな名前を追加することもできます (あるいは下の例のように、新たなリストを既存の値に append することによって追加することもできます)。また、各項目を直接追加することもできます。これを用いて、エイリアス (略記法) を定義することができます。

drumPitchNames =
  #(append
    '((leftsnap . sidestick)
      (rightsnap . ridecymbal))
    drumPitchNames)

drumPitchNames.ls = #'sidestick
drumPitchNames.rs = #'ridecymbal

\drums {
  leftsnap4. rightsnap8 leftsnap4 rightsnap
  ls8 rs ls rs ls4 rs
}

[image of music]

同様に、drumPitchTable プロパティは音符名と MIDI ピッチ (MIDI サウンドフォントの楽器音) を関連付けています。このプロパティもハッシュテーブルとして定義される必要があり、連想配列 (デフォルト値が midiDrumPitches 変数にセットされています) から変換しなければなりません。関連付けを変更する方法は上記と同様で、連想配列全体を定義し直すか、各要素を変更するかのどちらかになります。次の例は、入力構文・出力スタイル・対応する MIDI 出力を含めた、新たな記譜法のセットを作る方法を示しています。

drumPitchNames.dbass      = #'dbass
drumPitchNames.dba        = #'dbass  % 'db は既に使われています
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      default  #f         -2)
    (dbassmute  default  stopped    -2)
    (dopen      default  #f          0)
    (dopenmute  default  stopped     0)
    (dslap      default  #f          2)
    (dslapmute  default  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 {}
}

[image of music]

参照

インストールされているファイル: ly/drumpitch-init.ly

コード断片集: Percussion

内部リファレンス: DrumStaff, DrumVoice


LilyPond 記譜法リファレンス v2.25.22 (development-branch).