lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zapateado in Lilypond


From: Thomas Morley
Subject: Re: Zapateado in Lilypond
Date: Thu, 20 Oct 2016 23:11:57 +0200

2016-10-20 19:52 GMT+02:00 Francisco Vila <address@hidden>:
> 2016-10-20 10:51 GMT+02:00 Peter Nærum <address@hidden>:
>>
>> I am trying to use Lilypond to notate Zapateado (footwork in flamenco). In
>> the system I use, left foot is marked by a stem going down, while right foot
>> has no downward stem. Notes have meanings like: f: flat tap, a: strait tap,
>> c: heel tap, e: toe tap.  Besides there are two ways of using the heel: With
>> the front foot on the flour and with the foot clear of the flour. The first
>> case is marked with a dot in the a-position in the staff. I have included
>> three small examples. Do any body have a clue if it is polible write these
>> markings in Lilypond?
>>
>
> Here are some (incomplete) ideas you can use and adapt.
>
> upprA={ \tuplet 3/2{ a8 e c }
>       \tuplet 3/2{ a e c }
>       \tuplet 3/2{ a e c }
>       \tuplet 3/2{ a e c }
> }
>
> lowrA={ \tuplet 3/2{ s8 e s }
>       \tuplet 3/2{ a s c }
>       \tuplet 3/2{ s e s }
>       \tuplet 3/2{ a s c } }
>
> \score{
>   {  \clef bass << \upprA \\ \lowrA >> }
> }
>
> upprB={ c8 c c c <<c4 c>> <<c c>> }
> lowrB={ s8 c s c s4 s }
>
>
> \score{
>   {  \clef bass << \upprB \\ \lowrB >> }
> }
>
> upprC={ f8 c c c c c e c e c e c }
> lowrC={ s8 s s c s c s c s c s c }
>
> \score{
>   {  \clef bass << \upprC \\ \lowrC >> }
> }
>
>
> doo={ \override NoteHead.stencil = #ly:text-interface::print
>       \override NoteHead.text = #(markup #:musicglyph "dots.dot")
>       \omit Flag
>       \omit Stem
>       a' c'' e'' }
>
> \score{
>   { \doo }
> }
>
>
> --
> Francisco Vila. Badajoz (Spain)
> www.paconet.org , www.csmbadajoz.com



I'd go for drummode. Feels more appropriate, leading to:

\version "2.19.48"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Drum-definitions
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

drumPitchNames.flattap      = #'flattap
drumPitchNames.ft           = #'flattap
drumPitchNames.straittap    = #'straittap
drumPitchNames.st           = #'straittap
drumPitchNames.heeltap      = #'heeltap
drumPitchNames.ht           = #'heeltap
drumPitchNames.heeltapfront = #'heeltapfront
drumPitchNames.htf          = #'heeltapfront
drumPitchNames.heeltapclear = #'heeltapclear
drumPitchNames.htc          = #'heeltapclear
drumPitchNames.toetap       = #'toetap
drumPitchNames.ttp          = #'toetap  % tt is in use already

#(define zapateado
  '((flattap      default  #f  -3)
    (straittap    default  #f  -1)
    (heeltap      default  #f   1)
    (heeltapfront default  "staccato"   1)
    (heeltapclear default  #f   1)
    (toetap       default  #f   3)))

midiDrumPitches.flattap      = f
midiDrumPitches.straittap    = a
midiDrumPitches.heeltap      = c
midiDrumPitches.heeltapfront = c
midiDrumPitches.heeltapclear = c
midiDrumPitches.toetap       = e

#(define setHeeltapfrontDot
  (lambda (grob)
   (let* ((nh (ly:grob-parent grob X))
          (drum-type
            (ly:prob-property (ly:grob-property  nh 'cause) 'drum-type))
          (dir (ly:grob-property grob 'direction)))
   (if (eq? drum-type 'heeltapfront)
       (begin
         (ly:grob-set-property! grob 'Y-offset -1)
         (ly:grob-translate-axis! grob (if (positive? dir) -2 -1) X))))))

\layout {
  \context {
    \DrumStaff
    drumStyleTable = #(alist->hash-table zapateado)
    drumPitchTable = #(alist->hash-table midiDrumPitches)
    \omit Clef
  }
  \context {
    \DrumVoice
    \override Script.after-line-breaking = #setHeeltapfrontDot
  }
}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Example 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

one =
\drummode {
  \time 2/4
  \tuplet 3/2 4 \repeat unfold 2 { st8 ttp htf st ttp htf }
}

two =
\drummode {
  \omit TupletNumber
  \tuplet 3/2 4 \repeat unfold 2 { s8 ttp s st[ s ht] }
}

\score {
  \new DrumStaff \with { instrumentName = "Zapateo " }
    <<
      \new DrumVoice = "right foot" { \voiceOne \one }
      \new DrumVoice = "left foot" { \voiceTwo \two }
    >>
  \layout {}
  %\midi {}
}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Example 2 ??
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Example 3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

one =
\drummode {
  \time 6/4
  \unset Timing.beamExceptions
  \set Timing.beatStructure = 1,1,1,1,1,1
  s4 ht8 ht ht ht ttp ht ttp ht ttp ht
}

two =
\drummode {
  ft8 htf \repeat unfold 5 { s htf }
}

\score {
  \new DrumStaff \with { instrumentName = "Zapateo " }
    <<
      \new DrumVoice = "right foot" { \voiceOne \one }
      \new DrumVoice = "left foot" { \voiceTwo \two }
    >>
  \layout {}
  %\midi {}
}


Though, Peter, I have to admit I don't understand your second example.
If I'm not mistaken, it has nothing to do with anything in your
desriptions. So ...??

Anyway, whether you follow Franciso's proposal or my own, LilyPond can.


Cheers,
  Harm



reply via email to

[Prev in Thread] Current Thread [Next in Thread]