Re: handbell shake

2018-05-31 Thread Thomas Morley
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

2018-05-31 Thread 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
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: handbell shake

2018-05-31 Thread Susan Buckingham
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

2018-05-31 Thread Stanton Sanderson
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 Thread Thomas Morley
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

2018-05-31 Thread David Kastrup
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 Thread Thomas Morley
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

2018-05-30 Thread Rick Kimpel
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

2018-05-30 Thread 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

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 Thread Thomas Morley
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 '())