diff --git a/cheatsheet.ly b/cheatsheet.ly index cc03f66..16c534c 100644 --- a/cheatsheet.ly +++ b/cheatsheet.ly @@ -7,7 +7,6 @@ \paper { indent = 0\mm - ragged-right = ##t ragged-bottom = ##t } \layout { @@ -22,31 +21,80 @@ \score { \new PipeBandDrumStaff { - \set Staff.instrumentName = "Plain notes" + \time 2/4 \drummode { - d4 g \crossstick d \crossstick g \rimshot d \rimshot g \backstick d \backstick g + d4 g + <> r + \crossstick d \crossstick g + \rimshot d \rimshot g + \backstick d \backstick g } } \addlyrics { - "d" "g" "\crossstick d" "\crossstick g" "\rimshot d" "\rimshot g" "\backstick d" "\backstick g" + "d" "g" + "<>" + "\crossstick d" "\crossstick g" + "\rimshot d" "\rimshot g" + "\backstick d" "\backstick g" } + \header { + title = \markup \column {\line{Plain Notes}} + subtitle = "" + } } \score { \new PipeBandDrumStaff { - \set Staff.instrumentName = "Tenor Flourishing" + \tempo 2/4 \drummode { - d^\splitTheFeather g^\cartWheel d^\up {d8 g8 d4} g d \flourish { d4 g d g } + d^\splitTheFeather g^\cartWheel + d^\up r4 + d8 g d4 + \cart d4 \stf d4 + \flourish { d4 g d g } } } \addlyrics { - "\splitTheFeather" "cartWheel" "up" "scoop d g d" "\flourish { }" + "\splitTheFeather" "\cartWheel" + "\up" + "d" "g" "d" + "\cart" "\stf" + "\flourish {" "d4" "g" "d" "g}" } + \header { + title = \markup \column {\line{Flourishing I}} + subtitle = "" + } +} +\score { + \new PipeBandDrumStaff { + \drummode { + d^\lthrow g^\rthrow + d^\bthrow r | + + d^\lpush g^\rpush + d^\bpush r | + + d^\andrewStop d^\quiggs + d^\stop r | + + d^\blfy d^\rblfy + r r | + } + } + \addlyrics { + "\lthrow" "\rthrow" "\bthrow" + "\lpush" "\rpush" "\bpush" + "\andrewStop" "\quiggs" "\stop" + "\blfy" "\rblfy" + } + \header { + title = \markup \column {\line{Flourishing II}} + subtitle = "" + } } - \score { \new PipeBandDrumStaff { - \set Staff.instrumentName = "Embellishments" \time 2/4 \drummode { \flam d \flam g @@ -63,41 +111,66 @@ "\ruff d" "\ruff g" "\sruff d" "\sruff g" } + \header { + title = \markup \line{ Embellishments } + subtitle = "" + } } \score { \new PipeBandDrumStaff { - \set Staff.instrumentName = \markup \column { \line{Forced hand} \line{embellishments}} - \time 2/4 + \time 4/4 \drummode { \flamg d \flamd g + \flamg g \flamd d \dragg d \dragd g + \dragg g \dragd d \odragg d \odragd g + \odragg g \odragd d + \break \ruffg d \ruffd g + \ruffg g \ruffd d \sruffg d \sruffd g + \sruffg g \sruffd d } } \addlyrics { "\flamg d" "\flamd g" + "\flamg g" "\flamd d" "\dragg d" "\dragd g" + "\dragg g" "\dragd d" "\odragg d" "\odragd g" + "\odragg g" "\odragd d" "\ruffg d" "\ruffd g" + "\ruffg g" "\ruffd d" "\sruffg d" "\sruffd g" + "\sruffg g" "\sruffd d" } + \header { + title = \markup \column { \line {Embellishments: Forced Hand}} + subtitle = "" + } } \score { \new PipeBandDrumStaff { - \set DrumStaff.drumStyleTable = #(alist->hash-table pipeband-style) - \set Staff.instrumentName = "Rolls" + \time 4/4 + \eighthBeaming \drummode { d4:32( d8:32)(-> g8) \flam d4 r8 d8:32( \dr | - \triplet { g16) d g } \drag d16. g32 d32 g d g d16. g32-> d16. d32 \flam g4 + \tuplet 3/2 { g16[) d g } \drag d16. g32] d32 g d g d16. g32-> d16. d32 \flam g4 s8 } + } + \addlyrics { + "d4:32(" "\\triplet " -- "\\flam d16." "g32" -- "\\drag g16" -- "\\triplet" "g:64" "d-> }" } - \addlyrics { - \partial 8 - "d8:32(" "\\triplet " -- "\\flam d16." "g32" -- "\\drag g16" -- "\\triplet" "g:64" "d-> }" + \header { + title = "Rolls" + subtitle = "" } } + + + +\pageBreak \score { \new PipeBandDrumStaff { \drummode { @@ -112,12 +185,18 @@ g8.[) g16 \dragd d8] d8.[ d16 \dragg g8] | g8.[ \dragd d16 d8] d8.[ d16 \dragg g8] | \flamddr d8. d16:64(_"5" d8) \flamd d8. d16 \flamg g8 | - d8.:32(_"5" d16) \flamg g8 \flamd d4 \fr | + d8.:32(_"5" d16) \flamg g8 \flamd d4 \fr s8 | } } } + \addlyrics { + \partial 8 + "d8:32(" "\\triplet " -- "\\flam d16." "g32" -- "\\drag g16" -- "\\triplet" "g:64" "d-> }" + } + \header { title = "And now for something completely standard" + subtitle = "" } } % # Writing parts @@ -130,5 +209,5 @@ \header { title = "Cheat sheet for entering pipeband drumming music" subtitle = "Intended for Lilypond 2.18 or better" - tagline = \markup { "Cpl ET de Boone, Seaforths of Holland" } + tagline = \markup { "D/Cpl ET de Boone, Seaforths of Holland" } } diff --git a/lilydrum.ly b/lilydrum.ly index d4a89c2..9932310 100644 --- a/lilydrum.ly +++ b/lilydrum.ly @@ -33,4 +33,5 @@ \include "lilydrum/embellishments.ily" \include "lilydrum/flourishing.ily" \include "lilydrum/special_sticking.ily" +\include "lilydrum/rehearsal_marks.ily" \include "lilydrum/midi.ily" diff --git a/lilydrum/embellishments.ily b/lilydrum/embellishments.ily index a58c1f5..ca2a2c3 100644 --- a/lilydrum/embellishments.ily +++ b/lilydrum/embellishments.ily @@ -19,87 +19,71 @@ drumgrace = #(define-music-function (parser location notes ) ( ly:music? ) #{ \stemNeutral #}) - % Flams flamd = \drummode { \drumgrace { g8 } } % Flam right flamg = \drummode { \drumgrace { d8 } } % Flam left -flamddr = \drummode { \drumgrace { g8\startGroup } } % Flam right with start repeat -flamgdr = \drummode { \drumgrace { d8\startGroup } } % Flam left with start repeat +flamddr = \drummode { \drumgrace { g8\dr } } % Flam right with start repeat +flamgdr = \drummode { \drumgrace { d8\dr } } % Flam left with start repeat % Drags dragd = \drummode { \drumgrace { g16[ g] } } % Drag right dragg = \drummode { \drumgrace { d16[ d] } } % Drag left -dragddr = \drummode { \drumgrace { g16[\startGroup g] } } % Drag right with start repeat -draggdr = \drummode { \drumgrace { d16[\startGroup d] } } % Drag left with start repeat +dragddr = \drummode { \drumgrace { g16[\dr g] } } % Drag right with start repeat +draggdr = \drummode { \drumgrace { d16[\dr d] } } % Drag left with start repeat % Open Drags -odragd = \drummode { \drumgrace { g16[ s^"o" g] } } % Open Drag right -odragg = \drummode { \drumgrace { d16[ s^"o" d] } } % Open Drag left -odragddr = \drummode { \drumgrace { g16[\startGroup s^"o" g] } } % Open Drag right with start repeat -odraggdr = \drummode { \drumgrace { d16[\startGroup s^"o" d] } } % Open Drag left with start repeat +odragd = \drummode { \drumgrace { g16[ <>^"o" g] } } % Open Drag right +odragg = \drummode { \drumgrace { d16[ <>^"o" d] } } % Open Drag left +odragddr = \drummode { \drumgrace { g16[\dr <>^"o" g] } } % Open Drag right with start repeat +odraggdr = \drummode { \drumgrace { d16[\dr <>^"o" d] } } % Open Drag left with start repeat % Ruff ruffg = \drummode { \drumgrace { g16[ d g] } } % Ruff right ruffd = \drummode { \drumgrace { d16[ g d] } } % Ruff left -ruffgdr = \drummode { \drumgrace { g16[\startGroup d g] } } % Ruff right with start repeat -ruffddr = \drummode { \drumgrace { d16[\startGroup g d] } } % Ruff left with start repeat +ruffgdr = \drummode { \drumgrace { g16[\dr d g] } } % Ruff right with start repeat +ruffddr = \drummode { \drumgrace { d16[\dr g d] } } % Ruff left with start repeat % Swiss Ruff sruffg = \drummode { \drumgrace { g16[ d d] } } % Swiss Ruff right sruffd = \drummode { \drumgrace { d16[ g g] } } % Swiss Ruff left -sruffgdr = \drummode { \drumgrace { g16[\startGroup d d] } } % Swiss Ruff right with start repeat -sruffddr = \drummode { \drumgrace { d16[\startGroup g g] } } % Swiss Ruff left with start repeat +sruffgdr = \drummode { \drumgrace { g16[\dr d d] } } % Swiss Ruff right with start repeat +sruffddr = \drummode { \drumgrace { d16[\dr g g] } } % Swiss Ruff left with start repeat %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Embellishment functions, automatic left or right %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -autohand = #(define-music-function (parser location note left right) (ly:music? ly:music? ly:music?) #{ - #(newline) - #(display "Fix autohand function for arbitrary depth") +#(define (autohandFunc left right) + (define-music-function (parser location note) (ly:music? ) + #{ + #(newline) + #(display "Fix autohand function for arbitrary depth") - #(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand") - #{ $left #} - #{ $right #}) - % print the note, else it won't show up - $note -#}) + #(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand") + #{ $left #} + #{ $right #}) + + % print the note, else it won't show up + $note + #} + ) +) % Flam -flam = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note { \flamg } { \flamd } -#}) -flamdr = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note { \flamgdr } { \flamddr } -#}) +flam = #(autohandFunc flamg flamd) +flamdr = #(autohandFunc flamgdr flamddr ) % Drag -drag = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \dragg \dragd -#}) -dragdr = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \draggdr \dragddr -#}) +drag = #(autohandFunc dragg dragd ) +dragdr = #(autohandFunc draggdr dragddr ) % Open Drag -odrag = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \odragg \odragd -#}) -odragdr = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \odraggdr \odragddr -#}) +odrag = #(autohandFunc odragg odragd ) +odragdr = #(autohandFunc odraggdr odragddr ) % Ruff -ruff = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \ruffg \ruffd -#}) -ruffdr = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \ruffgdr \ruffddr -#}) +ruff = #(autohandFunc ruffg ruffd ) +ruffdr = #(autohandFunc ruffgdr ruffddr ) % Swiss Ruff -sruff = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \sruffg \sruffd -#}) -sruffdr = #(define-music-function (parser location note) (ly:music?) #{ - \autohand $note \sruffgdr \sruffddr -#}) +sruff = #(autohandFunc sruffg sruffd ) +sruffdr = #(autohandFunc sruffgdr sruffddr ) diff --git a/lilydrum/flourish_symbols/butterfly.eps b/lilydrum/flourish_symbols/butterfly.eps deleted file mode 100644 index ad99448..0000000 --- a/lilydrum/flourish_symbols/butterfly.eps +++ /dev/null @@ -1,62 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner -%%Title: butterfly.eps -%%CreationDate: Tue Nov 3 18:58:20 2015 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 28 23 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228346456694 14.173228346456694 translate -% Translate to begin of first scanline -0 8 translate -13 -8 scale -% Image geometry -13 8 8 -% Transformation matrix -[ 13 0 0 8 0 0 ] -% Strings to hold RGB-samples per scanline -/rstr 13 string def -/gstr 13 string def -/bstr 13 string def -{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} -{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} -true 3 -%%BeginData: 521 ASCII Bytes -colorimage -s8N,fqu$Hrp$r(^J,~> -s8N,fqu$Hrp$r(^J,~> -s8N,fqu$Hrp$r(^J,~> -%,Fub,@p3Al">-rJFS-~> -%,Fub,@p3Al">-rJFS-~> -%,Fub,@p3Al">-rJFS-~> -%!VFFnjYIn8*9jOooah~> -%!VFFnjYIn8*9jOooah~> -%!VFFnjYIn8*9jOooah~> -!3Z>$"7e/Pci*kDS:C~> -!3Z>$"7e/Pci*kDS:C~> -!3Z>$"7e/Pci*kDS:C~> -!4)S'".KO$rr2otR",~> -!4)S'".KO$rr2otR",~> -!4)S'".KO$rr2otR",~> -%#Fo_s2eEn(3KNTjbJ?~> -%#Fo_s2eEn(3KNTjbJ?~> -%#Fo_s2eEn(3KNTjbJ?~> -%,#f`D0l$Xfg[Vp@e"s~> -%,#f`D0l$Xfg[Vp@e"s~> -%,#f`D0l$Xfg[Vp@e"s~> -s8N,`p\b$no^Mn\J,~> -s8N,`p\b$no^Mn\J,~> -s8N,`p\b$no^Mn\J,~> -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lilydrum/flourish_symbols/st_andrews_crss.eps b/lilydrum/flourish_symbols/st_andrews_crss.eps deleted file mode 100644 index 71dd630..0000000 --- a/lilydrum/flourish_symbols/st_andrews_crss.eps +++ /dev/null @@ -1,107 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: cairo 1.14.2 (http://cairographics.org) -%%CreationDate: Wed Nov 4 14:58:05 2015 -%%Pages: 1 -%%DocumentData: Clean7Bit -%%LanguageLevel: 3 -%%BoundingBox: 0 -1 21 19 -%%EndComments -%%BeginProlog -save -50 dict begin -/q { gsave } bind def -/Q { grestore } bind def -/cm { 6 array astore concat } bind def -/w { setlinewidth } bind def -/J { setlinecap } bind def -/j { setlinejoin } bind def -/M { setmiterlimit } bind def -/d { setdash } bind def -/m { moveto } bind def -/l { lineto } bind def -/c { curveto } bind def -/h { closepath } bind def -/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto - 0 exch rlineto 0 rlineto closepath } bind def -/S { stroke } bind def -/f { fill } bind def -/f* { eofill } bind def -/n { newpath } bind def -/W { clip } bind def -/W* { eoclip } bind def -/BT { } bind def -/ET { } bind def -/pdfmark where { pop globaldict /?pdfmark /exec load put } - { globaldict begin /?pdfmark /pop load def /pdfmark - /cleartomark load def end } ifelse -/BDC { mark 3 1 roll /BDC pdfmark } bind def -/EMC { mark /EMC pdfmark } bind def -/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def -/Tj { show currentpoint cairo_store_point } bind def -/TJ { - { - dup - type /stringtype eq - { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse - } forall - currentpoint cairo_store_point -} bind def -/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore - cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def -/Tf { pop /cairo_font exch def /cairo_font_matrix where - { pop cairo_selectfont } if } bind def -/Td { matrix translate cairo_font_matrix matrix concatmatrix dup - /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point - /cairo_font where { pop cairo_selectfont } if } bind def -/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def - cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def -/g { setgray } bind def -/rg { setrgbcolor } bind def -/d1 { setcachedevice } bind def -%%EndProlog -%%BeginSetup -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -%%PageBoundingBox: 0 -1 21 19 -%%EndPageSetup -q 0 -1 21 20 rectclip q -Q q -0 18.4 20.801 -18.398 re W n -q -0 18.4 21 -19 re W n -[ 0.8 0 0 0.8 0 -0.00000038147 ] concat -/DeviceRGB setcolorspace -8 dict dup begin - /ImageType 1 def - /Width 26 def - /Height 23 def - /Interpolate true def - /BitsPerComponent 8 def - /Decode [ 0 1 0 1 0 1 ] def - /DataSource currentfile /ASCII85Decode filter /FlateDecode filter def - /ImageMatrix [ 1 0 0 -1 0 23 ] def -end -image -Gatm8gFo%9)#d/2gE[.Um;+hI3UEp%Xt3I?N/l1l9M:.%/M((/>\H_ta+]A=3YdQT;E&]$>p - h8S*.'p^e?KM&*c:JEl*lPlhY]"?n,#8_kBl([IGWlCjo:D5oCKl;_loW%4[;3Kfk`i84XJ!hG'9ZZkmI]J8tcC:B[7P)8U^Qges79AqoD2&" - uOF+^U@A0C*>jgD>CAK/&lJ9j'uVEpg"s`+"o;18kr!ISt:+ZmI'BL"Th:]!.gj=q^_R@ - X]DJQ$u5H]4b7UU=0]#?@q2[Ge^[ZUEJ&\*aYl%8>[`^T1GeWU:;>iV9u%AT&p-1*.r99JP - @%GUWrKf*?ai@Q._-:)H[E@o/:JKQ7L]d%@0Hh2Z.W<_Q7+NB"Dsb\.T!JW<%?&fO@G.<14 - RWqU/5`D!2En.g=c[pQ"ZSa])#]EAp.5+o("QE/hSbQ*:tO5,GV?I['$R7U:_JL91qo*-R[ - uH?9$s>q"VoB[\KV>aiWP:+r6*EZEeLiE$,pS6.O`E$X0%EG(m3STF.U$[%*#sWE+S@)%aar5I.TL"I"DT6HaWU0*<62pi1c@6K`%ma^jCCHHYL.#+pi]VpMi0/= - /R0o0hU+&=3a,W^+:nf*-78_W&F#ijXf\]IGeEbDG-hIM;gh-V8=a]5VA0ihIgKEj`7X2PR - ]-`3?68Nh%B8Mo)ReV]RB%3^':PN(W$]j)KQAFAu)?B=)\l,9DBMS\qn\QSR?F?*ak[[6UO - Uc(fHRFf\Fsj8uK!o;fUc($_un,Q4WseYD3Wq7Rpt%:.uWK*o=;.#s<5u#E+Lu*sDn-73Xj - $mjn=:YHJJCr%'<)QH"lqiM"_.0[tnHm$*a+md=r?4\5brK!qE0ba97&eXiYuWgdUAPsCGS - iUeN4IjIJuTL,)c==hP2jaV[oW1gH$ZDk+VCbh,sd2J*cEcMk">tF-*,B#?*i82/\4n9@l2 - JY#):A/5V5Q@+Tkl~> -Q -Q Q -showpage -%%Trailer -end restore -%%EOF diff --git a/lilydrum/flourish_symbols/stop.eps b/lilydrum/flourish_symbols/stop.eps deleted file mode 100644 index a663d4d..0000000 --- a/lilydrum/flourish_symbols/stop.eps +++ /dev/null @@ -1,50 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner -%%Title: stop.eps -%%CreationDate: Wed Nov 4 21:02:56 2015 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 23 33 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -10 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.173228346456693 14.173228346456693 translate -% Translate to begin of first scanline -0 18.747656542932134 translate -8.2488188976377952 -18.747656542932134 scale -% Variable to keep one line of raster data -/scanline 9 3 mul string def -% Image geometry -9 17 8 -% Transformation matrix -[ 9 0 0 17 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -%%BeginData: 946 ASCII Bytes -colorimage -fffffff5f5f5fffffffffffffffffffffffffffffffffffffcfcfc -fafafaffffff4e4e4e0000000000000000004e4e4effffffffffff -ffffff4e4e4e000000ffffffffffffffffff0000004e4e4effffff -ffffff000000ffffffffffffffffffffffffffffff000000ffffff -ffffff000000ffffffffffffffffffffffffffffff000000ffffff -ffffff000000ffffffffffffffffffffffffffffff000000ffffff -ffffff4e4e4e000000ffffffffffffffffff0000004e4e4effffff -ffffffffffff4e4e4e0000000000000000004e4e4efffffff5f5f5 -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -ffffffffffffffffffffffff000000ffffffffffffffffffffffff -000000000000000000000000000000000000000000000000000000 -%%EndData -showpage -%%Trailer -end -%%EOF diff --git a/lilydrum/flourishing.ily b/lilydrum/flourishing.ily index 9e6b193..2a9f981 100644 --- a/lilydrum/flourishing.ily +++ b/lilydrum/flourishing.ily @@ -2,27 +2,322 @@ % Tenor Flourishing % % ================================================= % % Part of lilydrum -splitTheFeather = \markup{ \musicglyph #"noteheads.s2xcircle"} -cartWheel = \markup { \musicglyph #"timesig.neomensural94" } -up = \markup { - %\center-column { + +%---------------------------------------------------% +% Single note flourish definitions +%---------------------------------------------------% +splitTheFeather = ^\markup \center-column { \musicglyph #"noteheads.s2xcircle"} +cartWheel = ^\markup \center-column { \musicglyph #"timesig.neomensural94" } +up = ^\markup \center-column {% Arrow-head and line do not line up nicely most of the time + \fontsize #5 + \override #'(thickness . 2) + %\center-column { \combine - \draw-line #'(0 . -2) % draw stick +% \musicglyph #"arrowheads.open.11" \arrow-head #Y #UP ##f + \draw-line #'(0 . -3) % draw stick %} } -bfly = \markup { - \epsfile #X #2 #"../lilydrum/flourish_symbols/butterfly.eps" +blfy = ^\markup \center-column { &infty; } +rblfy = ^\markup \center-column { + \line{ + \combine + \arrow-head #X #LEFT ##f + \draw-line #'(3 . 0 ) + } + \line { &infy; } } -stop = \markup { - \epsfile #X #2 #"../lilydrum/flourish_symbols/stop.eps" + +rthrow = ^\markup \center-column { + \postscript #" + /width 2 def + /radius .4 def + /filled 1 def + /height .6 def + /fwidth width radius add def + + /dotstick { + 0 0 moveto + 0 0 closedpoint + 0 0 moveto + fwidth neg 0 lineto + fwidth neg height neg moveto + fwidth neg height lineto + stroke } def + + newpath + fwidth height translate + 0 0 dotstick + stroke + " } -scoop = \markup { - \path #.2 #'( (moveto 0 0 ) - (lineto 3 1 ) - (lineto 6 0 ) - (lineto 7 1 ) - ) +lthrow = ^\markup \center-column { + \postscript #" + /width 2 def + /radius .4 def + /filled 1 def + /height .6 def + /fwidth width radius add def + + /dotstick { + radius 0 closedpoint + radius 0 moveto + fwidth 0 lineto + fwidth height neg moveto + fwidth height lineto + stroke } def + + newpath + 0 height translate + 0 0 dotstick + stroke + " } +bthrow = ^\markup \center-column { + \postscript #" + /width 2 def + /radius .4 def + /filled 1 def + /height .6 def + /fwidth width radius add def + + /closedpoint { + radius 0 360 arc + gsave filled neg + setgray fill + grestore + stroke } def + + /dotstick { + fwidth 0 closedpoint + fwidth 0 moveto + 0 0 lineto + 0 height neg moveto + 0 height lineto + stroke } def + + newpath + fwidth height translate + 0 0 dotstick + 180 rotate + fwidth 0 dotstick + stroke + " + } +rpush = ^\markup \center-column { + \postscript #" + /width 2 def + /radius .4 def + /filled 1 def + /height .6 def + /fwidth width radius add def + + /closedpoint { + radius 0 360 arc + gsave filled neg + setgray fill + grestore + stroke } def + + /dotstick { + 0 0 moveto + 0 0 closedpoint + 0 0 moveto + fwidth neg 0 lineto + fwidth radius add 2 div neg 0 moveto + fwidth radius add 2 div neg radius neg + radius 90 450 arc + gsave filled + setgray fill + grestore + + fwidth neg height neg moveto + fwidth neg height lineto + stroke } def + + newpath + fwidth height translate + 0 0 dotstick + stroke + " + } +lpush = ^\markup \center-column { + \postscript #" + /width 2 def + /radius .4 def + /filled 1 def + /height .6 def + /fwidth width radius add def + + /closedpoint { + radius 0 360 arc + gsave filled neg + setgray fill + grestore + stroke } def + + + /dotstick { + radius 0 closedpoint + radius 0 moveto + fwidth 0 lineto + fwidth radius add 2 div 0 moveto + fwidth radius add 2 div radius neg + radius 90 450 arc + gsave filled + setgray fill + grestore + fwidth height neg moveto + fwidth height lineto + stroke } def + + newpath + 0 height translate + 0 0 dotstick + stroke + " } +bpush = ^\markup \center-column { + \postscript #" + /width 2 def + /radius .4 def + /filled 1 def + /height .6 def + /fwidth width radius add def + + /closedpoint { + radius 0 360 arc + gsave filled neg + setgray fill + grestore + stroke } def + + + /dotstick { + fwidth 0 closedpoint + fwidth 0 moveto + 0 0 lineto + fwidth sub 2 div 0 moveto + fwidth radius sub 2 div radius neg + radius 90 450 arc + gsave filled + setgray fill + grestore + + 0 height neg moveto + 0 height lineto + stroke } def + + newpath + fwidth height translate + 0 0 dotstick + -1 1 scale + fwidth 0 dotstick + stroke + " + } + +andrewStop = ^\markup \center-column { + \postscript #" + /width .4 def + /radius width def + /filled 1 def + /height 2 def + /fheight height radius add def + + /closedpoint { + radius 0 360 arc + gsave filled neg + setgray fill + grestore + stroke } def + /dotstick { + 0 fheight closedpoint + 0 fheight moveto + 0 0 lineto + width neg 0 lineto + width 0 lineto + stroke } def + + newpath + 0 0 translate + -45 rotate + newpath + 0 0 dotstick + stroke + 45 rotate + fheight .5 sqrt mul 0 translate + 45 rotate + 0 0 dotstick + stroke + " + } +quiggs = ^\markup \center-column { + %\with-dimensions #'(-0.2 . 2.0) #'(0 . 2.0) + \postscript #" + /width 1 def + /radius .4 def + /filled 1 def + /height 2 def + /fheight height radius add def + + /closedpoint { + radius 0 360 arc + gsave filled neg + setgray fill + grestore + stroke } def + /dotstick { + 0 height closedpoint + 0 height moveto + 0 0 lineto + stroke } def + /invdotstick { + 0 radius closedpoint + 0 radius moveto + 0 fheight lineto + stroke } def + + newpath + 0 0 dotstick + stroke + width 0 translate + newpath + 0 0 invdotstick + stroke + " + } + +stop = ^\markup \center-column { + %\with-dimensions #'(-0.2 . 2.0) #'(0 . 2.0) + \postscript #" + /height 2 def + /width .4 def + /radius width def + /filled 0 def + /fheight height radius add def + width 0 translate + + newpath + 0 fheight radius 0 360 arc gsave filled neg setgray fill grestore stroke + 0 fheight moveto 0 0 lineto + width neg 0 moveto width 0 lineto + stroke + " + } +%---------------------------------------------------% +% Multiple note flourish definitions +%---------------------------------------------------% +flourish = #(define-music-function (parser location notes) (ly:music?) + #{ + \temporary \override Staff.NoteHead.style = #'cross + $notes + \revert Staff.NoteHead.style + #}) + +scoop = ^\markup { + \path #.2 #'( (moveto 0 0 ) + (lineto 3 1 ) + (lineto 6 0 ) + ) } scoopo = #(define-music-function (parser location beg notes) (ly:music? ly:music?) #{ @@ -32,24 +327,21 @@ scoopo = #(define-music-function (parser location beg notes) (ly:music? ly:music $notes \stopGroup #}) -flourish = #(define-music-function (parser location notes) (ly:music?) - #{ - \temporary \override Staff.NoteHead.style = #'cross - $notes - \revert Staff.NoteHead.style - #}) sdcoop = #(define-music-function (parser location notes end) (ly:music? ly:music?) #{ $notes $end #}) - -stf = #(define-music-function (parser location note) (ly:music?) +%---------------------------------------------------% +% music function definitions +%---------------------------------------------------% +#(define (buildFlourishFunc flourish) + (define-music-function (parser location note) (ly:music? ) #{ - $note ^\splitTheFeather - %\once \set TextScriptEvent.text = \splitTheFeather + <>-$flourish $note #} + ) ) +cart = #(buildFlourishFunc cartWheel) +stf = #(buildFlourishFunc splitTheFeather) -% cart = \cartWheel -% fl = \flourish diff --git a/lilydrum/layout_tweaks.ily b/lilydrum/layout_tweaks.ily index 4191f80..61af11d 100644 --- a/lilydrum/layout_tweaks.ily +++ b/lilydrum/layout_tweaks.ily @@ -79,6 +79,20 @@ drumPitchNames = strictBeatBeaming = ##t \numericTimeSignature + %Because it's funny + \override Clef.stencil = # + (lambda (grob)(grob-interpret-markup grob + #{ \markup\combine + \musicglyph #"clefs.percussion" + \translate #'(2 . 0) + \override #'(baseline-skip . 1) + \column { + "R" + "L" + } + #} + )) + } \context { \Score diff --git a/lilydrum/musical_functions.ily b/lilydrum/musical_functions.ily index c15094e..4dfe255 100644 --- a/lilydrum/musical_functions.ily +++ b/lilydrum/musical_functions.ily @@ -16,6 +16,18 @@ eighthCompoundBeaming = { \set beatStructure = #'( 3 ) } +sixteenthBeaming = { + \set baseMoment = #(ly:make-moment 1/16) + \set beatStructure = #'( 4 ) +} +sixteenthReelBeaming = { + \set baseMoment = #(ly:make-moment 1/16) + \set beatStructure = #'( 8 ) +} +sixteenthCompoundBeaming = { + \set baseMoment = #(ly:make-moment 1/16) + \set beatStructure = #'( 6 ) +} % triplet triplet = #(define-music-function (parser location notes) (ly:music?) #{ \tuplet 3/2 { $notes } #}) diff --git a/lilydrum/rehearsal_marks.ily b/lilydrum/rehearsal_marks.ily new file mode 100644 index 0000000..e95408b --- /dev/null +++ b/lilydrum/rehearsal_marks.ily @@ -0,0 +1,32 @@ +% ================================================= % +% Rehearsal Marks % +% ================================================= % +#(newline) +#(display "Midi Support loaded") +% From Svenax's bagpipemusic +markText = #(define-music-function (parser location text) (string?) #{ + \once \override Score.RehearsalMark #'self-alignment-X = #LEFT + \mark \markup $text +#}) + +markTextEol = #(define-music-function (parser location text) (string?) #{ + \once \override Score.RehearsalMark #'break-visibility = #end-of-line-visible + \once \override Score.RehearsalMark #'self-alignment-X = #RIGHT + \mark \markup $text +#}) + +markTextEolDown = #(define-music-function (parser location text) (string?) #{ + \once \override Score.RehearsalMark #'break-visibility = #end-of-line-visible + \once \override Score.RehearsalMark #'self-alignment-X = #RIGHT + \once \override Score.RehearsalMark #'direction = #DOWN + \mark \markup $text +#}) +altBracket = #(define-music-function (parser location tag) (string?) #{ + \set Score.repeatCommands = #(list (list 'volta (markup #:text tag))) + #} +) + + +% Short al fine's and stuff +dacapoalfine = {\markTextEol "D.C. al fine" } +