Re: handbell shake
2018-05-31 19:55 GMT+02:00 Rick Kimpel : > From: Stanton Sanderson > Sent: Thursday, May 31, 2018 11:44 AM >> I’ve attempted some handbell pieces for our bell choir. Attached >> is one which has a few special symbols. Not intended as samples >> of “good practice!” > > Stan, > I added q's where necessary to try to compile in 2.18, but I'm getting > an odd error in ly-syntax-constructors.scm > "Wrong number of arguments to #" > Any ideas? I've never seen this before. > Rick Use: twoVoices = #(define-music-function (parser location one two)(ly:music? ly:music?) ...) It's a 2.19.-feature omitting those default-arguments. Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
From: Stanton Sanderson Sent: Thursday, May 31, 2018 11:44 AM > I’ve attempted some handbell pieces for our bell choir. Attached > is one which has a few special symbols. Not intended as samples > of “good practice!” Stan, I added q's where necessary to try to compile in 2.18, but I'm getting an odd error in ly-syntax-constructors.scm "Wrong number of arguments to #" Any ideas? I've never seen this before. Rick ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
I had been trying to use Finale for handbells but kept running into an issue when I wanted handchimes ( x-notehead) and handbells (regular notehead). Lilypond has been just the thing - thank you, thank you, thank you! I have worked up two templates for when I start a new piece, which are definitely works in progress. I do have the Finale percussion font on my PC so I am using the damp symbol (and others) from this font, rather than building my own. Both of these should compile on 2.18.2 which is what I have downloaded and am using. On 31 May 2018 at 07:44, Stanton Sanderson wrote: > I’ve attempted some handbell pieces for our bell choir. Attached is one > which has a few special symbols. Not intended as samples of “good practice!” > > Stan > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user > > \version "2.18.2" \language "english" \header { % dedication = \markup { \italic "dedication text - use percent sign if no dedication" } title = "TITLE" subtitle = "for 3 octaves Handbell trio" composer = "name of composer" arranger = "Arranged by name of arranger" copyright = \markup { \column { " " "Copyright © date name of copyright holder" } } tagline = ##f % tagline = "transcribed 201x-xx-xx by S Buckingham using lilypond version 2.18.2" } \paper { #(set-paper-size "letter") system-system-spacing #'basic-distance = #14 last-bottom-spacing = #20 ragged-bottom = ##f top-margin = 10 bottom-margin = 10 left-margin = 15 right-margin = 15 % first-page-number = 2 % use to change page numbering } \layout { \context { \Voice \consists "Melody_engraver"} } % function parentheAll allows for accidental symbol to be included in parentheses parentheAll = #(define-music-function (parser location note) (ly:music?) #{ \once \override ParenthesesItem.font-size = #-1 \once \override ParenthesesItem.stencil = #(lambda (grob) (let* ((acc (ly:grob-object (ly:grob-parent grob Y) 'accidental-grob)) (dot (ly:grob-object (ly:grob-parent grob Y) 'dot))) (if (not (null? acc)) (ly:pointer-group-interface::add-grob grob 'elements acc)) (if (not (null? dot)) (ly:pointer-group-interface::add-grob grob 'elements dot)) (parentheses-item::print grob))) \parenthesize $note #}) global = {%handbells used chart \key c \major \numericTimeSignature } handbellsusedone = \relative c' { % input notes for treble handbells used \clef treble \key c \major % count handbell notes & spaces to get time signature \numericTimeSignature \time 20/4 \once \omit Staff.TimeSignature \override Staff.BarLine.color = #white \override Stem.transparent = ##t % use spaces as needed to get bar to desired length s4^\markup { \left-column { " " "3 octaves - Handbells used: 26" } } s s s s s s s e4_\markup { \column { \small \italic "4 bells shared" \small \italic "Peri&Karen"} } fs g a s gs b c cs d e fs } handbellsusedtwo = \relative c' { % input notes for treble handbells used \clef treble \key c \major % count handbell notes & spaces to get time signature \once \omit Staff.TimeSignature \override Staff.BarLine.color = #white \override Stem.transparent = ##t % use spaces as needed to get bar to desired length b4 c4 cs s d ds f s e fs g a s s s s s s s s } handbellsusedthree = \relative c { % input notes for bass handbells used \clef bass \once \omit Staff.TimeSignature \key c \major \override Staff.BarLine.color = #white \override Stem.transparent = ##t % use spaces as needed to get bar to desired length b'4^\markup { \column { \small \italic "3 bells shared" \small \italic "Karen&Sue" } } c cs s_\markup { \column { " " \small \italic "PERFORMANCE NOTE: recommend setup on 4 tables" } } s s s s cs, d ds e fs g gs a as bf s s } \score { % setup staffgroup with treble & bass handbells used << \new Staff \accidentalStyle forget \handbellsusedone \new Staff \handbellsusedtwo \new Staff \handbellsusedthree >> } global = { \key d \major \numericTimeSignature % input initial time signature here \time 6/8 \tempo "Moderately" 4. = 80 \override Score.BarNumber.break-visibility = ##(#f #t #t) \set Score.currentBarNumber = #1 % Permit first bar number to be printed \bar "" } % this section has special handbells articulations and extra dynamic markings subP = \markup { "sub." \dynamic p } subMP = \markup { "sub." \dynamic mp } mart = \markup { \magnify #0.7 ▼ } martlift = \markup { \concat { \magnify #0.7 ▼ \magnify #1.3 ↑ } } malltab = \m
Re: handbell shake
I’ve attempted some handbell pieces for our bell choir. Attached is one which has a few special symbols. Not intended as samples of “good practice!” Stan Jeg er sa glad-Bells Ed-2.ly Description: Binary data ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
2018-05-31 6:03 GMT+02:00 Rick Kimpel : > From: Thomas Morley > Your sample works in 2.18, as well. I did notice that the gliss line can > obscure the dot. Interestingly, my workaround does something that > confuses the dot and puts it above the squiggle. Can't decide if that's the > best way to go, or if I should force the gliss to start after the dot. > bound-details.left.padding would do the trick there. The optional argument of \durLine is supposed to serve for that purpose. > I couldn't figure out why you had to override the to-barline. Also, your > TODO about that is crazy. I was really surprised by the results of leaving it > out. ?! The idea of durLine was to insert grace-notes right after the end of it's musical argument. Something like: { 1 \grace 1 } Then insert \glissando and make all stuff related to the graces invisible or point-stencils or omit it at all, only keeping the glissando. As viewable by the tiny code above the graces may appear in the next bar. Causing some disadvantages. If you want to insert stuff like breaks, other bar-lines, key- or meter-changes etc at the beginning of this bar you need a second voice and care about grace-synchronisation: \new Staff << { 1\glissando \grace 1 s1 } { s1 \key d \major \bar ":..:" \time 2/2 \grace s1 s1 } >> Also this example demonstrates why setting 'to-barline is preferable there, if it would work as desired ... I've no clue why the glissandi-slopes are messed up. Here a minimal example causing the attached image. I lean towards calling it a bug. { \once \override Glissando.to-barline = ##t 1\glissando 1 } Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
Aaron Hill writes: > On 2018-05-30 15:40, Thomas Morley wrote: >> I don't know anything about handbell choir music and which special >> notation-features may be needed. >> Are there any images you could link to? > > Thomas, > > For your (or anyone else's) reference, here is a site that summarizes > standard American handbell notation: > > https://www.handbellworld.com/music/HandbellNotation.cfm My handbell shake brings all the monks to the yard. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
2018-05-31 3:23 GMT+02:00 Aaron Hill : > On 2018-05-30 15:40, Thomas Morley wrote: >> >> I don't know anything about handbell choir music and which special >> notation-features may be needed. >> Are there any images you could link to? > > > Thomas, > > For your (or anyone else's) reference, here is a site that summarizes > standard American handbell notation: > > https://www.handbellworld.com/music/HandbellNotation.cfm Hi Aaron, thanks for the link, very helpful. Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
From: Thomas Morley Sent: Wednesday, May 30, 2018 10:40 PM > Hi Rick, > > I don't know anything about handbell choir music and which special > notation-features may be needed. There are a ton of things I need to do for this library, but this seemed like a good middle-of-the-road starting point. Other tasks include martellato, tower swing, marks ()/{}/<> around single notes in a chord, and the dreaded list of bells at the beginning. I'll be posting looking for help with those at some point, I'm sure. > Are there any images you could link to? Google doesn't have a great selection of handbell music images, surprisingly. What's the etiquette on scanning something in for educational purposes? I don't want to get into trouble. Aaron's link is a good starting point. > From your coding-attempts, I think you want to mimic the shake with a > flat trill-style-glissando. > It's not too hard to get this, but glissando needs a target note-head. > Meaning a glissando to a rest is impossible (without second voice). > Also, suspended NoteHeads in a chord may lead to different start-end > points of simultaneous glissandi. I have noticed these issues, all right. Also, I found that if I don't explicitly set up the Staff context, it will put the gliss in its own staff. XD Might be time for some remedial Lilypond tutorials. (I'm so rusty.) > All in all it's not far from the problems avantgarde.music using > continuation-lines has to face. > > To circumvent these problems I developed some code for > continuation-lines, which I stripped down to better fit your needs (as > far as I understood them) > It has it's own limitations (see comments), but it may get you started. [...] Wow... I won't pretend to understand all of that. I had just gotten as far as using displayMusic to find out where the glissando even goes. But the \hideNotes added a whole bunch of transparent properties, making it hard to figure out. Your sample works in 2.18, as well. I did notice that the gliss line can obscure the dot. Interestingly, my workaround does something that confuses the dot and puts it above the squiggle. Can't decide if that's the best way to go, or if I should force the gliss to start after the dot. bound-details.left.padding would do the trick there. I couldn't figure out why you had to override the to-barline. Also, your TODO about that is crazy. I was really surprised by the results of leaving it out. ?! Thanks for your help. I'll be playing with it at lunch tomorrow. Regards, Rick ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
On 2018-05-30 15:40, Thomas Morley wrote: I don't know anything about handbell choir music and which special notation-features may be needed. Are there any images you could link to? Thomas, For your (or anyone else's) reference, here is a site that summarizes standard American handbell notation: https://www.handbellworld.com/music/HandbellNotation.cfm Shaking is almost always denoted with `Sk`, but often that notation is accompanied with a wavy line as well. (The wavy line is similar to the arpeggio marking but horizontal.) Usually the wavy line is only necessary if there are other non-shaken notes in the measure and the duration of the shake is not otherwise clear. Also, I have seen music where you have layers of shaken bells all starting and ending at different points. Again, the wavy line can help make things clearer for ringers. The skake line is strictly horizontal and would extend for the duration of the note, so it not attached to anything on the right end. It would be similar to the *laissez vibrer*--a tie with no target. -- Aaron Hill ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: handbell shake
2018-05-30 0:32 GMT+02:00 Rick Kimpel : > I am trying to build a library of functions for handbell choir music. The > first thing I attempted was how to show a shake. It sort of looks like a > trill mark, but the squiggly line is at the level of the note being played. > I'm hoping that I can just make a script that does all of this for me, but > the fact that I had to nudge the invisible notehead over by hand has me > worried that this might not be possible. If there's an easier way to do > this, please let me know, especially if it gets rid of all the clash warning > messages. Maybe something like faking the landing note of the gliss? > > > Thanks, > > Rick [...] Hi Rick, I don't know anything about handbell choir music and which special notation-features may be needed. Are there any images you could link to? >From your coding-attempts, I think you want to mimic the shake with a flat trill-style-glissando. It's not too hard to get this, but glissando needs a target note-head. Meaning a glissando to a rest is impossible (without second voice). Also, suspended NoteHeads in a chord may lead to different start-end points of simultaneous glissandi. All in all it's not far from the problems avantgarde.music using continuation-lines has to face. To circumvent these problems I developed some code for continuation-lines, which I stripped down to better fit your needs (as far as I understood them) It has it's own limitations (see comments), but it may get you started. \version "2.19.81" Flat Glissandi Reads from Glissando.details: equal-chord-glissando-start-end [defaults to '(#t . #t)] #(define flat-gliss (lambda (grob) (let ((left-Y (assoc-get 'Y (ly:grob-property grob 'left-bound-info ;; create a flat glissando (ly:grob-set-nested-property! grob '(right-bound-info Y) left-Y #(define same-gliss-start-end ;; Looks at details.equal-chord-glissando-start-end whether all glissandi ;; between chords should start at the same X-coordinate, same for ;; glissando-endings ;; 'equal-chord-glissando-start-end?' takes a pair of booleans indicating it. (lambda (grob) (let* ((left-bound (ly:spanner-bound grob LEFT)) (parent-nc (ly:grob-parent left-bound X)) (details (ly:grob-property grob 'details)) (equal-chord-glissando-start-end (assoc-get 'equal-chord-glissando-start-end details '(#t . #t))) (vertical-axis-group-elts (ly:grob-object (ly:grob-parent grob Y) 'elements)) ;; Filter VerticalAxisGroup-elements for Glissandi, restricted to ;; those starting at the NoteHeads from same NoteColumn. ;; Return their 'X-value for start/end (relevant-gliss-Xs (if (ly:grob-array? vertical-axis-group-elts) (filter-map (lambda (elt) (and (grob::has-interface elt 'glissando-interface) (equal? (ly:grob-parent (ly:spanner-bound elt LEFT) X) parent-nc) (cons (assoc-get 'X (ly:grob-property elt 'left-bound-info)) (assoc-get 'X (ly:grob-property elt 'right-bound-info) (ly:grob-array->list vertical-axis-group-elts)) '( ;; Depending on `equal-chord-glissando-start-end': ;; Get the most left 'X for the resulting 'X-value of the end. ;; Get the most right 'X for the resulting 'X-value of the start. ;; Override left/right-bound-info with those values. (if (car equal-chord-glissando-start-end) (ly:grob-set-nested-property! grob '(left-bound-info X) (apply max (map car relevant-gliss-Xs (if (cdr equal-chord-glissando-start-end) (ly:grob-set-nested-property! grob '(right-bound-info X) (apply min (map cdr relevant-gliss-Xs))) at = #(define-music-function (parser location time event music) (ly:duration? ly:music? ly:music?) "Place @var{event} at a relative duration @var{time} in relation to @var{music}." #{ \context Bottom << { \skip $time <>$event } $music >> #}) %% %% Limitation of `durLine': %% * `mus' can't end exactly before \break %% * not breakable, even if 'breakable is set #t durLine = #(define-music-function (parser location left-right-padding mus) ((pair? '(0.5 . 0)) ly:music?) (let* ((mus-copy (ly:music-deep-copy mus)) (notes (extract-typed-music mus-copy 'note-event)) (mus-to-insert (cond ((music-is-of-type? mus-copy 'event-chord) (make-event-chord (map (lambda (n) (ly:music-set-property! n 'articulations '())