diff --git a/README.md b/README.md index 4b566e4..7e0ce4f 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,14 @@ Somehow, the drums part in lilypond does not cover a notation with only right left. That is right is above the line and left is below it. In the same manner as the bagpipe.ly file, flams and drags are defined as a shortcut. There has been a lilypond include file earlier, made by Simon Froger (which includes all of the above). So first version is a shameless copy. -The original file can still be found at http://lsr.di.unimi.it/LSR/Snippet?id=970 +The original file can still be found at [http://lsr.di.unimi.it/LSR/Snippet?id=970](http://lsr.di.unimi.it/LSR/Snippet?id=970). + +[His website (French) can be found here](https://simonfroger.wordpress.com/lilypond/caisse-claire-ecossaise/) ## How to use --------------------- To make a pipeband drum staff simply use -`\new PipeBandDrumStaff {` +`\new PipeBandDrumStaff`. This creates a DrumStaff with a few specific changes. !! Note that you do not need to use PipeBandDrumStaff to use the rest. @@ -44,46 +46,46 @@ You can use every regular drum character (such as `sn` or `bd`), as `d` and `g` ----------------- Flams and Drags can be added using `\flam` and `\drag`. They can determine whether to be left or right by themselves for simple expressions. If a certain hand is needed they can be inserted directly by appending `d` or `g` to `flam`,`drag`,.. -A `\flam d` is equal to `\flamd d` +A `\flam d` is equal to `\flamd d`. There are currently 4 such shortcuts: -`\flam` - A Flam -`\drag` - A Drag -`\ruff` - A Ruff -`\sruff` - A Swiss Ruff + * `\flam` - A Flam + * `\drag` - A Drag + * `\ruff` - A Ruff + * `\sruff` - A Swiss Ruff ### Unison Brackets (Side) ------------------ Unison Brackets are triggered using `\dr`. -They need an endpoint which is defined by `\fr` +They need an endpoint which is defined by `\fr`. ~~You can use `\tutti` for this aswell. It takes a music expression which is automagically put under brackets.~~~ (not yet) Appending `dr` to the `\flam`'s or `\drag`'s triggers the unison bracket. -e.g. `\flamdr` of `\draggdr` +e.g. `\flamdr` of `\draggdr`. ### Flourishing (Tenor) ------------- A few flourishes have been added, most are from the [EUSPBA](http://www.euspba.org/resource/music/EUSPBA_drums_tenorflourishing.pdf): -`\flourish` -`\splitTheFeather` -`\cartWheel` -`\up` -`\blfy` - butterfly -`\rblfy` - reverse butterfly -`\rthrow` - throw right -`\lthrow` - throw left -`\bthrow` - throw both -`\rpush` - push right -`\lpush` - push left -`\bpush` - push both -`\andrewStop` - St. Andrew's Stop -`\stop` + * `\flourish` + * `\splitTheFeather` + * `\cartWheel` + * `\up` + * `\blfy` - butterfly + * `\rblfy` - reverse butterfly + * `\rthrow` - throw right + * `\lthrow` - throw left + * `\bthrow` - throw both + * `\rpush` - push right + * `\lpush` - push left + * `\bpush` - push both + * `\andrewStop` - St. Andrew's Stop + * `\stop` -Scoops have not been created yet +Scoops have not been created yet. ## TODO -------------------------- @@ -100,7 +102,10 @@ Scoops have not been created yet * It's customary to have 4 bars per line for portrait and 8 for landscape... (most of the time this can be accomplished by \break-ing every 8 measures and having enough notes in) * rimshot `defaultnote + cross` + * MIDI supporting: + - switching sound for Bass, Tenor and Side + - rolls (only for Sides) * scoop `\scoop` arrow-right-(diag-up then diag-down) -[propably start on beginning of note and filter out the last one] +[propably start on beginning of note and filter out the last one, figure out how to get positions from these notes ] * [further flourish symbols](http://www.euspba.org/resource/music/EUSPBA_drums_tenorflourishing.pdf) diff --git a/lilydrum/embellishments.ily b/lib/embellishments.ily similarity index 100% rename from lilydrum/embellishments.ily rename to lib/embellishments.ily diff --git a/lilydrum/flourishing.ily b/lib/flourishing.ily similarity index 98% rename from lilydrum/flourishing.ily rename to lib/flourishing.ily index e60cef4..98d0501 100644 --- a/lilydrum/flourishing.ily +++ b/lib/flourishing.ily @@ -342,11 +342,7 @@ scoopo = #(define-music-function (parser location beg notes) (ly:music? ly:music $notes \stopGroup #}) -sdcoop = #(define-music-function (parser location notes end) (ly:music? ly:music?) - #{ - $notes - $end - #}) + %---------------------------------------------------% % music function definitions %---------------------------------------------------% diff --git a/lilydrum/layout_tweaks.ily b/lib/layout_tweaks.ily similarity index 97% rename from lilydrum/layout_tweaks.ily rename to lib/layout_tweaks.ily index 53d2d84..866ee7a 100644 --- a/lilydrum/layout_tweaks.ily +++ b/lib/layout_tweaks.ily @@ -53,6 +53,8 @@ drumPitchNames = % dynamics up \dynamicUp + % This does not work nicely together with marking up flourishes + % slurs below rolls number %\override TextScript.outside-staff-priority = ##f %\override TextScript.side-axis = #0 diff --git a/lilydrum/midi.ily b/lib/midi.ily similarity index 100% rename from lilydrum/midi.ily rename to lib/midi.ily diff --git a/lilydrum/musical_functions.ily b/lib/musical_functions.ily similarity index 71% rename from lilydrum/musical_functions.ily rename to lib/musical_functions.ily index 3f52996..95cbb7b 100644 --- a/lilydrum/musical_functions.ily +++ b/lib/musical_functions.ily @@ -56,8 +56,18 @@ dr = #(define-event-function (parser location) () #{ \startGroup #}) fr = #(define-event-function (parser location) () #{ \stopGroup #}) odr = #(define-event-function (parser location) () #{ \startGroup #}) ofr = #(define-event-function (parser location) () #{ \stopGroup #}) -tutti = #(define-event-function (parser location notes) (ly:music?) #{ - \startGroup - $notes - \stopGroup - #}) +tutti = #(define-music-function (mus) (ly:music?) + ; By Jan-Peter Voigt, Tue, 2 May 2017 11:10:46 +0200 + (let* ((elms (ly:music-property mus 'elements)) + ; first and last music-element ... + (frst (first elms)) ; TODO test for list? and ly:music? + (lst (last elms)) ; TODO test for list? and ly:music? + (fartic (ly:music-property frst 'articulations '())) ; look +for eventchords ... + (lartic (ly:music-property lst 'articulations '())) + ) + (ly:music-set-property! frst 'articulations `(,@fartic ,(make-music 'NoteGroupingEvent 'span-direction -1))) + (ly:music-set-property! lst 'articulations `(,@lartic ,(make-music 'NoteGroupingEvent 'span-direction 1))) + #{ + #mus + #})) diff --git a/lilydrum/rehearsal_marks.ily b/lib/rehearsal_marks.ily similarity index 100% rename from lilydrum/rehearsal_marks.ily rename to lib/rehearsal_marks.ily diff --git a/lilydrum/special_sticking.ily b/lib/special_sticking.ily similarity index 74% rename from lilydrum/special_sticking.ily rename to lib/special_sticking.ily index 5556881..26757fe 100644 --- a/lilydrum/special_sticking.ily +++ b/lib/special_sticking.ily @@ -21,6 +21,14 @@ crossstick = #(define-music-function (parser location notes) (ly:music?) rimshot = #(define-music-function (parser location notes) (ly:music?) #{ \temporary \override Staff.NoteHead.font-size = #1.2 + %\temporary \override Staff.NoteHead.stencil = #ly:text-interface::print + %\temporary \override Staff.NoteHead.text = \markup { + % \combine + % \halign #-0.7 \draw-circle #0.85 #0.2 ##f + % \musicglyph #"noteheads.normal" + %} $notes + %\revert Staff.NoteHead.stencil + %\revert Staff.NoteHead.text \revert Staff.NoteHead.font-size #}) diff --git a/lilydrum.ly b/lilydrum.ly index 29ee1fb..25f12ff 100644 --- a/lilydrum.ly +++ b/lilydrum.ly @@ -26,10 +26,10 @@ #(ly:set-option 'relative-includes #t) -\include "lilydrum/layout_tweaks.ily" -\include "lilydrum/musical_functions.ily" -\include "lilydrum/embellishments.ily" -\include "lilydrum/flourishing.ily" -\include "lilydrum/special_sticking.ily" -\include "lilydrum/rehearsal_marks.ily" -\include "lilydrum/midi.ily" +\include "lib/layout_tweaks.ily" +\include "lib/musical_functions.ily" +\include "lib/embellishments.ily" +\include "lib/flourishing.ily" +\include "lib/special_sticking.ily" +\include "lib/rehearsal_marks.ily" +\include "lib/midi.ily"