Re: markup for circular bowing

2024-02-29 Thread Trevor Bača
Hi Orm,

More examples here:

https://github.com/trevorbaca/baca/blob/main/baca/scm/baca-circle-bow-markups.ily

HTH,

Trevor.

On Wed, Feb 14, 2024 at 4:59 AM Orm Finnendahl <
orm.finnend...@selma.hfmdk-frankfurt.de> wrote:

> Hi,
>
>  I'd like to make a sign for circular bowing like in the attached
> png. The example was done using an epsfile, but unfortunately that
> doesn't export to svg, which I need. So it should be done using
> lilypond's builtin markup commands (or scheme code). Can someone point
> me to examples to do circular arcs with attached arrows (can also be
> scheme code)?
>
> I couldn't find anything similar in the docs/internet.
>
> --
> Orm
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Are hyphens no longer required to prefix postevent tweaks?

2023-07-21 Thread Trevor Bača
Hi,

Are hyphens no longer required to prefix postevent tweaks?

For years I've been writing a hyphen ...

  - \tweak color #red
  \startTextSpan

... to tweak text spanners but no hyphen ...

 4

... to tweak note heads.

As of 2.25.6, the difference between the two forms of \tweak no longer
appears necessary: globally replacing thousands of "- \tweak ..." with just
"\tweak ..." now seems to work perfectly.

This change is really great! Trying to divine (and then remember) which of
dozens of grobs are postevents (versus events?) was a pain. And the effort
now appears no longer necessary.

Is the change intentional? I must have missed it in CHANGES, and the NR
entry for \tweak
<https://lilypond.org/doc/v2.25/Documentation/notation/the-tweak-command#index-_005ctweak-1>
still
shows ...

  \relative { c'-\tweak thickness #5 ( d e f) }  % hyphen

... even though ...

  \relative { c' \tweak thickness #5 ( d e f) }  % no hyphen

... works under 2.25.6.

Thanks so much for this!

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: Tweak grobs with callback output?

2023-07-19 Thread Trevor Bača
On Wed, Jul 19, 2023 at 3:41 PM Jean Abou Samra  wrote:

> \tweak color #(if (equal? DOWN (ly:grob-property grob 'direction)) red
> blue)
>
> You just forgot to wrap the expression in (lambda (grob) ...) .
>

Yes, that's it:

%%% BEGIN %%%

\version "2.25.3"
\markup "Conditionally colors both tuplet brackets:" \markup \vspace #1

{
  \once \override TupletBracket.color = #(lambda (grob)
(if (equal? DOWN (ly:grob-property grob 'direction)) red blue)
  )
  \times 2/3 {
\times 2/3 { c'4 c' c' }
c'2
c'2
  }
}

\markup "Conditionally colors only the inner tuplet bracket:" \markup
\vspace #1

{
  \times 2/3 {
\tweak color #(lambda (grob)
(if (equal? DOWN (ly:grob-property grob 'direction)) red blue))
\times 2/3 { c'4 c' c' }
c'2
c'2
  }
}

%%% END %%%

Thanks very much again, Jean.

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Tweak grobs with callback output?

2023-07-19 Thread Trevor Bača
Hi,

Two examples appear below.

The first works; it uses \override with a callback.

The second doesn't work; it attempts to use \tweak with a callback:

%%% BEGIN %%%

\version "2.25.3"
\markup "Conditionally colors both tuplet brackets:" \markup \vspace #1

{
  \once \override TupletBracket.color = #(lambda (grob)
(if (equal? DOWN (ly:grob-property grob 'direction)) red blue)
  )
  \times 2/3 {
\times 2/3 { c'4 c' c' }
c'2
c'2
  }
}

\markup "How to conditionally color only the inner tuplet bracket?" \markup
\vspace #1

{
  \times 2/3 {
\tweak color #(if (equal? DOWN (ly:grob-property grob 'direction)) red
blue)
\times 2/3 { c'4 c' c' }
c'2
c'2
  }
}

%%% END %%%

Is there a way to tweak grobs with callback output?

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: How to return markup conditionally?

2023-07-19 Thread Trevor Bača
On Wed, Jul 19, 2023 at 2:24 AM David Kastrup  wrote:

> Trevor Bača  writes:
>
> > Hi,
> >
> > I'd like the left text of red text spanners to be set to "foo", and to
> set
> > the left text of all other text spanners to "bar".
> >
> > But I misunderstand how to return markup:
> >
> > %%% BEGIN %%%
> >
> > \version "2.25.3"
> >
> > % no left text set
> > {
> >   \once \override TextSpanner.bound-details.left.text =
> > #(lambda (grob) (if (equal? red (ly:grob-property grob 'color)) "foo"
> > "bar"))
> >   c'1
> >   - \tweak color #red
> >   \startTextSpan
> >   c'1
> >   \stopTextSpan
> > }
> >
> > % no left text set
> > {
> >   \once \override TextSpanner.bound-details.left.text =
> > #(lambda (grob) (if (equal? red (ly:grob-property grob 'color))
> >   (markup "foo")
> >   (markup "bar")))
> >   c'1
> >   - \tweak color #red
> >   \startTextSpan
> >   c'1
> >   \stopTextSpan
> > }
> >
> > %%% END %%%
> >
> > What's the right way to return markup from a Scheme function?
>
> You are doing fine in that regard, but subproperties don't have callback
> evaluation.
>

Ah, ok; thank you, David!

So, the take-away here is:

%%% BEGIN %%%

% Works because TupletNumber.text is property (not a subproperty):
{
  \once \override TupletNumber.text =
#(lambda (grob) (if (equal? red (ly:grob-property grob 'color))
  (markup "RED")
  (markup "NOT RED")))
  \tweak color #red
  \times 2/3 { c'2 c' c' }
}

% Doesn't work because TextSpanner.bound-details.left.text is a subproperty:
{
  \once \override TextSpanner.bound-details.left.text =
#(lambda (grob) (if (equal? red (ly:grob-property grob 'color)) "foo"
"bar"))
  c'1
  - \tweak color #red
  \startTextSpan
  c'1
  \stopTextSpan
}

%%% END %%%

The problem I'm wanting to solve has to do with swapping a text spanner's
right text for its right-broken text, conditionally based on the spanner's
end position. The problem looks complicated, so I'll introduce it as a
separate thread.

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


How to return markup conditionally?

2023-07-18 Thread Trevor Bača
Hi,

I'd like the left text of red text spanners to be set to "foo", and to set
the left text of all other text spanners to "bar".

But I misunderstand how to return markup:

%%% BEGIN %%%

\version "2.25.3"

% no left text set
{
  \once \override TextSpanner.bound-details.left.text =
#(lambda (grob) (if (equal? red (ly:grob-property grob 'color)) "foo"
"bar"))
  c'1
  - \tweak color #red
  \startTextSpan
  c'1
  \stopTextSpan
}

% no left text set
{
  \once \override TextSpanner.bound-details.left.text =
#(lambda (grob) (if (equal? red (ly:grob-property grob 'color))
  (markup "foo")
  (markup "bar")))
  c'1
  - \tweak color #red
  \startTextSpan
  c'1
  \stopTextSpan
}

%%% END %%%

What's the right way to return markup from a Scheme function?

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: How to supply missing end-of-system bar line?

2023-07-18 Thread Trevor Bača
On Tue, Jul 18, 2023 at 6:30 PM Jean Abou Samra  wrote:

> Le mardi 18 juillet 2023 à 18:07 -0400, Trevor Bača a écrit :
>
> Is this intentional? And, if it is, is there a way to re-supply the
> missing bar line?
>
>
>
> Yes, and yes. This is a frequent question, so I've wondered a couple times
> if we should come up with a new command to recommend instead of \bar, but
> it's not clear that the alternatives are better.
>
> https://gitlab.com/lilypond/lilypond/-/issues/6414 is related.
>
> In short, from LilyPond's point of view, the bar line at the end of the
> previous system is the same bar line as the one at the start of the new
> system. Which is not illogical, considering that they would be the same if
> there were no line break.
>
> Consequently, the \bar command defines *both* bar lines. And if you look
> at the list of bar lines at
> https://lilypond.org/doc/v2.24/Documentation/notation/list-of-bar-lines ,
> you can see that \bar ".|:" has no drawing at end of line. \bar ".|:-|"
> does.
>

Ah! I had no idea the inventory of bar line commands had come so far;
thanks for the pointer to A.18.

The point about LilyPond considering matching end-of-system /
beginning-of-system as, in some ways, the same is interesting to note. What
was behind my question was the want to tweak such end-of-system /
beginning-of-system pairs independently. Happily, this appears to work
perfectly:

%%% BEGIN %%%

% red bar line left of line break; blue bar line right of line break:
{
  c'1
  \bar ".|:-|"
  \break
  \once \override Score.BarLine.color =
#(lambda (grob) (if (= LEFT (ly:item-break-dir grob)) red blue))
  c'1
}

%%% END %%%

Thanks so much again, Jean.

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


How to supply missing end-of-system bar line?

2023-07-18 Thread Trevor Bača
Hi,

The bar line at the end of the first system below appears to be missing:

%%% BEGIN %%%

\version "2.25.3"
\layout { indent = #0 ragged-right = ##t }

{
  c'4 c'4 c'4 c'4
  \bar ".|:"
  \break
  c'4 c'4 c'4 c'4
}

%%% END %%%

Is this intentional? And, if it is, is there a way to re-supply the missing
bar line?

Thanks,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: How to test grob color?

2023-07-18 Thread Trevor Bača
On Tue, Jul 18, 2023 at 3:58 PM Jean Abou Samra  wrote:

> Hi Trevor,
>
> In Scheme, the = function is for comparing numbers, and nothing else. For
> colors, you want equal? .
>
>
> ~ $ guile2.2
> GNU Guile 2.2.7
> Copyright (C) 1995-2019 Free Software Foundation, Inc.
>
> Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
> This program is free software, and you are welcome to redistribute it
> under certain conditions; type `,show c' for details.
>
> Enter `,help' for help.
> scheme@(guile-user)> (= 1 2)
> $1 = #f
> scheme@(guile-user)> (= 1 1)
> $2 = #t
> scheme@(guile-user)> (= 1 1.0)
> $3 = #t
> scheme@(guile-user)> (= 'a 'b)
> :4:0: In procedure =: Wrong type argument in position 1: a
>
> Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
> scheme@(guile-user) [1]> ,q
> scheme@(guile-user)> (equal? 1 2)
> $4 = #f
> scheme@(guile-user)> (equal? 1 1)
> $5 = #t
> scheme@(guile-user)> (equal? 1 1.0)
> $6 = #f
> scheme@(guile-user)> (equal? 'a 'b)
> $7 = #f
>
>
Hi Jean,

Thank you so much; exactly what I needed to know.

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


How to test grob color?

2023-07-18 Thread Trevor Bača
Hi,

This tests tuplet bracket thickness (and overrides color):

%%% BEGIN (works) %%%

{
  \once \override TupletBracket.color = #(lambda (grob)
(if (= 3 (ly:grob-property grob 'thickness)) red))
  \tweak thickness 3
  \times 2/3 { c'2 c'2 c'2 }
}

%%% END %%%


But how to test tuplet bracket color?

%%% BEGIN %%%

% Fails with wrong type argument in position 1: (1.0 0.0 0.0):
{
  \once \override TupletBracket.thickness = #(lambda (grob)
(if (= red (ly:grob-property grob 'color)) 3))
  \tweak color #red
  \times 2/3 { c'2 c'2 c'2 }
}

% Fails with Wrong type argument in position 1: red:
{
  \once \override TupletBracket.thickness = #(lambda (grob)
(if (= red (ly:grob-property grob 'color)) 3))
  \tweak color #red
  \times 2/3 { c'2 c'2 c'2 }
}

%%% END %%%

Thanks for any ideas,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: LilyPond 2.23.80

2022-10-27 Thread Trevor Bača
Hi,

All of my scores compile under 2.13.80, and with no errors.

Congratulations, and thanks for the chance to test the 2.24 release
candidates.

Trevor.

On Sun, Oct 23, 2022 at 10:22 PM Jonas Hahnfeld via LilyPond user
discussion  wrote:

> We are happy to announce the release of LilyPond 2.23.80. This is the
> first release candidate towards the next stable version 2.24.0 expected
> in December. Please test your scores with this version and report back
> the experience as well as any problems you encounter. Please refer to
> the Installing section in the Learning Manual for instructions how to
> set up the provided binaries:
> https://lilypond.org/doc/v2.23/Documentation/learning/installing
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: LilyPond 2.23.7 released

2022-04-08 Thread Trevor Bača
Hi,

2.23.7 appears to introduce a bug in SVG output under macOS:

%%% BEGIN %%%

\version "2.23.7"

\new Staff
{
  \time 3/4
  c'2.
}

%%% END %%%

macOS 12.3.1 produces the following:

$ lilypond --svg example.ly
GNU LilyPond 2.23.7 (running Guile 2.2)
Processing `example.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...;;; note: source file
/Users/trevor/lilypond-2.23.7/share/lilypond/2.23.7/scm/lily/output-svg.scm
;;;   newer than compiled
/Users/trevor/lilypond-2.23.7/lib/lilypond/2.23.7/ccache/lily/output-svg.go
ice-9/eval.scm:351:13: Wrong number of arguments to #

The resulting SVG (attached here) is headed by a bright red banner
announcing an error.

Strangely, the choice of time signature is important: the example above
renders correctly in 4/4, even though the system-draw warning still appears.

The error appears to come from line 423 of
.../share/lilypond/2.23.7/scm/lily/output-svg.scm, at which
embedded-glyph-string is defined.

Note that the example above renders correctly with 2.23.6.

Trevor.


On Sat, Mar 26, 2022 at 10:36 PM Jonas Hahnfeld via Discussions on LilyPond
development  wrote:

> We are happy to announce the release of LilyPond 2.23.7. This is termed
> a development release, but these are usually reliable. If you want to
> use the current stable version of LilyPond, we recommend using the
> 2.22.2 version.
>
> Starting with this release, LilyPond requires Guile 2.2 and the
> official binaries were created with the new infrastructure developed
> over the past months. Issues reported for the previous release have
> been addressed, in particular regarding performance (by integrating
> compiled bytecode) and on Windows, where it is now possible to extract
> the provided zip archive with the Windows Explorer and use special
> characters in filenames. Please test this release and let us know about
> problems that you encounter.
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: Why does -dbackend=svg -dcrop remove system-system-spacing?

2021-01-12 Thread Trevor Bača
On Fri, Jan 8, 2021 at 6:02 PM David Wright 
wrote:

> On Thu 07 Jan 2021 at 19:57:12 (-0500), Trevor Bača wrote:
> > On Wed, Jan 6, 2021 at 2:29 PM David Wright wrote:
> > > On Wed 06 Jan 2021 at 11:34:24 (-0500), Trevor Bača wrote:
> > > > On Tue, Jan 5, 2021 at 11:31 PM David Wright wrote:
> > > > > On Tue 05 Jan 2021 at 19:05:30 (-0500), Trevor Bača wrote:
> > > > > > I love the functionality for cropped SVGs! (Added back in 2019,
> or
> > > > > > around then?)
> > > > > >
> > > > > > Question: it appears that cropped multisystem SVGs remove all
> > > > > > whitespace between systems. Is this supposed to happen?
> > > > >
> > > > > I think that removing all the margins is the functionality "crop"
> is
> > > > > supposed to add to LP. To generate the equivalent cropped and
> packed
> > > > > image without this facility would be quite tedious to do (unless
> > > > > someone has a trick for doing it?).
> > > > >
> > > > > > %%% BEGIN %%%
> > > > > > […]
> > > > > > %%% END %%%
> > > > > >
> > > > > > Called with ...
> > > > > >lilypond -dbackend=svg -dcrop test.ly
> > > > > > ... produces test.cropped.svg as attached here.
> > > > > >
> > > > > > Screenshot:
> > > > > > […]
> > > > > >
> > > > > > Seems like cropping should be around the edges of the image
> (rather
> > > > > > than between systems)?
> > > > >
> > > > > If you just want to crop the whole page image, you can do that
> easily
> > > > > at the end of a normal run with the usual utilities. If you require
> > > > > LP to set the entire score on a single page, just use a very long
> > > > > custom page (as in NR §4.1.2: width, then length).
> > > >
> > > > I'm sorry; I don't understand.
> > > >
> > > > What I want Lily to do: remove whitespace from the *edges* of an SVG.
> > >
> > > As I said, you run LP as normal, and then trim to taste. So, taking
> > > your example, I ran it with
> > > $ lilypond-2.21.80-1.linux-64/bin/lilypond --svg -dno-point-and-click
> > > Bača.ly
> > > and then edited the first line of Bača.svg, resulting in
> Bača-trimmed.svg.
> > > The end of the first line is modified from
> > >  width="210.00mm" height="297.00mm" viewBox="0 0 119.5016 169.0094">
> > > to
> > >  width="192.00mm" height="297.00mm" viewBox="4.5 0 109.5016 169.0094">
> > > which I did by inspection. As you use SVG files in your workflow,
> > > I assume you can carry this out more easily and precisely¹ with some
> > > particular tool. (I'm PDF-centric myself.) I only considered X because
> > > I was inspecting the file on a landscape screen (and you didn't remove
> > > the tagline anyway).
> > >
> > > > What Lily actually does when -dcrop is set: removes whitespace from
> the
> > > > edges *and from between all systems* of an SVG.
> > >
> > > That's right, so that your file contains all the information,
> > > unencumbered by margins, ready for some sort of further processing.
> > > Obviously, I don't know what that will be in your case.
> > >
> > > It reminds me of those PNG files that you find in browsers' cache,
> > > which have a strip or grid of little images that are used internally,
> > > either as a toolbar, or displayed sequentially like a movie.
> > >
> > > > So my question is: is Lily supposed to remove whitespace from
> *between*
> > > > systems when -d[c]rop is set?
> > >
> > > AIUI yes. But this is policy: I await pronouncements from higher-ups.
> > >
> > > ¹ I believe the modifications need to be kept proportional, in order
> > >   to preserve the aspect ratio.
> >
> > I really appreciate the responses, but I'm even more confused than
> before.
> >
> > When you ran ...
> >
> > $ lilypond-2.21.80-1.linux-64/bin/lilypond --svg -dno-point-and-click
> Bača.ly
> >
> > ... why didn't you include the -dcrop option?
>
> [You need a fixed width font to make sense of text below.]
>
> What running my command on your source produces might be represented by:
>
> A   ┌┐
>

Re: Why does -dbackend=svg -dcrop remove system-system-spacing?

2021-01-07 Thread Trevor Bača
On Wed, Jan 6, 2021 at 2:29 PM David Wright 
wrote:

> On Wed 06 Jan 2021 at 11:34:24 (-0500), Trevor Bača wrote:
> > On Tue, Jan 5, 2021 at 11:31 PM David Wright wrote:
> > > On Tue 05 Jan 2021 at 19:05:30 (-0500), Trevor Bača wrote:
> > > > I love the functionality for cropped SVGs! (Added back in 2019, or
> around
> > > > then?)
> > > >
> > > > Question: it appears that cropped multisystem SVGs remove all
> whitespace
> > > > between systems. Is this supposed to happen?
> > >
> > > I think that removing all the margins is the functionality "crop" is
> > > supposed to add to LP. To generate the equivalent cropped and packed
> > > image without this facility would be quite tedious to do (unless
> > > someone has a trick for doing it?).
> > >
> > > > %%% BEGIN %%%
> > > > […]
> > > > %%% END %%%
> > > >
> > > > Called with ...
> > > >lilypond -dbackend=svg -dcrop test.ly
> > > > ... produces test.cropped.svg as attached here.
> > > >
> > > > Screenshot:
> > > > […]
> > > >
> > > > Seems like cropping should be around the edges of the image (rather
> than
> > > > between systems)?
> > >
> > > If you just want to crop the whole page image, you can do that easily
> > > at the end of a normal run with the usual utilities. If you require
> > > LP to set the entire score on a single page, just use a very long
> > > custom page (as in NR §4.1.2: width, then length).
> >
> > I'm sorry; I don't understand.
> >
> > What I want Lily to do: remove whitespace from the *edges* of an SVG.
>
> As I said, you run LP as normal, and then trim to taste. So, taking
> your example, I ran it with
> $ lilypond-2.21.80-1.linux-64/bin/lilypond --svg -dno-point-and-click
> Bača.ly
> and then edited the first line of Bača.svg, resulting in Bača-trimmed.svg.
> The end of the first line is modified from
>  width="210.00mm" height="297.00mm" viewBox="0 0 119.5016 169.0094">
> to
>  width="192.00mm" height="297.00mm" viewBox="4.5 0 109.5016 169.0094">
> which I did by inspection. As you use SVG files in your workflow,
> I assume you can carry this out more easily and precisely¹ with some
> particular tool. (I'm PDF-centric myself.) I only considered X because
> I was inspecting the file on a landscape screen (and you didn't remove
> the tagline anyway).
>
> > What Lily actually does when -dcrop is set: removes whitespace from the
> > edges *and from between all systems* of an SVG.
>
> That's right, so that your file contains all the information,
> unencumbered by margins, ready for some sort of further processing.
> Obviously, I don't know what that will be in your case.
>
> It reminds me of those PNG files that you find in browsers' cache,
> which have a strip or grid of little images that are used internally,
> either as a toolbar, or displayed sequentially like a movie.
>
> > So my question is: is Lily supposed to remove whitespace from *between*
> > systems when -d[c]rop is set?
>
> AIUI yes. But this is policy: I await pronouncements from higher-ups.
>
> ¹ I believe the modifications need to be kept proportional, in order
>   to preserve the aspect ratio.
>

Hi David,

I really appreciate the responses, but I'm even more confused than before.

When you ran ...

$ lilypond-2.21.80-1.linux-64/bin/lilypond --svg -dno-point-and-click
Bača.ly

... why didn't you include the -dcrop option?


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: Why does -dbackend=svg -dcrop remove system-system-spacing?

2021-01-06 Thread Trevor Bača
On Tue, Jan 5, 2021 at 11:31 PM David Wright 
wrote:

> On Tue 05 Jan 2021 at 19:05:30 (-0500), Trevor Bača wrote:
> > I love the functionality for cropped SVGs! (Added back in 2019, or around
> > then?)
> >
> > Question: it appears that cropped multisystem SVGs remove all whitespace
> > between systems. Is this supposed to happen?
>
> I think that removing all the margins is the functionality "crop" is
> supposed to add to LP. To generate the equivalent cropped and packed
> image without this facility would be quite tedious to do (unless
> someone has a trick for doing it?).
>
> > %%% BEGIN %%%
> > […]
> > %%% END %%%
> >
> > Called with ...
> >lilypond -dbackend=svg -dcrop test.ly
> > ... produces test.cropped.svg as attached here.
> >
> > Screenshot:
> > […]
> >
> > Seems like cropping should be around the edges of the image (rather than
> > between systems)?
>
> If you just want to crop the whole page image, you can do that easily
> at the end of a normal run with the usual utilities. If you require
> LP to set the entire score on a single page, just use a very long
> custom page (as in NR §4.1.2: width, then length).
>

I'm sorry; I don't understand.

What I want Lily to do: remove whitespace from the *edges* of an SVG.

What Lily actually does when -dcrop is set: removes whitespace from the
edges *and from between all systems* of an SVG.

So my question is: is Lily supposed to remove whitespace from *between*
systems when -drop is set?


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: [bug] 2.20.0 -> 2.21.1 Multi_measure_rest_engraver

2020-05-07 Thread Trevor Bača
On Wed, May 6, 2020 at 7:06 PM David Kastrup  wrote:

> Valentin Villenave  writes:
>
> > On 5/6/20, Trevor Bača  wrote:
> >> The following MWE works under 2.20.0 but crashes LilyPond under 2.21.1.
> >
> > Wow, that’s a nice one. I’m marking this as Critical because its a/ a
> > segfault, b/ a regression and c/ not that unusual a use case.
> > https://sourceforge.net/p/testlilyissues/issues/5964/
> > Since it got broken recently, that should be fairly easy to bisect.
>
> Uh, there are several years of development between 2.20.0 and 2.21.1.
> Unfortunately.  But at least few version changes...
>

Actually, only one version to check! The problem entered sometime between
2.19.84 and 2.21.1.

MWE works under 2.19.84:

### WORKS UNDER 2.19.84 ###

\version "2.19.84"

\layout {
\context {
\name GlobalRests
\type Engraver_group
\consists Multi_measure_rest_engraver
}
\context {
\name GlobalContext
\type Engraver_group
\accepts GlobalRests
}
\context {
\Score
\accepts GlobalContext
}
}

\new Score
<<
\new GlobalContext
{
\new GlobalRests { R1 }
}
\new Staff { \time 4/4 R1 }
>>

### END ###

GNU LilyPond 2.19.84
Processing `test.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to
`/var/folders/0k/3dbjvd1548b0wkstx2lyb60wgn/T//lilypond-3FIYkv'...
Converting to `test.pdf'...
Deleting
`/var/folders/0k/3dbjvd1548b0wkstx2lyb60wgn/T//lilypond-3FIYkv'...
Success: compilation successfully completed

HTH,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


[bug] 2.20.0 -> 2.21.1 Multi_measure_rest_engraver

2020-05-06 Thread Trevor Bača
Hi,

The following MWE works under 2.20.0 but crashes LilyPond under 2.21.1.

### WORKS UNDER 2.20.0 ###

\version "2.20.0"

\layout {
\context {
\name GlobalRests
\type Engraver_group
\consists Multi_measure_rest_engraver
}
\context {
\name GlobalContext
\type Engraver_group
\accepts GlobalRests
}
\context {
\Score
\accepts GlobalContext
}
}

\new Score
<<
\new GlobalContext
{
\new GlobalRests { R1 }
}
\new Staff { \time 4/4 R1 }
>>

### END ###

GNU LilyPond 2.20.0
Processing `illustration.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Layout output to
`/var/folders/0k/3dbjvd1548b0wkstx2lyb60wgn/T//lilypond-kmhqj8'...
Converting to `illustration.pdf'...
Deleting
`/var/folders/0k/3dbjvd1548b0wkstx2lyb60wgn/T//lilypond-kmhqj8'...
Success: compilation successfully completed

[image: mmrest.png]

### CRASHES UNDER 2.21.1 ###

\version "2.21.1"

\layout {
\context {
\name GlobalRests
\type Engraver_group
\consists Multi_measure_rest_engraver
}
\context {
\name GlobalContext
\type Engraver_group
\accepts GlobalRests
}
\context {
\Score
\accepts GlobalContext
}
}

\new Score
<<
\new GlobalContext
{
\new GlobalRests { R1 }
}
\new Staff { \time 4/4 R1 }
>>

### END ###

GNU LilyPond 2.21.1
Processing `illustration.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
< halt >


The workaround appears to be to use 2.20.0 until the 2.21.1 bug can be
tracked down.

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: \offset Y-offset

2020-02-18 Thread Trevor Bača
On Tue, Jan 21, 2020 at 4:30 AM Aaron Hill  wrote:

> On 2020-01-19 7:15 am, Paolo Prete wrote:
> > I'm looking at your code and I don't understand what is it intended to
> > do.
> > You write: "% Test with bracket that is positioned by Y-offset."
> > but from what I see, the bracket is positioned by both
> > outside-staff-padding and y-offset inside \shiftOttavaBracket.
> > What do you mean, then?
> > In addition, please can you write at the beginning of the snippet what
> > you
> > are going to demonstrate? IIUC, what you are going to demonstrate is
> > something that depends on the result of another snippet. Please, can
> > you
> > put all in the same example? Otherwise all becomes too hard to be
> > understood/used.
>
> It seems that email might not be the best medium of communication for
> this.  I am taking a page out of Knuth's handbook with something akin to
> literate programming.  Lacking a suitable TeX environment that works
> with LilyPond, I chose to do everything in a monolithic LY file.
>
> May you find attached a compiled PDF with its LY source file.  I cannot
> promise the LY is the *most* readable, but I have tried to keep things
> as organized as possible.  Likewise, I have done a few passes of
> proof-reading over the document, but at this point I am unlikely to spot
> any typos that remain.  And rather than delay this further, I am sending
> out what I have, for better or worse.
>
> Due to the nature of this presentation, there are parts of the LY file
> that are not directly relevant to the subject--including a number of
> helper functions for overlaying graphics on grobs, as well as a kludgy
> solution for including the text of a code snippet in the final document
> while also executing it.  Between just reading the PDF by itself and
> then along side the LY source, I hope it will not be too difficult to
> sort the wheat from the chaff.
>

Hi Aaron,

This is such a generous way of communicating your problem-solving approach.
Thank you for taking the time to write it up; I learned details of grob
spacing that I didn't know I'd been missing for several years.

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Release notification: Abjad 3.1

2019-12-18 Thread Trevor Bača
Dear friends,

Abjad 3.1 is now available:

Docs: https://abjad.github.io/
GitHub: https://github.com/abjad/abjad
PyPI: https://pypi.org/project/Abjad/

Please note that the old www.projectabjad.org URL has been retired in favor
of GitHub doc hosting, as shown above.

There are hundreds of new features in this release; highlights follow below.

Here's to happy composing and to time with friends and family over the
holiday season.

We hope you enjoy,

Trevor Bača
* mail: trevor.b...@gmail.com
* home: http://www.trevorbaca.com/

Josiah Wolf Oberholtzer
* mail: josiah.oberholt...@gmail.com
* home: http://josiahwolfoberholtzer.com

ABJAD 3.1 RELEASE NOTES

Abjad 3.1 includes a large number of new features and three important
changes.

Changes:

   - Respelled abjad.Container.is_simultaneous as
   abjad.Container.simultaneous
   - Removed abjad.Measure
   - Replaced old spanner classes with new factory functions

Select new features:

   - Annotated iteration
   - Attribute testing
   - Literal markup
   - Selector concatenation
   - Selector inclusion / exclusion
   - Tagged component, indicator, tweak output
   - Timespan expressions

Details appear below.
CHANGES1. RESPELLED ABJAD.CONTAINER.IS_SIMULTANEOUS AS
ABJAD.CONTAINER.SIMULTANEOUS

OLD: Container.is_simultaneous
NEW: Container.simultaneous

Example:

>>> voice_1 = abjad.Voice(r"a''4 \flageolet ( df'''16 )")
>>> literal = abjad.LilyPondLiteral(r"\voiceOne", "opening")
>>> abjad.attach(literal, voice_1[0])
>>> voice_2 = abjad.Voice(r"4 \flageolet ( 16 )")
>>> literal = abjad.LilyPondLiteral(r"\voiceTwo", "opening")
>>> abjad.attach(literal, voice_2[0])
>>> container = abjad.Container([voice_1, voice_2], simultaneous=True)
>>> staff = abjad.Staff("r2 r8.")
>>> staff.insert(1, container)
>>> markup = abjad.Markup("div. in 3", direction=abjad.Up)
>>> abjad.attach(markup, staff[0])
>>> abjad.override(staff[0]).text_script.self_alignment_X = -0.25
>>> abjad.override(staff[0]).text_script.staff_padding = 2
>>> abjad.show(staff)

[image: container-simultaneous]

Users should change is_simultaneous to simultaneous everywhere in existing
scores. Closes #1103.
2. REMOVED ABJAD.MEASURE

LilyPond does not model measures explicitly. This is now true in Abjad 3.1,
too. Attach abjad.TimeSignature indicators wherever you would call the
LilyPond \time command.

Recall that in Abjad you can iterate notes, rests and chords grouped
together by the measure that contains them:

>>> time_signature = abjad.TimeSignature((9, 8))
>>> staff = abjad.Staff("f''4. gf'' f'' gf'' f'' c''' c''' a'' fs''")
>>> first_leaf = staff[0]
>>> abjad.attach(time_signature, first_leaf)
>>> abjad.show(staff)

[image: staff]

>>> for group in groups:
... print(group)
Selection([Note("f''4."), Note("gf''4."), Note("f''4.")])
Selection([Note("gf''4."), Note("f''4."), Note("c'''4.")])
Selection([Note("c'''4."), Note("a''4."), Note("fs''4.")])

>>> last_group = groups[-1]
>>> for note in last_group:
... abjad.attach(abjad.Marcato(), note)
...
>>> abjad.show(staff)

[image: last-measure-articulations]

Also:

   - Removed abjad.Measure
   - Removed abjad.MeasureMaker
   - Removed abjad.Mutation.replace_measure_contents()

3. REPLACED SPANNERS WITH FACTORY FUNCTIONS

LilyPond models beams, hairpins, slurs and other spanners with matching
start- and stop-commands. This is now true in Abjad 3.1, too. The
spanners.py module implements 12 factory functions to help you work with
spanners. These new factory functions are implemented in terms of matching
pairs of start and stop indicators: abjad.text_spanner() works by attaching
instances of the new abjad.StartTextSpan and abjad.StopTextSpan indicators
(which format as LilyPond \startTextSpan and \stopTextSpan). Closes #1033:

   - abjad.beam()
   - abjad.bow_contact_spanner()
   - abjad.glissando()
   - abjad.hairpin()
   - abjad.horizontal_bracket()
   - abjad.ottava()
   - abjad.phrasing_slur()
   - abjad.piano_pedal()
   - abjad.slur()
   - abjad.text_spanner()
   - abjad.tie()
   - abjad.trill_spanner()

CHANGED:

OLD: abjad.BowContactSpanner
NEW: abjad.bow_contact_spanner()

OLD: abjad.Glissando
NEW: abjad.glissando()

OLD: abjad.HorizontalBracket
NEW: abjad.horizontal_bracket()

OLD: abjad.OctavationSpanner
NEW: abjad.ottava()

OLD: abjad.PianoPedalSpanner
NEW: abjad.piano_pedal()

OLD: abjad.TrillSpanner
NEW: abjad.trill_spanner()

OLD: abjad.HairpinIndicator
NEW: abjad.StartHairpin

Also:

   - Added abjad.glissando(..., hide_stem_selector=None) keyword
   - Added abjad.glissando(..., left_broken=None) keyword
   - Added abjad.glissando(..., right_broken_show_

Re: Spacing of clef change

2019-12-01 Thread Trevor Bača
Hi Aaron,

Wow, that technique for overriding end-of-system / begin-of-system grobs
*independently of one another* fills in an extremely important LilyPond gap
for me.

I've modified your example for the archives; everyone should know this
technique.

%%% INDEPENDENT LINE-BREAK OVERRIDES %%%

\version "2.19.83"

\new Staff
{
\omit Score.BarNumber
\omit Staff.Clef
\omit Staff.TimeSignature
c'4 c'4 c'4 c'4
\bar ":..:"
\once \override Staff.BarLine.color = #(lambda (grob)
(if
(eq? LEFT (ly:item-break-dir grob))
(set! (ly:grob-property grob 'color) red))
(if
(eq? RIGHT (ly:item-break-dir grob))
(set! (ly:grob-property grob 'color) blue)))
\break
c'4 c'4 c'4 c'4
}

\layout {
indent = #0
ragged-right = ##t
}

%%% END %%%

[image: end-of-system-bar-lines.png]


Trevor.


On Thu, Jun 27, 2019 at 12:54 AM Aaron Hill 
wrote:

> On 2019-06-26 9:27 pm, Evan Driscoll wrote:
> > I've got the example document below. There's a bit too little space for
> > me
> > between the last note in the last measure of the first line and the new
> > clef.
> >
> > I found a mailing list entry that showed how to put some extra space
> > before
> > the clef (the commented-out override) and that looks great -- except
> > that
> > it also moves the clef at the start of the next system. I tried a
> > \tweak
> > version, but my attempt has no effect at all.
>
> Here's one way to do it:
>
> 
> \version "2.19.82"
>
> \relative c {
>  \clef "bass"
>  \repeat unfold 10 {
>   g2. g4 |
>  }
>  \break
>  \once \override Staff.Clef.before-line-breaking = #(lambda (grob)
>(and (eq? LEFT (ly:item-break-dir grob))
>  (set! (ly:grob-property grob 'X-extent) '(-2 . 2
>  \clef "tenor"
>  \repeat unfold 7 {
>   g8 g g2.
>  }
> }
> 
>
>
> -- Aaron Hill
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca


Re: Bug: restarting staff destroys DynamicLineSpanner.staff-padding after line break

2019-03-11 Thread Trevor Bača
On Thu, Mar 7, 2019 at 2:14 AM David Kastrup  wrote:

> Trevor Bača  writes:
>
> > Restarting the staff during the lifespan of a multisystem
> > DynamicLineSpanner destroys the value of DynamicLineSpanner properties
> > (like staff-padding) that were set when the DynamicLineSpanner was
> > created.
>
> It doesn't.  It's just that the DynamicLineSpanner has a relation with
> the Staff it was started in.
>
> > In the MWE below, the hairpin should exhibit staff-padding equal to 10
> > staff spaces below all four systems; but the value of staff-padding is
> lost
> > at the point (in system 2) that the staff is restarted; we see evidence
> of
> > this after the next line break (in systems 3 and 4) where no staff
> padding
> > appears.
> >
> > %%% BEGIN %%%
> >
> > \version "2.19.82"
> >
> > \new Staff
> > {
> >
> > \override DynamicLineSpanner.staff-padding = 10
> > c'1
> > \p
> > \<
> > c'1
> > c'1
> > \break
> >
> > c'1
> > \stopStaff
> > \startStaff
> > c'1
> > c'1
> > \break
> >
> > c'1
> > c'1
> > c'1
> > \break
> >
> > c'1
> > c'1
> > c'1
> > \f
> >
> > }
> >
> > \paper
> > {
> > indent = 0
> > ragged-right = ##t
> > system-system-spacing.minimum-distance = 30
> > }
> >
> > %%% END %%%
> >
> > [image: restart-staff-dynamic-line-spanner-bug.png]
>
> If you start a new DynamicLineSpanner like
>
> c'1\!
> \stopStaff
> \startStaff
> c'1\<
>
> it will be properly spaced.  It's probably not the only spanner
> unprepared to span pieces of interrupted staff symbols.
>

Isn't this still a bug? Or, rather a gap in system functionality for which
no workaround exists?

Starting a new DynamicLineSpanner creates two separate hairpins:

%%% BEGIN %%%

\version "2.19.82"

\new Staff
{

\override DynamicLineSpanner.staff-padding = 10
c'1
\p
\<
c'1
c'1
\break

c'1
\!
\stopStaff
\startStaff
c'1
\<
c'1
\break

c'1
c'1
c'1
\break

    c'1
c'1
c'1
\f

}

\paper
{
indent = 0
ragged-right = ##t
system-system-spacing.minimum-distance = 30
}

%%% END %%%

[image: two-hairpins-instead-of-one.png]

... when what's needed is one single hairpin that governs the music of all
four systems.

Or am I missing something, and there is a way to generate a single
multisystem hairpin that governs all four systems?


Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Bug: restarting staff destroys DynamicLineSpanner.staff-padding after line break

2019-03-06 Thread Trevor Bača
Hi,

Restarting the staff during the lifespan of a multisystem
DynamicLineSpanner destroys the value of DynamicLineSpanner properties
(like staff-padding) that were set when the DynamicLineSpanner was created.

In the MWE below, the hairpin should exhibit staff-padding equal to 10
staff spaces below all four systems; but the value of staff-padding is lost
at the point (in system 2) that the staff is restarted; we see evidence of
this after the next line break (in systems 3 and 4) where no staff padding
appears.

%%% BEGIN %%%

\version "2.19.82"

\new Staff
{

\override DynamicLineSpanner.staff-padding = 10
c'1
\p
\<
c'1
c'1
\break

c'1
\stopStaff
\startStaff
c'1
c'1
\break

c'1
c'1
c'1
\break

c'1
c'1
c'1
\f

}

\paper
{
indent = 0
ragged-right = ##t
system-system-spacing.minimum-distance = 30
}

%%% END %%%

[image: restart-staff-dynamic-line-spanner-bug.png]


Thanks,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Text spanner padding

2019-03-01 Thread Trevor Bača
On Thu, Feb 28, 2019 at 4:10 PM David Kastrup  wrote:

> Trevor Bača  writes:
>
> > On Fri, Feb 22, 2019 at 2:58 AM Andrew Bernard  >
> > wrote:
> >
> >> Solved. It's right-broken-padding set to false that does the trick.
> >>
> >>   \override TextSpanner.bound-details.right-broken.padding = ##f
> >>   \override TextSpanner.bound-details.right.padding = #11
> >>
> >
> >
> > As a note for posterity (whenever the time comes to finally equip text
> > spanners with their remaining missing features), it would be fantastic to
> > allow text spanners to start (and stop) nonmusical items, like bar lines.
> >
> > Then magic numbers (like 11, in the example here) can be replaced by
> > something semantic that says "stop text span on bar line", which seems to
> > be what Andrew is actually engraving in this excerpt.
>
> So?  There is the to-barline property.
>

Hi David,

This is extremely useful. Thank you so much for sending over the example; I
had no idea to-barline was implemented on TextSpanner.

A cleaned up the example for future archive-searchers:

%%% TEXT SPANNER TO BARLINE (MID-SYSTEM) %%%

\version "2.19.82"

left-bracket-path = #'(
(moveto 0 -1)
(lineto 0 0)
(lineto 2 0)
)

right-bracket-path = #'(
(lineto 2 0)
(lineto 2 -1)
)

repeat-spanner-start-markup = \markup {
\path #0.25 #left-bracket-path
\general-align #Y #CENTER
\sans \upright " x3"
}

repeat-spanner-stop-markup = \markup {
\general-align #X #RIGHT
\line {
\general-align #Y #CENTER
\sans \upright " x3"
\path #0.25 #right-bracket-path
}
}

\new Staff
{

c'1
- \tweak bound-details.left.text \repeat-spanner-start-markup
- \tweak bound-details.left-broken.text ##f
- \tweak bound-details.right.padding 0
- \tweak bound-details.right.text \repeat-spanner-stop-markup
- \tweak bound-details.right-broken.text ##f
- \tweak dash-period 1
- \tweak staff-padding 4
- \tweak to-barline ##t
\startTextSpan

c'1
\break

c'1

c'1
\stopTextSpan

}

\paper {
indent = 0
system-system-spacing = #'((minimum-distance . 20))
}

%%% END %%%

[image: text-spanner-to-barline.png]


IMPORTANT NOTE: the likely-to-be-overlooked key here is "\general-align #X
#RIGHT" included in the definition of the markup used *at the right end* of
the spanner. (In this example, repeat-spanner-stop-markup.)

Equally astonishingly, the example can be made to work at line breaks:

%%% TEXT SPANNER TO BARLINE (END-OF-SYSTEM) %%%

\version "2.19.82"

left-bracket-path = #'(
(moveto 0 -1)
(lineto 0 0)
(lineto 2 0)
)

right-bracket-path = #'(
(lineto 2 0)
(lineto 2 -1)
)

repeat-spanner-start-markup = \markup {
\path #0.25 #left-bracket-path
\general-align #Y #CENTER
\sans \upright " x3"
}

repeat-spanner-stop-markup = \markup {
\general-align #X #RIGHT
\line {
\general-align #Y #CENTER
\sans \upright " x3"
\path #0.25 #right-bracket-path
}
}

\new Staff
{

c'1
- \tweak bound-details.left.text \repeat-spanner-start-markup
- \tweak bound-details.left-broken.text ##f
- \tweak bound-details.right.padding 0
- \tweak bound-details.right.text \repeat-spanner-stop-markup
%%%- \tweak bound-details.right-broken.text ##f
- \tweak dash-period 1
- \tweak staff-padding 4
- \tweak to-barline ##t
\startTextSpan

c'1
\break

c'1
\stopTextSpan

c'1

}

\paper {
indent = 0
system-system-spacing = #'((minimum-distance . 20))
}

%%% END %%%

[image: text-spanner-to-barline-at-line-break.png]

These examples are hugely important if you are engraving extensively with
text spanners.

I had assumed that these were gaps in Lily's functionality; good to see I
was wrong.


Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Text spanner padding

2019-02-28 Thread Trevor Bača
On Fri, Feb 22, 2019 at 2:58 AM Andrew Bernard 
wrote:

> Solved. It's right-broken-padding set to false that does the trick.
>
>   \override TextSpanner.bound-details.right-broken.padding = ##f
>   \override TextSpanner.bound-details.right.padding = #11
>


As a note for posterity (whenever the time comes to finally equip text
spanners with their remaining missing features), it would be fantastic to
allow text spanners to start (and stop) nonmusical items, like bar lines.

Then magic numbers (like 11, in the example here) can be replaced by
something semantic that says "stop text span on bar line", which seems to
be what Andrew is actually engraving in this excerpt.

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Proportional spacing bug: chained \noBreaks + \newSpacingSection

2019-02-16 Thread Trevor Bača
Hi,

LilyPond incorrectly compresses consecutive, proportionally spaced measures
when the following conditions hold:

1. first measure in the sequence sets \proportionalNotationDuration; and
2. last measure in sequence is followed by \newSpacingSection; and
3. all measures in sequence carry \noBreak commands.

%%% BEGIN SPACING BUG %%%

\version "2.19.82"

\layout {
indent = #0
ragged-right = ##t
}

\new Staff
\with
{
\remove Time_signature_engraver
}
{

\time 2/8
\set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
c'4
^ \markup \with-color #red "First three measures aren't wide enough"
\noBreak

c'4
\noBreak

c'4
\noBreak

\newSpacingSection
c'4

c'4

c'4

c'4

c'4

}

%%% END %%%

Output looks like this:

[image: no-break-spacing-bug.png]

Correct output looks like this:

%%% BEGIN NON-BUG %%%

\version "2.19.82"

\layout {
indent = #0
ragged-right = ##t
}

\new Staff
\with
{
\remove Time_signature_engraver
}
{

\time 2/8
\set Score.proportionalNotationDuration = #(ly:make-moment 1 32)
c'4

c'4

c'4

\newSpacingSection
c'4

c'4

c'4

c'4

c'4

}

%%% END %%%

Visual:

[image: correct-output.png]

Note, again, that *all* measures spaced incorrectly must carry a \noBreak
command; removing *any one* of the three \noBreak commands in the bug
snippet causes the bug to disappear.


Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Text spanner shorten-pair

2019-02-13 Thread Trevor Bača
On Wed, Feb 13, 2019 at 8:33 AM Carl Sorensen  wrote:

>
>
>
>
> *From: *Trevor Bača 
> *Date: *Wednesday, February 13, 2019 at 6:43 AM
> *To: *Carl Sorensen 
> *Cc: *Andrew Bernard , lilypond-user
> Mailinglist 
> *Subject: *Re: Text spanner shorten-pair
>
>
>
>
>
>
>
> On Tue, Feb 12, 2019 at 6:12 PM Carl Sorensen  wrote:
>
>
>
>
>
> *From: *Trevor Bača 
> *Date: *Tuesday, February 12, 2019 at 3:09 PM
> *To: *Carl Sorensen 
> *Cc: *Andrew Bernard , lilypond-user
> Mailinglist 
> *Subject: *Re: Text spanner shorten-pair
>
>
>
> On Fri, Jan 25, 2019 at 11:38 AM Carl Sorensen  wrote:
>
>
>
> Question: why are there two ways to move around the ends of spanners
> (padding vs. shortening)? I can't think of a reason that's motivated by
> music notation.
>
>
>
> Padding is a minimum amount of blank space between two pieces of ink on
> the page.  When a pedal bracket is running into empty space, it doesn’t
> matter what the padding setting is, because there is no ink for it to move
> away from.  Padding says “don’t just avoid collisions; leave a minimum
> amount of empty space in addition to avoiding collisions”.  There’s no
> collision to avoid between a pedal bracket and its associated note column.
>
>
>
> Ok, wow, this is actually hugely interesting. Thank you so much for the
> specificity of the first part of the answer: "Padding is a minimum amount
> of blank space between two pieces of ink on the page." That is actually
> genuinely new information to me about a small-but-pervasive concept in
> LilyPond. Right up until just now, I had assumed that padding meant "a
> minimum amount of blank space between TWO THINGS on the page (whether the
> things are visible or not)"; we are hugely concerned with the (frequently
> invisible) start- and stop-anchors of things when engraving objects in
> score; and I had incorrectly assumed that padding at the edges of, say, a
> piano pedal bracket would pad between the invisible start-anchor of the
> bracket (which you described earlier as some flavor of column) and the
> visible start of the bracket itself. This is apparently not the case.
>
>
>
> I think that I was incorrect in saying “ink on the page”, although that is
> the intent of padding.  I should have said “between two bounding boxes”.
> One way to make spanners respect padding would be to increase the vertical
> extent of the bounding box (but that comes with a cost of preventing
> markups from sitting above or below the bounding box.
>
>
>
> This probably explains a small part of why I may have found the spacing
> behavior of piano pedal brackets flakey, to a certain extent, for well over
> a decade.
>
>
>
> So my surprise here (that the Lily concept of "padding" won't pad between
> the invisible anchors of things that I'm always mentally tracking when I
> work), makes me think that this surprisingly-restricted (at least to me ;)
> model of padding is possibly a "mis-model" in the system, or maybe a
> not-yet-realized possibility for a more complete generalization of what
> spanners are.
>
>
>
> I think that you have hit on an important fundamental that is not properly
> represented in LilyPond.  Spanners might be properly said to be anchored to
> note columns **regardless** of whether they have anything in them at a
> particular vertical location.  Maybe the spacing algorithms for spanners
> should assume a note-column with infinite vertical extents….
>

This once again comes an extremely clarifying point; thank you, again, for
taking the time specify the constraints on positioning behavior so
explicitly. It will take more time to think through what this means ...

Perhaps off topic, but I have a years-old question you might be able to
answer: *what is it that caused the implementation of text spanners*
(probably all spanners, actually) *to exclude the availability of
"length-1" spanners?*

By "length-1 spanner" I mean a text spanner that encompasses the rhythmic
duration of a single note. And example would be a spanner that encompasses
a single whole note and that says "pont. -," (probably with
downward-pointing right hook, as is conventional with ottava brackets); the
meaning would be "play the entire duration of this note ponticello [and
don't vary the color treatment at all]".

This comes up semi-regularly on the list; newcomers ask the question
relatively frequently. The conventional answer is that you define a text
spanner that connects two notes to each other (and style any right hook as
markup on the second note). But surely this is a mis-model [and again I
don't mean to critique harshly, rather helpfully for future thought]. Why?
Because 

Re: Can alternateTextSpannerEngraver now completely replace Text_spanner_engraver in a public release?

2019-02-13 Thread Trevor Bača
On Wed, Feb 13, 2019 at 8:35 AM David Kastrup  wrote:

> David Nalesnik  writes:
>
> > On Wed, Feb 13, 2019 at 7:49 AM Trevor Bača 
> wrote:
> >>
> >> Could somebody else possibly provide James a patch of David N.'s
> >> alternateTextSpannerEngraver?
> >>
> >> Trevor.
> >
> > The issue which would come up is that it is written in Scheme, rather
> > than C++.  This has implications for documentation.
>
> It does?  What kind of documentation cannot be achieved in Scheme that
> would be possible in C++?
>
> Here is some page from the Internals reference:
>
> File: lilypond-internals.info,  Node: Merge_rests_engraver,  Next:
> Metronome_mark_engraver,  Prev: Mensural_ligature_engraver,  Up: Engravers
> and Performers
>
> 2.2.71 Merge_rests_engraver
> ---
>
> Engraver to merge rests in multiple voices on the same staff.  This
> works by gathering all rests at a time step.  If they are all of the
> same length and there are at least two they are moved to the correct
> location as if there were one voice.
>
>Properties (read)
>
>  ‘suspendRestMerging’ (boolean)
>   When using the Merge_rest_engraver do not merge rests when
>   this is set to true.
>
>‘Merge_rests_engraver’ is not part of any context.
>
>
> This is an engraver written in Scheme.
>
> --
> David Kastrup
>

Thank you both (David and David) so much for engaging on this last step!
Truly wonderful; and if I can just chime in one last time while you are
thinking through the problem: I *think* (not 100% certain, but close to it)
that the ideal final implementation path would be not just to add
alternateTextSpannerEngraver as, say, Alternate_text_spanner_engraver, but
rather to *replace* the existing Text_spanner_engraver with (the
implementation of) alternateTextSpannerEngraver. I think this was clear in
my previous mail, but I just wanted to insert one last time here as the
question of Scheme-vs-C++ final resting spot gets considered.


Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Can alternateTextSpannerEngraver now completely replace Text_spanner_engraver in a public release?

2019-02-13 Thread Trevor Bača
On Wed, Feb 13, 2019 at 4:58 AM James Lowe  wrote:

> Hello Trevor,
>
> On Tue, 12 Feb 2019 16:45:35 -0600, Trevor Bača 
> wrote:
>
>
> >
> > Question: is it now possible to replace Text_spanner_engraver with David
> > N.'s extended implementation, in a coming public release of LilyPond?
> >
> >
> > Trevor.
> >
>
>
> If you have a patch based on current master I can at least test that for
> you.]
>
> James
>

Hi James,

I have no patch.

Could somebody else possibly provide James a patch of David N.'s
alternateTextSpannerEngraver?

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Text spanner shorten-pair

2019-02-13 Thread Trevor Bača
On Tue, Feb 12, 2019 at 6:12 PM Carl Sorensen  wrote:

>
>
>
>
> *From: *Trevor Bača 
> *Date: *Tuesday, February 12, 2019 at 3:09 PM
> *To: *Carl Sorensen 
> *Cc: *Andrew Bernard , lilypond-user
> Mailinglist 
> *Subject: *Re: Text spanner shorten-pair
>
>
>
> On Fri, Jan 25, 2019 at 11:38 AM Carl Sorensen  wrote:
>
>
>
> Question: why are there two ways to move around the ends of spanners
> (padding vs. shortening)? I can't think of a reason that's motivated by
> music notation.
>
>
>
> Padding is a minimum amount of blank space between two pieces of ink on
> the page.  When a pedal bracket is running into empty space, it doesn’t
> matter what the padding setting is, because there is no ink for it to move
> away from.  Padding says “don’t just avoid collisions; leave a minimum
> amount of empty space in addition to avoiding collisions”.  There’s no
> collision to avoid between a pedal bracket and its associated note column.
>

Ok, wow, this is actually hugely interesting. Thank you so much for the
specificity of the first part of the answer: "Padding is a minimum amount
of blank space between two pieces of ink on the page." That is actually
genuinely new information to me about a small-but-pervasive concept in
LilyPond. Right up until just now, I had assumed that padding meant "a
minimum amount of blank space between TWO THINGS on the page (whether the
things are visible or not)"; we are hugely concerned with the (frequently
invisible) start- and stop-anchors of things when engraving objects in
score; and I had incorrectly assumed that padding at the edges of, say, a
piano pedal bracket would pad between the invisible start-anchor of the
bracket (which you described earlier as some flavor of column) and the
visible start of the bracket itself. This is apparently not the case.

This probably explains a small part of why I may have found the spacing
behavior of piano pedal brackets flakey, to a certain extent, for well over
a decade.

So my surprise here (that the Lily concept of "padding" won't pad between
the invisible anchors of things that I'm always mentally tracking when I
work), makes me think that this surprisingly-restricted (at least to me ;)
model of padding is possibly a "mis-model" in the system, or maybe a
not-yet-realized possibility for a more complete generalization of what
spanners are.

Put another way, why *shouldn't* spanners pad between their anchors,
whether those anchors are visible or not? The thing that earlier caught my
eye in this thread was when you started to taxonomize spanners: "there's a
first group that would include glissandi and text spanners" and "then
there's a second group that would include hairpins and piano pedal
brackets," etc. And I immediately found that taxonomy surprising; were
there realworld (music-notational) criteria motivating the taxonomy? I
couldn't come up with any, and now understanding the restricted definition
of padding explains why: you knew how Lily is internally defining padding,
and so you were taxonomining according to that piece of system
implementation. This explains a lot, though I think that maybe the better
thing to do is to extend the spanner behaviors (padding, in this case) *to
all the spanners*, rather than cladding in iron a distinction (like
'stretchable' / 'paddable' with a stretchable-spanner-interface /
paddable-spanner-interface) that might best be argued doesn't exist just by
working with the symbols as music notation in the first place.

To be clear, I'm absolutely just thinking aloud here ;) This is *not* a
request for any changes anywhere in the system: and the decision of
something like "collapse shorten-padding into padding, or vice versa" is
going to require a lot more thought, for sure. I just wanted to document
what now seems like a fairly fundamental point of understanding in the
system that will need to dealt with at some point. Either the complete set
of spanner behaviors should increasing be generalized to all the spanners
(which is always what seems to be the starting point for threads like these
where someone asks "why isn't X property implemented on  Y spanner?") or
else we're going to need to document very strongly this important way in
which the sense of padding is restricted in Lily.








>
>
> Which maybe implies that there's a fourth solution:
>
>
>
> 4. Collapse shorten-pair into padding (or vice versa), and preserve one
> (and only one) such property for *ALL* spanners.
>
>
>
> It seems to me that if you are to collapse into a single property, it
> would need to be shorten-pair, because we already have padding and it
> doesn’t do what you want if there’s no ink to avoid.   But I haven’t looked
> at all into how the code would need to change with the spann

Re: Text Spanner ID Layer Spans

2019-02-12 Thread Trevor Bača
On Tue, Feb 12, 2019 at 5:47 PM Reggie  wrote:

> David Kastrup wrote
> > Reggie 
>
> > reegistoop@
>
> >  writes:
> >
> >> Using a David's function to allow layering spanners,
> >
> > I like "a David's function".  It's like describing a caste of priests.
> >
> > --
> > David Kastrup
> >
> > ___
> > lilypond-user mailing list
>
> > lilypond-user@
>
> > https://lists.gnu.org/mailman/listinfo/lilypond-user
>
> Sorry David :))
> Do you know the solution to my question?
>

Hi Reggie,

To layer text spanners with David N.'s new functionality, you must \tweak
spanner properties rather than overriding them.

%%% BEGIN %%%

\version "2.19.82"
\include "text-spanner-id.ly"
{
b1
- \tweak bound-details.left.text \markup { \upright "rit." }
\startTextSpanOne
- \tweak bound-details.left.text \markup { \upright "other span" }
\startTextSpanTwo
c
e,
\stopTextSpanOne
c
\stopTextSpanTwo
}

%%% END %%%


[image: layered-start-stop.png]


Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Can alternateTextSpannerEngraver now completely replace Text_spanner_engraver in a public release?

2019-02-12 Thread Trevor Bača
Hi,

For many years, one of the clearest functional gaps in LilyPond was the
limitation that voices allow only a single text spanner at a time. Very
many scores of recent decades notate two musical parameters changing at the
same time: a passage of string music moving ponticello -> tasto while at
the same time decreasing from vibrato molto -> non vibrato, for example.
Arrowed lines are the nearly universal way of notating such things,
available in LilyPond as text spanners; but to allow for what now counts as
newly emerged common practice, an arbitrary number of text spanners need to
be allowed per voice.

Lily users have asked for the feature for a long time. Here's an example
from 2009:

http://lists.gnu.org/archive/html/lilypond-user/2009-11/msg00031.html

By 2015, the idea of spanner-id had been added to LilyPond to allow for
this type of functionality. But despite the name of the property ("will
spanner-id allow for ALL types of spanner to overlap?"), integration first
centered on slurs and phrasing slurs. Here's a thread from 2015 with David
K. working to allow an input syntax for those first two types of spanner:

http://lists.gnu.org/archive/html/lilypond-user/2015-10/msg00157.html

At that same time in 2015, however, David N. had in fact rewritten Lily's
Text_spanner_engraver to integrate spanner-id, and hence supply the missing
functionality. David N.'s attachment (given later in the same thread listed
above) gives the necessary code:

http://lists.gnu.org/archive/html/lilypond-user/2015-10/msg00545.html

Last year, in May 2018, I finally integrated David N.'s
alternateTextSpannerEngraver into my own work, using it to replace Lily's
default Text_spanner_engraver completely. The results have been extremely
good: *David N.'s alternateTextSpannerEngraver performs exactly the same as
the current Text_spanner_engraver but with the additional flexibility of
being able to define (and use) arbitrarily many types of text spanner in a
single voice.*

So, it looks like David N.'s alternateTextSpannerEngraver supplies a piece
of functionality that's been missing in LilyPond since inception, which is
fantastic.

Question: is it now possible to replace Text_spanner_engraver with David
N.'s extended implementation, in a coming public release of LilyPond?


Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Text spanner shorten-pair

2019-02-12 Thread Trevor Bača
On Fri, Jan 25, 2019 at 11:38 AM Carl Sorensen  wrote:

>
>
>
>
> *From: *Andrew Bernard 
> *Date: *Friday, January 25, 2019 at 6:21 AM
> *To: *lilypond-user Mailinglist 
> *Subject: *Re: Text spanner shorten-pair
>
>
>
> Hi Aaron,
>
>
>
> I know. This then implies the NR is in error. Do we report a bug? [For the
> reason that being thrown off the scent I spent hours looking all in the
> interfaces to no avail.]
>
>
>
> I think this is absolutely a bug.  It should not say shorten-pair applies
> to TextSpanners when it does not.
>
>
>
> There are three possible solutions I can see:
>
>
>
>1. Fix the description of shorten-pair to indicate which spanners it
>applies to
>2. Create a new interface e.g. shortenable-spanner-interface that
>contains shorten-pair, and then give that interface to all the grobs that
>accept shorten-pair (see dynamic-line-spanner-interface for a similar
>single-property interface).
>
>
>
> The padding works. Seems inconsistent to me. Why do we leave TextSpanners
> out of the group?
>
>1. Add the shorten-pair property to the spanner-interface (or maybe
>the text-spanner interface) and make sure it works with all of the objects
>having that interface.
>
>
>
> My preference right now would probably be #2.
>
>
>
> I have not made an exhaustive study of this, but my initial thought is
> that there are two kinds of spanners.
>
>
>
> Spanner type A goes from one grob to another (e.g. TextSpanner,
> glissando).  These spanners can be shortened by adding padding, because
> they will need to move away from the grobs that they connect when the
> padding is increased.
>
>
>
> Spanner type B goes from one column to another (e.g. hairpin, pedal
> bracket).  These spanners don’t have grobs at their ends, so padding will
> not be effective at shortening them.  Hence the need for another method, as
> met by the shorten-pair property.
>
>
>
> One could add the shorten-pair property to the type A spanners, but it’s
> not necessary to do so to shorten them.
>
>
>
> I don’t know what I prefer for the long-term solution.  It would take more
> study and consideration of the pros and cons of each method.
>

Hi Carl, hi Andrew,

Also agreed that this is very much a bug; I've watched beginners get hit by
it many times.

Question: why are there two ways to move around the ends of spanners
(padding vs. shortening)? I can't think of a reason that's motivated by
music notation. Which maybe implies that there's a fourth solution:

4. Collapse shorten-pair into padding (or vice versa), and preserve one
(and only one) such property for *ALL* spanners.


Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Clef moves notes why??

2019-02-12 Thread Trevor Bača
Hi,

I like to use an extra-offset clef *with false X-extent* to move clefs into
whitespace in my cutaway scores. This pair of overrides ...

\once \override Staff.Clef.X-extent = ##f
\once \override Staff.Clef.extra-offset = #'(-2.8 . 0)

... seems to do the trick.

The example from the top of the thread then rewrites this way:

%%% BEGIN %%%

\version "2.19.82"
<<
\new Staff {
\repeat unfold 100 { c'4 }
}
\new Staff {
\repeat unfold 20 { g'2 }
g'1
\stopStaff
s1*4
\startStaff
\once \override Staff.Clef.X-extent = ##f
\once \override Staff.Clef.extra-offset = #'(-2.8 . 0)
\clef treble
\repeat unfold 20 { e'2 }
}
>>

%%% END %%%

[image: left-offset-clef.png]


Usage notes:

1. As always, there's the question of Grob.X-extent = ##f versus
Grob.X-extent = #'(0 . 0). I've never been able to understand,
systematically, when to use one and when to use the other. Sometimes the
overrides are interchangeable. But in this case the overrides differ
importantly: make sure to use Staff.Clef.X-extent = ##f (as shown). If you
use Staff.Clef.X-extent = #'(0 . 0) then Lily will mysteriously draw a
little extra fringe of stafflines into the white cutaway part of your score.

2. The magic value of -2.8 in the extra-offset is eyeballed; tweak manually
to control the whitespace between the clef and following barline. Change
the number when using a C of F clef.


Trevor.


On Thu, Jan 24, 2019 at 5:08 PM Karlin High  wrote:

> On 1/24/2019 4:06 PM, Reggie wrote:
> > Need to? But what If I wish to have the clef on the right side of the
> > barline but have the notes on the other staff be lined up as if I DID put
> > clef to the left of the barline? Say I want, is this possible?
>
> The question isn't whether this is possible. LilyPond is flexible enough
> that it can be used as a graphical drawing app. Kieren MacMillan and
> Pierre Perol-Schneider have posted examples last month.
>
> Rather, the question is: How much effort is it worth expending to get
> the effect you want? So far there have been LilyPond experts who are
> willing to help, like Valentin Villenave just now. But their capacity
> for doing this is not unlimited.
> --
> Karlin High
> Missouri, USA
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Use of \vspace and \hspace

2019-02-12 Thread Trevor Bača
, Valentin Villenave 
> wrote:
>
>> On 1/20/19, Aaron Hill  wrote:
>> > \markup may additionally be used for lyrics, in chord names, and as
>> > dynamics.  In fact, it is possible to use \markup to customize the
>> > appearance of virtually any object:
>>
>> Well put! I’ve added a few additional objects and turned it into a
>> snippet:
>> http://lsr.di.unimi.it/LSR/Item?id=1084
>>
>> This could be a nice addition to the NR itself (not sure exactly
>> where, but I’ll have to look into it).
>>
>> V.
>>
>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Overrun of right margin

2019-02-12 Thread Trevor Bača
Hi Andrew, hi Aaron,

Yep (also for future archive searchers) I can confirm that the right margin
overrun results from the Lily default that glissando aren't breakable, as
Aaron identifies.

It should be enough to include just ...

   \override Score.Glissando.breakable = ##t

... to prevent this one particular instance of right margin overrun.

There are, of course, other conditions that can also cause right margin
overrun. Jean Bréfort pointed to barline-crossing durations earlier in this
thread, which can also cause right margin overrun. If you *want*
barline-crossing durations (complexism or music before 1600) then you need
to remove Lily's Forbid_line_break_engraver from every voice context in
which barline-crossing durations occur. Something like ...

\context {
\Voice
\remove Forbid_line_break_engraver
}

... does the trick for all voices in your score.

Andrew, if you're engraving a lot of complexist music, I suggest removing
the Forbid_line_break_engraver as a matter of course.


Trevor.

On Sat, Jan 19, 2019 at 7:13 PM Aaron Hill  wrote:

> On 2019-01-19 4:56 pm, Andrew Bernard wrote:
> > Problem solved after much deconstruction.
> >
> > I am setting a string quartet. In this section almost every note has a
> > glissando, and some become to small to see. So I set this:
> >
> > \override Glissando #'minimum-length = #5
> > \override Glissando #'springs-and-rods =
> > #ly:spanner::set-spacing-rods
> >
> > This works fine to give the minimum length of the glissandi. It turns
> > out
> > that this was forcing the score over the edge of the paper, not a
> > rhythmic
> > error. Adjusting that solves the problem. It's only when there are a
> > large
> > number of glissandi in the line that it occurs. I report this here in
> > case
> > it may help future archive searchers.
>
> This is probably because glissandi are unbreakable by default.  If you
> have one overlapping a bar line, then LilyPond cannot break there.
>
> Consider the following:
>
> 
> \version "2.19.82"
> {
>\override Glissando.minimum-length = #5
>\override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
>\override Glissando.breakable = ##t
>\repeat unfold 32 { f'8\glissando e''8\glissando } f'1
> }
> 
>
> If you omit setting 'breakable to true, you'll see the result extends
> all on one line.
>
> -- Aaron Hill
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: using Lilypond as a graphical drawing app

2018-12-12 Thread Trevor Bača
Beautiful, Kieren.

Trevor.

On Fri, Dec 7, 2018 at 2:23 PM Henning Hraban Ramm 
wrote:

> Am 2018-12-07 um 20:57 schrieb Kieren MacMillan <
> kieren_macmil...@sympatico.ca>:
>
> > As a further example of what Lilypond is capable of, and how I’m pushing
> it — in this case, for jobs engraving other people’s music and music theory
> articles — consider the following Riemannian Tonnetz graph [excerpt] I just
> finished engraving:
> >
> > 
> >
> > Lilypond is so amazing.  =)
>
> And you, apparently. Just wow.
>
>
> Greetlings, Hraban
> ---
> fiëé visuëlle
> Henning Hraban Ramm
> https://www.fiee.net
>
>
>
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Schenker graph example

2018-12-07 Thread Trevor Bača
Hi Kieren,

Wow, what astoundingly professional output; it's a joy to look at and the
voice-leading relationships are all *immediately* clear ... the whitespace
is, actually, perfect.

Thanks so much sending across; bit of a triumph.

Trevor.


On Mon, Dec 3, 2018 at 11:44 AM Kieren MacMillan <
kieren_macmil...@sympatico.ca> wrote:

> Hello all,
>
> Just thought you might like to see the kind of thing I’m doing with Lily
> right now:
>
>
> Thanks to everyone who makes it possible!
>
> Cheers,
> Kieren.
> 
>
> Kieren MacMillan, composer
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Polymeter Question

2018-12-07 Thread Trevor Bača
Hi Zvony,

Have you tried ...

\layout { \context { \Voice \remove Forbid_line_break_engraver } }

... yet?

Removing the Forbid_line_break_engraver allows LilyPond to break a system
of music *in the middle of ongoing note's duration* (which have a way of
arising anytime the polymetry goes on for a bit).

Trevor.


On Mon, Nov 19, 2018 at 4:54 PM nagymusic  wrote:

> I'm working on a flute and marimba duet that features a polymetric passage.
> Would someone be able to suggest how to fix the typeset music to respect
> automatic line breaks? Currently, it just runs off the page...  (see
> attached .ly file)? I browsed the forum and gather that there could be an
> issue with this but wasn't able to find a solution. Thank you for your
> help!
> polymeter_test.ly
> <http://lilypond.1069038.n5.nabble.com/file/t5327/polymeter_test.ly>
>
>
>
> --
> Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Does LilyPond on MacOS 10.14 (Mojave)?

2018-12-07 Thread Trevor Bača
Hi Gail,

I've been running LilyPond 2.19.82 very intensively under Mojave for
several weeks; everything works perfectly.

Trevor.

On Sun, Nov 11, 2018 at 12:26 PM Jean-Julien Fleck <
jeanjulien.fl...@gmail.com> wrote:

> Hello Gail,
> Le dim. 11 nov. 2018 à 18:41, Gail Rein  a écrit :
>
>> I am thinking it is time to move from MacOS High Sierra to Mojave. System
>> information for LilyPond 2.18.2-1 says it is not a 64-bit application,
>> which I understand can be a problem for Mojave.
>>
>> If you have experience using LilyPond 2.18.2-1 (current stable version
>> for MacOS) on MacOS 10.14 Mojave, I would appreciate your sharing if it was
>> transparent or not.
>>
>
> I just installed the MacOSX 2.18.2-1 version from lilypond.org on Mojave
> and it seems to be working just fine (at least on a trivial example).
> I also tried Frescobaldi and it works just fine as well.
>
> Cheers,
>
> --
> JJ Fleck
> Physique et Informatique
> PCSI1 Lycée Kléber
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Baseline align in TextSpanner

2018-10-17 Thread Trevor Bača
Hi Davide,

Avoid the the LilyPond \tempo command entirely: then use markup (in text
spanner bound-details) for everything. Alignment (baseline and otherwise)
can then be controlled with text spanner bound-details.

If you need an empty region of of whitespace between two elements in your
(possibly enchained) text spanners, play with the dash fraction / dash
period of the text spanner to make the dashes disappear, leaving only your
markup visible.

Trevor.



On Sun, Oct 14, 2018 at 2:17 PM Davide Liessi 
wrote:

> Dear Kieren,
>
> Il giorno ven 5 ott 2018 alle ore 15:11 Kieren MacMillan
>  ha scritto:
> > This works for me:
> [...]
>
> your solution works well to keep all TextSpanners baseline-aligned,
> but it still does not solve my real problem, which indeed was not
> apparent in my first message.
> I'm trying to make TextSpanners and tempo markings look the same,
> including being aligned at the same baseline.
> The reason is to follow the recommendations of Gould for tempo
> alteration markings (example at page 184).
>
> A slightly more realistic example follows: I would like to align
> \tempo markings and TextSpanners to the same baseline.
> As you can see using your trick on both does achieve the desired result.
> I renamed the \test function to a more specific \baseline-align.
> I'm cc-ing also Harm / Thomas Morley because I'm using his code, so he
> may have some insights or suggestions.
>
> Thanks for your help so far.
> Best wishes!
> Davide
>
> %%% new example
> \version "2.19.81"
>
> #(define (lists-map function ls)
>"Apply @var{function} to @var{ls} and all of it sublists.
> First it recurses over the children, then the function is applied to
> @var{ls}."
>(if (list? ls)
>(set! ls (map (lambda (y) (lists-map function y)) ls))
>ls)
>(function ls))
>
> #(define baseline-align-proc
>(lambda (e)
>  (if (and (list? e) (member 'glyph-string e))
>  (begin
>   (for-each
>(lambda (x)
>  (begin
>   (set-car! (cadr x) 0)
>   x))
>(cadr (last e)))
>   e)
>  e)))
>
> #(define-markup-command (baseline-align layout props glyph-name)
>(markup?)
>(let* ((stil (interpret-markup layout props glyph-name))
>   (new-stile-expr
>(lists-map
> baseline-align-proc
> (ly:stencil-expr stil
>
>  (ly:make-stencil
>   new-stile-expr
>   (ly:stencil-extent stil X)
>   ;(cons 0 (cdr (ly:stencil-extent stil Y)))
>   (ly:stencil-extent stil Y)
>   )))
>
> startTempoSpan =
> #(define-event-function
>   (left-text)
>   (markup?)
>   #{
> \tweak bound-details.left.text \markup {
>   \combine \transparent "Tj"
>   #left-text
> }
> \tweak font-shape #'upright
> \tweak font-size 1
> \tweak font-series #'bold
> \startTextSpan
>   #})
> stopTempoSpan = \stopTextSpan
>
> {
>   R1 |
>   \tempo \markup { \baseline-align \large "a" }
>   R1 |
>   \tempo \markup { \baseline-align \large "p" }
>   R1 |
>   <>\startTempoSpan "a"
>   R1
>   <>\stopTempoSpan |
>   R1 |
>   <>\startTempoSpan "p"
>   R1
>   <>\stopTempoSpan |
>   R1
>   \tempo \markup { \large \combine \transparent "Tj" "a" }
>   R1 |
>   \tempo \markup { \large \combine \transparent "Tj" "p" }
>   R1 |
> }
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Define new articulation with markup or path (instead of glyph)

2018-10-17 Thread Trevor Bača
gt; > guile> (equal? b c)
> > #t
> > guile> (eq? a (cdr b))
> > #t
> > guile> (eq? (cdr b) (cdr c))
> > #t
> > guile> (set! a (assoc-set! a 'two 2.2))
> > guile> a
> > ((one . 1) (two . 2.2))
> > guile> b
> > ((three . 3) (one . 1) (two . 2.2))
> > guile> c
> > ((three . 3) (one . 1) (two . 2.2))
> >
> > While "b" and "c" are unique as far as the initial node in their
> > respective lists (because acons returns a new list), they share the
> > remainder with the same nodes within the original list.  So,
> > modification to the list that "a" references will propagate to "b" and
> > "c".
> >
> > Upon reflection, this all makes sense.  So, one should probably be
> > explicit about copying and use list-copy (shallow) or copy-tree
> > (deep), as needed.
> >
> > -- Aaron Hill
> >
> > ___
> > lilypond-user mailing list
> > lilypond-user@gnu.org
> > https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: hide entire tuplet entity

2018-08-27 Thread Trevor Bača
Scaling durations is a better way to go: invisible tuplets always somehow
manage to impact the spacing of other objects in unpredictable ways. And
don't be fooled by trying to X-extent, Y-extent and friends to false or
zero; there's always some small thing somewhere that will throw off
spacing, and it can potentially take hours to notice the fact and then
correct it.

Go with duration multipliers (like in Brett's response) or the
\scaleDurations function.

Trevor.


On Sun, Aug 26, 2018 at 9:03 PM Brett Duncan  wrote:

> One option would be to scale the durations instead of using tuplets,
>
> e.g. you could change
>
> \hideNotes b2. b4\sustainOn b2 \tuplet 3/2{ b8 b4\sustainOff}
> b4\sustainOn \tuplet 3/2{ b8 b8\sustainOff b8 }
>
> to
>
>\hideNotes b2. b4\sustainOn b2  b8*2/3 b4*2/3\sustainOff b4\sustainOn
> b4*2/3\sustainOff b8*2/3
>
>
> Brett
>
> On 27/8/18 9:04 am, Ryan Michael wrote:
>
> Hello. I am currently working on a piano piece and I want to have sustain
> spans below the bass clef while the left hand is resting for whole
> measures. I want to the sustain to line up with tuplets on the right hand
> in the treble clef. My current strategy is to fake the same phrase in the
> bass clef but it leaves me with tuplet artifacts when I am hiding the notes
> in the bass clef à la :
>
>
> %
> %% bass section mirroring right hand for sustain engraving purposes only
> \version "2.18.2"
> {
> <<
> \new Voice { \hideNotes b4 b8 b8\sustainOn b4 b8. b16\sustainOff}
> \new Voice { r1}
> >>
>
> <<
> \new Voice { \hideNotes b2. b4\sustainOn b2  \tuplet 3/2{ b8
> b4\sustainOff} b4\sustainOn \tuplet 3/2{ b8 b8\sustainOff b8 } b2. }
> \new Voice { r1 r1 r1}
> >>
> }
> %
>
> --
> ॐ नमः शिवाय
>
>
> ___
> lilypond-user mailing 
> listlilypond-user@gnu.orghttps://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: tuplet error

2018-08-25 Thread Trevor Bača
Hi Craig,

You can tupletize lone notes with no warnings:

### BEGIN ###

\new Staff
{

\times 2/3
{
g'2.:8
}

\times 2/3
{
a'2.:8
}

\times 2/3
{
bf'2.:8
}

\times 2/3
{
bf'2.:8
}

}

### END ###

[image: craig-tuplets.png]

Changing "\tuplet 2/3 2" to "\tuplet 2/3 4" (David's solution) is the right
one; but knowing about the (explicit) time scaling available with \times is
helpful to have as a backup (and allows you to think and notate each sixth
note as a sixth note).

Trevor.



On Fri, Aug 24, 2018 at 7:26 AM Craig Dabelstein 
wrote:

> Thanks Malte, that was stupid of me. Improved MWE below.
>
> Andrew, this is just a shortcut in notation, developed when scores had to
> be handwritten. Writing it this way (as in bars 1 and 2) is a lot easier
> than the long version (bars 3 and 4). It doesn't seem to be used much in
> modern scores but was very prevalent in the the 1800s and earlier. When you
> see it in context you'd have no problem interpreting it.
>
> All the best,
>
> Craig
>
>
> \version "2.19.82"
> \language "english"
>
> notes = \relative c'' {
>   %1
>   \tuplet 3/2 2 { g2.:8 a2.:8 } |
>
>   %2
>   \tuplet 3/2 2 { bf2.:8 bf2.:8 } |
>
>   %3
>   \tuplet 3/2 4 { g8 g g g g g a a a a a a } |
>
>   %4
>   \tuplet 3/2 4 { bf8 bf bf bf bf bf bf bf bf bf bf bf } |
> }
>
> \score {
>   \new Staff
>   \notes
>   \layout { }
> }
>
>
> On Fri, 24 Aug 2018 at 20:58, Andrew Bernard 
> wrote:
>
>> Hi Aaron and Craig, I understand that already. But why the obscure
>> notation is what I was asking. Surely it can be written clearly or more
>> explicitly? And if you feel it needed explaining to me, it's going to need
>> explaining to other players, isn't it Craig?
>>
>> Andrew
>>
>>
>> On Fri, 24 Aug 2018 at 17:39, Aaron Hill 
>> wrote:
>>
>>>
>>>
>>> Not OP, but I believe that notation means to play a sequence of single
>>> note tremolos, with the single slash indicating eighth-note
>>> subdivisions.  So each dotted half is played as six eighth notes,
>>> following the specified tuplet timing.  That is, think of `g2.:8` as `g8
>>> 8 8 8 8 8`.
>>>
>>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>
>
>
> --
> *Craig Dabelstein*
> Maxime's Music
> craig.dabelst...@gmail.com
> *http://maximesmusic.com <http://maximesmusic.com>*
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: align dynamic with text

2018-08-25 Thread Trevor Bača
Hey Ben,

When you're using markup as dynamics, don't you find that you're unable to
include those constructs in hairpins?

I went through a period where I was using straight-up text for dynamics
like you're mentioning. But the hairpin limitation moved me towards
make-dynamic-script. It's great. The other big benefit being that
indications that are made with make-dynamic-script align (vertically) with
all of Lily's other native dynamics.

I've wound up with house set of dynamic indications, too, like Andrew was
mentioning:

https://github.com/trevorbaca/baca/blob/master/lilypond/baca-dynamics.ily

Have at them if you go the make-dynamic-script way.

Trevor.

On Sun, Aug 19, 2018 at 9:00 PM Ben  wrote:

> On 8/19/2018 9:17 PM, Andrew Bernard wrote:
>
> Hi Mark,
>
> This may be what you are thinking of. This way makes a proper dynamic, not
> just text markup.
>
> Andrew
>
> 
> \version "2.19.82"
>
> fstrettoText = \markup {
>   \center-align \line {
> \hspace #0.1 f \normal-text \italic stretto
>   }
> }
> fstretto = #(make-dynamic-script fstrettoText)
>
>
> {
>   c'4_\fstretto
> }
>
>
> Great piece of code Andrew. Thanks for that.
>
> The only reason I tend to use the alternative 'markup' approach is if I
> want to (need to) always have the entire expressive text centered as one
> unit with the *dynamic* under the notehead vs. half on each side.
>
> Much easier I find when I need to do that.
>
> (img)
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: \textLengthOn in polyphony and over MultiMeasureRests

2018-07-29 Thread Trevor Bača
Hi Urs, hi Torsten,

I've followed both parts of this thread with interest, especially since I
only recently discovered the magic empty chord <> construct.

Urs, Torsten's results for the multimeasure rest example are reproducible
like this:

%%% BEGIN %%%

{
\version "2.19.82"
\textLengthOn
\override TextScript.self-alignment-X = #CENTER
\override TextScript.staff-padding = 3
c''1
<> ^ \markup "Invisible empty chord expands measure with
MultiMeasureRest."
R1
c''
}

%%% END %%%

Output:


The relevant use of <> appears in the docs in ...

http://lilypond.org/doc/v2.19/Documentation/notation/writing-rests

... under the "Multi-measure rest markup" subhead at the very bottom of the
page. (Clicking
http://lilypond.org/doc/v2.19/Documentation/1c/lily-56e2a6af.ly shows the
LilyPond input.)


Torsten, how are you achieving the text centered above the pair of half
notes in the original example (ie, in the measure top-headed with
"Minima")? Try as I might, I can't get it!


Trevor.





On Wed, Jul 25, 2018 at 3:48 PM, Torsten Hämmerle 
wrote:

> Urs Liska-3 wrote
> > (markup in voice one will push the music in voice two)
>
> Yes, but that's only natural:
>
> (0) \textLengthOn affects any neighbouring objects and will even push away
> the surrounding notes etc.
>
> (1) TextScript.self-alignment-X ist set to #CENTER and in combination with
> \textLengthOn, the outer limits of the measure will be pushed apart.
>
> (2) If there's only one single note, this note will be forced into the
> horizontal centre of the measure (which is what we wanted in the example,
> but that's not "natural", as the first note in a measure should start at
> the
> beginning of the measure.
>
> (3) The additional second voice prevents the single note of voice one from
> being centred, because now the two voices have to be rhythmically aligned:
> that's why the 2nd note of voice 2 sticks out to the right.
>
> So as to your question a), it's not a problem of calculating \textLength,
> it's just a problem of rhythmic alignment of notes.
> You don't even need a 2nd voice for that effect,
>   c''4 ^\markup "Other voice interferes." c''2.
> would just behave in the same way.
>
> If you need more than one (centred) note, you can use spacer rests (s)
> an/or
> scaled durations (if needed) and (!) attach the markup text to <>, that way
> it won't affect the neighbouring notes other than by widening the measure.
> Don't ask me why, but it comes in handy.
>
>
>
>
> Urs Liska-3 wrote
> > and it doesn't
> > work over MultiMeasureRests:
>
> In these cases, you can attach it to <>. This even works with compressed
> MultiMeasureRests and it's an ordinary TextScript then.
>
> The longa rest in the example below has been created by R1*4 in combination
> with \compressFullBarRests and \omit MultiMeasureRestNumber. The markup
> text
> has been attached to <>.
> I haven't included the source code because it's a mess and I used a Fraktur
> font just for fun.
>
> <http://lilypond.1069038.n5.nabble.com/file/t3887/textlength-pausen.png>
>
> I think this pretty much mimicks the original sample.
>
> All the best,
> Torsten
>
>
>
>
> --
> Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>



-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: layout of markup text

2018-07-29 Thread Trevor Bača
Hi David,

On Mon, Jul 23, 2018 at 6:49 AM, David Nalesnik 
wrote:

> Hi Peter,
>
> You might find this helpful:
> https://github.com/davidnalesnik/lilypond-text-spanner-inner-texts


Another great addition you've added to my LilyPond library.

Did you know that GitHub's Markdown allows images? Even in the (very
user-visible) README.md landing page for a repository? Your repo made me do
a bit of Googling this morning, and I applied the results to one of my own
score repositories; it works great:

https://github.com/trevorbaca/akasha

The relevant bit of Markdown is just ...

   ![Alt text](url)

... which can be as simple as ...

   ![Float text](my-image.png)

... when using a local resource (my-image.png) housed in the same directory
as the README.md file.

(There's a surprisingly readable 3-minute guide on GitHub's Markdown
authored by GitHub here:
https://guides.github.com/features/mastering-markdown/.)

All of which is to say that you could render
https://github.com/davidnalesnik/lilypond-text-spanner-inner-texts/blob/master/example.ly
as
notation, do a quick screencapture (to PNG), put the PNG in the same
directory as the README.md, and add just a single line to the README.md for
a perfect notational illustration of the package's functionality.

Thanks again for all your work extending Lily in some very sensible and
useful ways; I've thoroughly integrated your text spanner ID extensions,
and it's really changed what I'm able easily to communicate with text
spanners in my own scores.

Trevor.




-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Intended use of the empty chord <> construct

2018-05-01 Thread Trevor Bača
; appears to afford the ability
to say "here's a chunk of music of two As with a trill spanner covering
both" by appealing to the notional understanding I introduced at the top of
this mail: the empty chord functions as an 'anchor-yet-to-come' to which
the trill's endpoint can attach **even without knowing what that upcoming
note / rest / chord is going to be**.

I hope somebody else finds this (admitted corner case of a use) as special
as I do. And, hopefully, I'm not misusing the purpose of the <> construct
in setting up externalized variables in this way.

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Do we have a "damp" symbol?

2018-04-25 Thread Trevor Bača
Hi Pierre (and Karim, and David),

Thanks very much: these are great.

Exactly what I was looking for!

Trevor.

On Wed, Apr 25, 2018 at 12:56 PM, Karim Haddad <karim.had...@ircam.fr>
wrote:

> This is great !
> Thanx again Pierre for your tips and valuable help !
>
> best
> K
>
> On Wed, Apr 25, 2018 at 07:21:37PM +0200, Pierre Perol-Schneider wrote:
> > Yes Karim, or even :
> >
> > %
> > \version "2.19.81"
> >
> > \markup
> > %% do not use 'fontsize
> > \scale #'(5 . 5)
> > {
> >   \combine \bold "O"
> >   \path #0.2
> >   #'((moveto -.4 .8)(lineto 2.2 .8)
> >  (closepath)
> >  (moveto .9 -.5)(lineto .9 2.1))
> > }
> > 
> >
> > However, AFAIK, harpists also use the pedal sign (\musicglyph #"pedal.*")
> >
> > HTH,
> > Cheers,
> > Pierre
> >
> >
> >
> > 2018-04-25 18:56 GMT+02:00 Karim Haddad <karim.had...@ircam.fr>:
> >
> > > For what it's worth i have a solution that i used, because like you i
> > > don't want to use the coda sign. So i used a markup :
> > >
> > > damp = \markup{ \center-column {
> > >   {\override #'(thickness . 1.8)
> > > \combine \draw-line #'(-1.5 . 0)
> > > \combine \draw-line #'(0 . -1.5)
> > > \combine \draw-line #'(0 . 1.5)
> > > \combine \draw-line #'(1.5 . 0)
> > > \draw-circle #0.8 #0.2 ##f
> > >  }}}
> > >
> > > I don't know if it the best solution but i got this  from the kurt
> stone
> > > notation book, and it looks rather the same.
> > >
> > > Best
> > > Karim
> > >
> > > >Hi David (and Trevor),
> > >
> > > >> Where is the difference to a coda sign?
> > >
> > > >I believe the preferred symbol is different from a coda sign (more
> > > circular,
> > > >and less calligraphic), but in recent years [with computer engraving]
> > > people
> > > >have simply substituted the coda sign.
> > >
> > > >Hope that helps,
> > > >Kieren.
> > >
> > >
> > > --
> > > Karim Haddad
> > >
> > > email   :
> > > webpage : http://karim.haddad.free.fr
> > >
> > > ___
> > > lilypond-user mailing list
> > > lilypond-user@gnu.org
> > > https://lists.gnu.org/mailman/listinfo/lilypond-user
> > >
>
> --
> Karim Haddad
>
> email   : karim.had...@ircam.fr
> webpage : http://karim.haddad.free.fr
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>



-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Do we have a "damp" symbol?

2018-04-25 Thread Trevor Bača
Hi,

Is there a "damp string(s)" symbol somewhere in Feta (or elsewhere), as
used in harp writing:




(Image from
http://sites.siba.fi/web/harpnotation/manual/damping-techniques/damp-all-strings
.)


Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Off topic - SITT 20 Studies in Double Stops

2018-04-24 Thread Trevor Bača
On Tue, Apr 24, 2018 at 2:06 AM, Gianmaria Lari <gianmarial...@gmail.com>
wrote:

> My question is off topic. I hope it will not be a problem.
>
> The following is one excerpt from the Sitt book, 20 studies in Double
> Stops.
>
>
> Why in the first three measures the G, D and A are written as g4~4~4~4  d
> 4~4~4~4  a4~4~4~4 instead of g1 d1 a1? Any idea?
>

To reinforce the connection between interval width and spread of fingers in
the left hand; each measure isn't so much a scalar figure (with pedal) but
rather a slurred sequence of double stops of increasing width.




-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: How to allow overlapping / overprinting markup?

2018-01-09 Thread Trevor Bača
Hey Kieren,

Great idea, actually: I was looking for an override I could stick in an
externalized stylesheet (the markup in question are in a dedicated
AnnotationContext) but I can just as easily iterate the (Abjad-initialized)
markup and null-out the dimensions.

Thanks (as per usual)!

Trevor.

On Tue, Jan 9, 2018 at 11:39 AM, Kieren MacMillan <
kieren_macmil...@sympatico.ca> wrote:

> Hey Trevor,
>
> > What's the right way to allow two pieces of markup to overlap on top of
> each other?
>
> What about
>
> \new Staff {
> \override TextScript.staff-padding = 4
> \override TextScript.Y-extent = ##f
> c'4
> ^
> \markup \with-dimensions-from \null {
> Allegro
> }
> d'4
> ^
> \markup \with-dimensions-from \null {
> non troppo
> }
> e'4
> f'4
> }
>
> ??
>
> Hope that helps!
> Kieren.
> 
>
> Kieren MacMillan, composer
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
>
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


How to allow overlapping / overprinting markup?

2018-01-09 Thread Trevor Bača
Hi,

What's the right way to allow two pieces of markup to overlap on top of
each other?


### BEGIN ###

\version "2.19.80"



\new Staff {

\override TextScript.staff-padding = 4

\override TextScript.Y-extent = ##f

c'4

^

\markup {

Allegro

}

d'4

^

\markup {

non troppo

}

e'4

f'4

}


### END ###


I would imagine that setting y-extent to zero would do the trick. But in
the example above, LilyPond moves the second piece of markup up and out of
the way. (This, of course, is exactly the right default behavior.)

But how do I specify that the two pieces of markup should align vertically
(hence the staff-padding) *even at the expense of overprinting*?

A morning of setting various spacing parameters to ##f, #'(0 . 0),
#'(+info.0 . -inf.0) and the like seemed to yield no overprinting, no
matter what the configuration of settings.

Thanks,

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: OttavaBracket right endpoint?

2017-10-11 Thread Trevor Bača
On Sat, Oct 7, 2017 at 12:07 PM, David Nalesnik <david.nales...@gmail.com>
wrote:

> On Wed, Oct 4, 2017 at 6:54 PM, Trevor Bača <trevorb...@gmail.com> wrote:
> > Hi,
> >
> > I’m interested in making the right endpoints of ottava brackets and trill
> > spanners coincide.
> >
> > QUESTION: in ottava-1.png (attached) I like where the trill spanner
> ends; is
> > there a way to tell the ottava bracket to end at the same point?
>
> No nice way.
>
> The problem you see is due to different spanner bounds for
> TrillSpanner and OttavaBracket.
> TrillSpanner extends to the NoteColumn of the following note,
> OttavaBracket only to the final note of the ottavation.
>
> You can see this by running the following (stem color shows the
> difference in endpoints):
>
> \version "2.19.65"
>
> \new Staff {
>   \override Staff.OttavaBracket.after-line-breaking =
>   #(lambda (grob)
>  (set! (ly:grob-property
> (ly:grob-object (ly:spanner-bound grob RIGHT) 'stem)
> 'color)
>green))
>   \ottava #1
>   \override TrillSpanner.after-line-breaking =
>   #(lambda (grob)
>  (set! (ly:grob-property
> (ly:grob-object (ly:spanner-bound grob RIGHT) 'stem)
> 'color)
>red))
>   c''4 \startTrillSpan
>   d''
>   e''
>   f''
>   \ottava #0
>   %\break
>   c'4 \stopTrillSpan
>   d'
>   e'
>   f'
> }
>
> A proper solution would lie in the OttavaBracket engraver. (And who
> knows what other changes you would need elsewhere to accommodate the
> new right-bound.)
>
> >
> > OttavaBracket seems not to implement the to-barline property (in the
> > spanner-interface):
>
> In my understanding, 'to-barline is used to stop a spanner before it
> would ordinarily stop, not lengthen it.  This could be implemented if
> the OttavaBracket 'columns array included the following, non-ottavated
> NoteColumn.
>
> > There’s also a (promising-sounding) connect-to-neighbor property in the
> > horizontal-bracket-interface. But I can’t figure out how to override
> > property, or whether OttavaBracket implements the property at all:
>
> This is not what you think. It's used to determine whether to draw an
> end-piece of a bracket (that is, with a terminal hatch mark) or an
> interior piece (just a line).  Perhaps the property should be more
> clearly named.
>
> Sorry I can't give you good news...


Hi David,

Believe it or not, this is actually extremely helpful: your explanation is
crystal clear; and knowing now that there's no (programmatic) way to
accomplish the alignment, I'm content to leave the output as-is.

(Sometimes I suppose what I'm after is knowing whether I'm missing
something available in the system or not.)

Thank you!

Trevor.



-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: OttavaBracket right endpoint?

2017-10-06 Thread Trevor Bača
On Thu, Oct 5, 2017 at 7:22 AM, Ben <soundsfromso...@gmail.com> wrote:

>
> On 10/4/2017 7:54 PM, Trevor Bača wrote:
>
> Hi,
>
> I’m interested in making the right endpoints of ottava brackets and trill
> spanners coincide.
>
> Any solutions?
>
> (Definitely not looking for a numeric hack to shorten-pair.)
>
> Trevor.
> ​
>
>
> Hi Trevor,
>
> Just curious - but why are you not considering a shorten pair fix?
> It seems to work fine here with just one line of code. Does that help at
> all in this instance or would that mess something up in your score
> elsewhere?
>
> (see attached)
>
> ===
> \version "2.19.65"
>
>
> \new Staff {
>
>   \once \override Staff.OttavaBracket.shorten-pair = #'(-1 . -20.)
>
>\ottava #1
>
> c''4 \startTrillSpan
>
> d''
>
> e''
>
> f''
>
> \ottava #0
>
> \break
>
>
> c'4 \stopTrillSpan
>
> d'
>
> e'
>
> f'
>
> }
>


Hi Ben,

Because the minute the layout changes the alignment breaks!

I'm looking for a *semantic* way of aligning the two objects (so they stay
matched as layout changes).

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


OttavaBracket right endpoint?

2017-10-05 Thread Trevor Bača
Hi,

I’m interested in making the right endpoints of ottava brackets and trill
spanners coincide.

QUESTION: in ottava-1.png (attached) I like where the trill spanner ends;
is there a way to tell the ottava bracket to end at the same point?

Here’s the code that produces ottava-1.png:

\version "2.19.65"

\new Staff {
\ottava #1
c''4 \startTrillSpan
d''
e''
f''
\ottava #0
\break

c'4 \stopTrillSpan
d'
e'
f'
}

Moving the lexical position of the close-ottava command (ottava-2.png)
doesn’t work:

\version "2.19.65"

\new Staff {
\ottava #1
c''4 \startTrillSpan
d''
e''
f''
\break

c'4 \stopTrillSpan
\ottava #0
d'
e'
f'
}

OttavaBracket seems not to implement the to-barline property (in the
spanner-interface):

\version "2.19.65"

\new Staff {
\override Staff.OttavaBracket.to-barline = ##t
\ottava #1
c''4 \startTrillSpan
d''
e''
f''
\ottava #0
\break

c'4 \stopTrillSpan
d'
e'
f'
}

There’s also a (promising-sounding) connect-to-neighbor property in the
horizontal-bracket-interface. But I can’t figure out how to override
property, or whether OttavaBracket implements the property at all:

\version "2.19.65"

\new Staff {
\override Staff.OttavaBracket.connect-to-neighbor = #'(#t . #t)
\ottava #1
c''4 \startTrillSpan
d''
e''
f''
\ottava #0
\break

c'4 \stopTrillSpan
d'
e'
f'
}

Any solutions?

(Definitely not looking for a numeric hack to shorten-pair.)

Trevor.
​
-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Syntax for multiple slurs per Voice?

2017-07-31 Thread Trevor Bača
Hi David,

On Thu, Jul 27, 2017 at 8:11 PM, David Nalesnik <david.nales...@gmail.com>
wrote:

> Hi Trevor,
>
> On Thu, Jul 27, 2017 at 8:38 AM, Trevor Bača <trevorb...@gmail.com> wrote:
> > Hi David (Nalesnik),
> >
> > On Tue, Oct 20, 2015 at 11:49 AM, David Nalesnik <
> david.nales...@gmail.com>
> > wrote:
> >>
> >> Hi Trevor,
> >>
> >> On Tue, Oct 20, 2015 at 11:31 AM, Trevor Bača <trevorb...@gmail.com>
> >> wrote:
> >>>
> >>> Hi,
> >>>
> >>> I'm coming late to this discussion, but potentially *very* excited
> about
> >>> what this might mean. Will the available of spanner IDs mean that a
> single
> >>> voice will (eventually) be able to carry multiple *text spanners*???
> >>>
> >>> This would be incredibly useful in my own scores (and probably also in
> >>> the scores of very many other composers who work with simultaneous
> >>> continuous transitions). I've attached a PNG of an example from a
> recent
> >>> cello piece. The score is in LilyPond, but the engraving required
> multiple
> >>> (redundant) invisible markup voices. Would be so elegant to be need
> only a
> >>> single voice.
> >>>
> >>>
> >>
> >> I recently rewrote Text_spanner_engraver, incorporating 'spanner-id to
> >> allow an unlimited number of TextSpanners per voice.  The entry method
> isn't
> >> particularly pretty (basically it's equivalent to what you had to do
> with
> >> slurs before David Kastrup came up with the current solution).
> >>
> >> I'd like to get this into the codebase, but I'm unsure if I need to port
> >> it to C++.  Also, there's a chance another engraver to bind the
> simultaneous
> >> spanners might be needed (as piano pedal lines are bound by an alignment
> >> engraver).
> >>
> >> Attached is a more recent version than the one found here:
> >> http://www.mail-archive.com/lilypond-user%40gnu.org/msg105470.html
> >>
> >> Hope this helps!
> >
> >
> >
> > I'm (finally!) working at integrating your alternateTextSpannerEngraver.
> My
> > testing so far shows that it allows for very much of what I'm looking for
> > (ie, multiple text spanners overlapping each other in a single voice).
> >
> > Two questions:
> >
> > 1. Is the version you attached as "text-spanner-id.ly" (way back in
> October
> > 2015!) still the most recent version of your work?
>
> Ugh -- I was going to say that a (perhaps) more current version is on
> GitHub, but I seem to have never created a repository for it...  Old
> age.
>
> So I guess your version is the newest :(
>
> Let me know if you run into any difficulties, and I'll be happy to
> create that newer version.
>

Ok, great. Thanks very much; that was the confirm I was looking for. I'll
let you know how integration goes.

Thanks!

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Syntax for multiple slurs per Voice?

2017-07-27 Thread Trevor Bača
Hi David (Nalesnik),

On Tue, Oct 20, 2015 at 11:49 AM, David Nalesnik <david.nales...@gmail.com>
wrote:

> Hi Trevor,
>
> On Tue, Oct 20, 2015 at 11:31 AM, Trevor Bača <trevorb...@gmail.com>
> wrote:
>
>> Hi,
>>
>> I'm coming late to this discussion, but potentially *very* excited about
>> what this might mean. Will the available of spanner IDs mean that a single
>> voice will (eventually) be able to carry multiple *text spanners*???
>>
>> This would be incredibly useful in my own scores (and probably also in
>> the scores of very many other composers who work with simultaneous
>> continuous transitions). I've attached a PNG of an example from a recent
>> cello piece. The score is in LilyPond, but the engraving required multiple
>> (redundant) invisible markup voices. Would be so elegant to be need only a
>> single voice.
>>
>>
>>
> I recently rewrote Text_spanner_engraver, incorporating 'spanner-id to
> allow an unlimited number of TextSpanners per voice.  The entry method
> isn't particularly pretty (basically it's equivalent to what you had to do
> with slurs before David Kastrup came up with the current solution).
>
> I'd like to get this into the codebase, but I'm unsure if I need to port
> it to C++.  Also, there's a chance another engraver to bind the
> simultaneous spanners might be needed (as piano pedal lines are bound by an
> alignment engraver).
>
> Attached is a more recent version than the one found here:
> http://www.mail-archive.com/lilypond-user%40gnu.org/msg105470.html
>
> Hope this helps!
>


I'm (finally!) working at integrating your alternateTextSpannerEngraver. My
testing so far shows that it allows for very much of what I'm looking for
(ie, multiple text spanners overlapping each other in a single voice).

Two questions:

1. Is the version you attached as "text-spanner-id.ly" (way back in October
2015!) still the most recent version of your work?

2. Was there ever any movement towards integrating the functionality of
your rewritten engraver into the Lily's primary codebase? (Back in October
2015 David Kastrup wrote that he was also thinking through how multiple
spanners might be integrated, too, if I remember correctly.)

Thanks much,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


systems-per-page = 3 ... except on first and last pages?

2017-01-04 Thread Trevor Bača
Hi,

I'm using ...

systems-per-page = 3

... in the \paper block of a current score.

However, the big block of title text on the first page makes three systems
cramped. (Two would be better.) Correspondingly, fewer measures of music on
the last page makes each of the three systems on the last page too short.
(Again two systems would be better.)

Is there an (inline) way to override the effect of systems-per-page on only
select pages?

Thanks,

Trevor.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Openlilylib snippets announcement

2016-12-27 Thread Trevor Bača
On Tue, Dec 27, 2016 at 11:03 AM, SoundsFromSound <soundsfromso...@gmail.com
> wrote:

> Trevor Bača-2 wrote
>
> And as a brief aside - if I may say so - Trevor, thank YOU so much for all
> the work you have put (and still put) into Abjad.
>
> I use it all the time. I use it in almost every composition. It's the first
> thing I go to when preparing a new piece, and for getting a lot of options
> in front of me. Nothing "algorithmic", just pure boatloads of options.
>
> I love being able to create structure, set some boundaries, and then get a
> ton of inspiration from Abjad in a matter of hours instead of months. Such
> an amazing, powerful utility - and thanks for doing it in Python too :)
>
> I love the direction that Abjad is going...hope it keeps on going strong!
>
> Ben


Thanks, Ben! Those are kind words. And -- even more excitingly -- it's
awesome to hear that you're getting legit compositional use outta Abjad!
This has been the point the whole time: to make intermediate-level
compositional ideas (ie, above notation but below the level of complete
score) easier to model and -- ultimately -- enjoy while composing.

Abjad is still very much going strong: Josiah (Oberholtzer) and I both have
many features in development branches waiting to be merged into main for
Abjad 2.20. Among them: automated set-class analysis with a new SetClass
object; compoundable twelve-tone operators; new Markup methods to better
complement the LilyPond markup functions; a powerful façade pattern for
persisting arbitrary compositional expressions to file; smarter
item-indexing in the LilyPondFile object; and many more.

After more than a decade, the decision to implement Abjad in Python
continues to wear very well. And although Abjad and LilyPond are
architected differently, it's exciting to see LilyPond Python updates as an
active topic on the LilyPond dev list again.

Every score I've written for more than 10 years now has been 100% Abjad
plus LilyPond. At almost every rehearsal, musicians complement the clarity
of the LilyPond-rendered scores and parts. And the compositional working
pattern feels stronger and stronger every couple of weeks. In 2017 the goal
will be to make Abjad increasingly easy to get started with: more
cookbook-style documentation is coming up, as well as in-real-life camps
and workshops throughout the year that I'll be hosting together with Josiah
and Jeff Treviño.

Thanks for the feedback, and happy modeling and composing!

Trevor.



-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Openlilylib snippets announcement

2016-12-27 Thread Trevor Bača
Dear Andrew,

Just a quick note to tell you much I'm enjoying the pedal decorations work
you implemented in openlilylib:

https://github.com/openlilylib/snippets/tree/master/notation-snippets/pedal-decorations

Being able to head a pedal bracket with L, M, R for the left, middle, right
pedals is incredibly easy to do with the pedal decorations (and overcomes a
hard limitation in LilyPond's default pedal spanner implementation which
forbids custom markup). Thanks so much for publishing the work: all
incorporated into the piano music I'm currently writing.

Also, I'm somewhat embarrassed to say that the pedal decorations were my
first real interaction with openlilylib. Quite a collection of extensions!
Other LilyPond users with even minimal Git experience will find it easy to
clone the repository. And LilyPond users without Git experience might be
interested in knowing that they can cut-and-paste directly from many of the
openlilylib files directly into their own scores. The entire project is
really worth checking out.

Thanks again,

Trevor.


On Tue, Nov 22, 2016 at 3:47 AM, Andrew Bernard <andrew.bern...@gmail.com>
wrote:

> Hello All,
>
>
>
> Just letting you know that I have contributed some snippets to openlilylib
> worth having for doing some small things in contemporary style scores, but
> which need some Scheme coding.
>
>
>
> Slashed beams
>
>
>
> A function \slashBeam that can add a slash to the left or the right of a
> beamed group, with a fair degree of control over angle and position. This
> is a generalisation of work that others have created previously, in
> particular it extends the concept of \slash.
>
>
>
> Slashed stems
>
>
>
> The function \slashStem allows you to add a slash to a stem with a fair
> degree of control over position and angle. Note that this is a different
> case from slashing a beamed group. [There may be arguments against this but
> I wanted a separate function.] I developed this to make horizontal stem
> slashes, but it was easy to generalize.
>
>
>
> Pedal decorations
>
>
>
> People have often requested to be able to add cautionary labels to pedal
> brackets on continued lines. There have been many workarounds given. This
> solution in Scheme attacks the problem directly by modifying the bracket
> stencil. An arbitrary text label can be added, and optional continuation
> arrows can be added to the right hand end of the bracket. This style is
> commonly seen in contemporary scores.
>
>
>
> These three new capabilities can be found under snippets/notation-snippets
> in the openlilylib repository.
>
>
>
> If there do not exist bugs and defects I would be surprised. I am happy to
> take feedback and suggestions. The code is for the >= 2.19.45 releases. I
> have not tested on 2.18.2, and unless somebody requests, I don’t intend to.
>
>
>
> Andrew
>
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: mac unstable 2.19.49

2016-10-19 Thread Trevor Bača
Agreed.

I can confirm the MacOS fix in 2.19.49: works perfectly under MacOS 10.12.
And does, in fact, appear faster than 2.19.46!

The work applied towards this fix is very much appreciated.

Trevor.

On Mon, Oct 17, 2016 at 3:45 PM, Stan Sanderson <stans...@gmail.com> wrote:

>
> Many thanks to all who worked on the problem and found the solution.
> v2.19.49 seems faster than v2.19.46!
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>



-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Mac OSX Sierra Compatibility

2016-10-04 Thread Trevor Bača
On Tue, Oct 4, 2016 at 10:47 AM, Abraham Lee <tisimst.lilyp...@gmail.com>
wrote:

> Greetings, all!
>
> With the recent release of Mac OSX Sierra (10.12), I was wondering if
> anyone who has taken that upgrade has since found any substantial problems
> with LilyPond and/or Frescobaldi?
>

I installed yesterday, and LilyPond *appears* to be working without a
hitch. (I can't speak to Fescobaldi, however.)

The MacBook did, however, have some spotty shut-down (and restart) issues
after install, however. (Hanging on a black screen after explicit requests
for either process.) But those problems magically disappeared this morning.

Seems stable so far.

-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: v2.19.47 on Mac x86 (Jacques Menu Muzhic)

2016-10-03 Thread Trevor Bača
On Sun, Sep 25, 2016 at 1:53 PM, Masamichi Hosoda <truer...@trueroad.jp>
wrote:

> >>>   https://bugs.freedesktop.org/show_bug.cgi?id=97546
> >>>
> >>> The proposed fix hasn't been applied yet to the fontconfig git
> >>> repository – maybe we should downgrade GUB's fontconfig version to
> >>> 2.12.0 until this is fixed.
> >>
> >> I think that there is another possible solution.  To use the
> >> proposed patch in GUB.
> >
> > Certainly.  However, I can't estimate whether there aren't side
> > effects...  On the other hand, given that the patch is from the
> > fontconfig maintainer, there are high chances that it is the right
> > one :-)
>
> I've created pull request for GUB.
> https://github.com/gperciva/gub/pull/29
>
> The patch is only applied to building binary for mac.


This is really great to see.

And accords exactly with the test results I added to the original thread
showing that 2.19.47 (and .48) are, in fact, definitely rebuilding one of
the font caches at every run of LilyPond.

Thanks very much for tracking this down!





-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Abjad bootcamp this July at Stanford's CCRMA

2016-02-29 Thread Trevor Bača
Hi everyone,

I'd like to take a moment to mention that I'll be teaching a five-day
bootcamp on composing with Abjad this July at Stanford's CCRMA in Palo
Alto, California:

CCRMA: Formalized Score Control: Using Python & Abjad in Music Composition
<https://ccrma.stanford.edu/workshops/abjad>

Friends and very close collaborators Josiah Wolf Oberholtzer and Jeffrey
Treviño will be teaching with me.

Abjad is Python-based composition environment that uses LilyPond for all
stages of notational output, from precomposition all the way through to
publication-quality finished scores. Abjad is especially useful for
composers who think of the music they write in a "formalized" way: that is,
for composers who write with patterns or processes in their music that can
benefit from being object-modeled.

You can read more about Abjad here:

www.projectabjad.org

And you can take a look at finished scores and listen to pieces here:

http://www.projectabjad.org/gallery.html

If you like academic papers, you can read an overview of Abjad here:

https://github.com/Abjad/tenor2015/blob/master/abjad.pdf

We especially encourage intermediate and advanced users of LilyPond to
consider attending the bootcamp: Abjad brings the full power of the Python
programming language to the syntax of LilyPond files that you are already
familiar with. If you've been thinking about adding a programming component
to your compositional process, the bootcamp in July will be an ideal way to
get started.

We're also happy to announce that Stanford has agreed to work with us to
provide a number of scholarships for women composers who'd like to attend
the bootcamp. We think it's important that composers of all backgrounds
from all over the world should have access to technologies to help make
their work as composers more powerful and more fun!

Best wishes for happy composing and engraving to everyone,

Trevor.


-- 
Trevor Bača
www.trevorbaca.com
soundcloud.com/trevorbaca
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Syntax for multiple slurs per Voice?

2015-10-20 Thread Trevor Bača
Hi,

I'm coming late to this discussion, but potentially *very* excited about
what this might mean. Will the available of spanner IDs mean that a single
voice will (eventually) be able to carry multiple *text spanners*???

This would be incredibly useful in my own scores (and probably also in the
scores of very many other composers who work with simultaneous continuous
transitions). I've attached a PNG of an example from a recent cello piece.
The score is in LilyPond, but the engraving required multiple (redundant)
invisible markup voices. Would be so elegant to be need only a single voice.

Trevor.



On Fri, Oct 2, 2015 at 4:43 PM, David Kastrup <d...@gnu.org> wrote:

> Thomas Morley <thomasmorle...@gmail.com> writes:
>
> > (4)
> > Observation:
> > Using Slurs with and without setted 'spanner-id works as well
> > \relative { c'\=1( d( e\=1) f) }
> >
> > \relative { c'\=1(^( e\=1)) }
>
> The default is a spanner-id of "" so that's not much of a surprise.
>
> --
> David Kastrup
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>



-- 
Trevor Bača
www.trevorbaca.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: multiple TextSpanners per voice

2015-10-20 Thread Trevor Bača
Hi,

I'd like to add that I'm *incredibly* excited by this work. The ability to
have multiple text spanners in a voice -- and to tweak each independently
-- is something I've wanted in LilyPond for many years. (I responded to a
different thread about this a touch too early only moments ago; apologies,
catching up on list mail.) This is really incredibly exciting to me, and I
think it will be to very many other composers once the ability is made
clear in a public release (and in the docs).

For what it's worth, I'd very much like to request the promotion of this
work to a fully acknowledged new feature (respecting, of course, the needs
of feature sequencing in the release process).

I'm not quite sure what the best (user) interface for this is. I suppose
\startTextSpan[One|Two|Three|Four] will work. Though it seems like
\startTextSpan #1 or \startTextSpan #"fancy-spanner-name" would be a more
complete generalization of the feature.

Regardless of the user interface, this work is important. Please consider
elevating the change to a full feature (with a NEWS entry and a graphic
example or two) with user syntax that is as streamlined and clear as
possible. I think we will be surprised at the amount of uptake among many
composers.

Thanks so much for this, David.

Trevor.






On Mon, Oct 5, 2015 at 10:09 AM, David Nalesnik <david.nales...@gmail.com>
wrote:

> Ok, this should do it.
>
> The intention is to provide extra functionality to text spanners.  By
> using this code, you have all the functionality of normal text spanners,
> but you are able to have multiple spanners per voice.
>
> You simply need to swap the regular engraver for this one in a layout
> block, and use the commands I've defined: \startTextSpanOne, and the like.
>  (You can change the names, of course, and add more.  This is crying out
> for a better interface, I know,)
>
> Regarding difficulties mentioned earlier in the thread:
>
> The spanners should nest properly and maintain their orientation across
> line breaks.  Here this is achieved by assigning minute variations of
> outside-staff-priority behind the scenes.  (Turns out you can use
> outside-staff-priorities like 350.0001 ) You can still override and
> tweak outside-staff-priority of TextSpanner if you want.
>
> I believe that this manipulation may be avoided by inventing a new
> alignment grob "to bind them all." but I'm not sure.  Since the attached
> seems sufficient, this could wait until time came (if ever) to add this to
> the code base.
>
> DN
>
> %%%
>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>


-- 
Trevor Bača
www.trevorbaca.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: multiple TextSpanners per voice

2015-10-20 Thread Trevor Bača
This is excellent.

The combination of the engraver and the ID labeling work perfectly.

I think it would be wonderful to consider including David's engraver in a
coming public release.

On Tue, Oct 20, 2015 at 1:28 PM, David Nalesnik <david.nales...@gmail.com>
wrote:

>
>
> On Tue, Oct 20, 2015 at 11:50 AM, David Kastrup <d...@gnu.org> wrote:
>
>> Trevor Bača <trevorb...@gmail.com> writes:
>>
>> > Hi,
>> >
>> > I'd like to add that I'm *incredibly* excited by this work. The ability
>> to
>> > have multiple text spanners in a voice -- and to tweak each
>> independently
>> > -- is something I've wanted in LilyPond for many years. (I responded to
>> a
>> > different thread about this a touch too early only moments ago;
>> apologies,
>> > catching up on list mail.) This is really incredibly exciting to me,
>> and I
>> > think it will be to very many other composers once the ability is made
>> > clear in a public release (and in the docs).
>> >
>> > For what it's worth, I'd very much like to request the promotion of this
>> > work to a fully acknowledged new feature (respecting, of course, the
>> needs
>> > of feature sequencing in the release process).
>> >
>> > I'm not quite sure what the best (user) interface for this is. I suppose
>> > \startTextSpan[One|Two|Three|Four] will work. Though it seems like
>> > \startTextSpan #1 or \startTextSpan #"fancy-spanner-name" would be a
>> more
>> > complete generalization of the feature.
>>
>> \=1\startTextSpan ... \=1\endTextSpan already work as a user interface.
>> It's just that there is nothing that would actually _heed_ the settings
>> of "spanner-id" achieved in that manner yet.
>>
>>
> This works wonderfully well as an interface with the engraver I posted.
> Thank you so much!  Now it is possible to remove all the extra definitions
> of \startTextSpanEightyFour and the like.
>
> See attached.
>
> DN
>
> %
>
>



-- 
Trevor Bača
www.trevorbaca.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Smoothing out RepeatTie irregularities between chords?

2015-04-30 Thread Trevor Bača
Hi David and Pierre,

Ok, it looks like both solutions will work for me, so thank you very much.

And I guess this means it's not necessary to file a bug report, either.

Thanks!

Trevor.

On Fri, Apr 17, 2015 at 6:31 AM, David Nalesnik david.nales...@gmail.com
wrote:

 Hi,


 2015-04-16 3:36 GMT+02:00 Trevor Bača trevorb...@gmail.com:

 Hi,

 Using the \shape command to length repeat ties works great between
 notes. But weird behavior seems to arise with lengthened repeat ties
 between chords:


 ### BEGIN ###

 \version 2.19.17
 \language english


 \new Staff \with {
 \shape #'((-2 . 0) (-1 . 0) (-0.5 . 0) (0 . 0)) RepeatTie

 \override RepeatTie.X-extent = ##f
 } {
 c' g'1
 c' g'1 \repeatTie
 c' g'1 \repeatTie
 c' g'1 \repeatTie
 }

 ### END ###


 (Image attached.)

 Would anyone have any clues as to how to make the repeat ties all have
 the same length?


 In order to use a shape-like command with repeat ties in a chord, we have
 to get at the individual ties organized by the RepeatTieColumn.

 Here's a variant of \shapeTieColumn (at
 https://github.com/openlilylib/openlilylib/tree/master/notation-snippets/shaping-bezier-curves/shape-tie-column)
 which achieves that.  Each tie within the chord is represented with its own
 list of offsets.

 
 \version 2.19.17
 \language english


 shapeRepeatTieColumn =
 #(define-music-function (parser location all-offsets) (list?)
#{
  \override RepeatTieColumn #'before-line-breaking =
  #(lambda (grob)
 (let ((ties (ly:grob-array-list (ly:grob-object grob 'ties
   (for-each
(lambda (tie offsets-for-tie)
  (if (number-pair-list? offsets-for-tie)
  (set! (ly:grob-property tie 'control-points)
(map
 (lambda (x y) (coord-translate x y))
 (ly:semi-tie::calc-control-points tie)
 offsets-for-tie
ties all-offsets)))
#})

 \new Staff \with {
   \shapeRepeatTieColumn #'(
 ((-2 . 0) (-1 . 0) (-0.5 . 0) (0 . 0))
 ((-2 . 0) (-1 . 0) (-0.5 . 0) (0 . 0))
 )
   \override RepeatTie.X-extent = ##f
 } {
   c' g'1
   c' g'1 \repeatTie
   c' g'1 \repeatTie
   c' g'1 \repeatTie
 }

 %

 HTH,
 David

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: [AFIM.INFO] TENOR 2015: First International Conference on New Technologies for Music Notation and Representation

2015-04-30 Thread Trevor Bača
Hi,

I'll be there reading a paper about Abjad coauthored with Josiah
Oberholtzer, Jeff Treviño and Victor Adán. Jeff will be there with me to
help present (but Josiah and Victor will be staying in the US during the
conference). I think we're presenting at 10:20 am on Saturday (May 30) at
the Maison de la Recherche. Anyone who's in Paris that weekend should mail
and perhaps we could meet for coffee before or after.

The paper we put together on Abjad is modeled in part on Han-Wen and Jan's
introductory LilyPond paper they presented in Firenze years ago. LilyPond
(and Python) are what have made Abjad possible for many years now. And so
it's a pleasure to finally acknowledge the fact in an academic setting.

Looking forward to perhaps meeting some new faces in Paris.

Trevor.

On Wed, Apr 22, 2015 at 8:09 AM, Paul Morris p...@paulwmorris.com wrote:

 Anyone planning on attending this conference in Paris at the end of May?  I
 see a couple of LilyPonders on the program, Trevor Bača and Mike Solomon,
 and Daniel Spreadbury will be presenting on the SMuFL font standard.

 -Paul



 anders.vinjar wrote
  Topics:
 Fwd: [AFIM.INFO] TENOR 2015: First International Conference on New
  Technologies for Music Notation and Representation
 
 
  Début du message réexpédié :
 
  De: Pierre Couprie (Paris4) lt;

  pierre.couprie@

  gt;
  Objet: [AFIM.INFO] TENOR 2015: First International Conference on New
  Technologies for Music Notation and Representation
  Date: 27 octobre 2014 13:50:00 UTC+1
  À:

  afim.info@

 
  TENOR 2015
  First International Conference on New Technologies for Music Notation
 and
  Representation
 
  Call for papers
 
  Paris, France, 29-30 May 2015
  University of Paris-Sorbonne / Ircam
 
  The first International Conference on New Technologies for Music
 Notation
  and Representation is dedicated to issues in theoretical and applied
  research and development in Music Notation and Representation, with a
  strong focus on computer tools and applications, as well as a tight
  connection to music creation.
 
  Until very recently, the support provided by the computer music to the
  field of symbolic notation remained fairly conventional. However, recent
  developments indicate that the field of tools for musical notation is
 now
  moving towards new forms of representation. Moreover, musical notation,
  transcription, sonic visualization, and musical representation are often
  associated in the fields of musical analysis, ethnology, and acoustics.
  The aim of this conference is to explore all of recent mutations of
  notation and representation in all domains of music.
 
  Topics of interest
 
  Musical creation
   • Notation in electronic and electroacoustic music
   • Notations for interactive music
   • Notation for sound installations
   • Notation for the multimedia and mixed arts
   • Live coding
 
  Musical notation
   • Innovative computer applications for music notation
   • Languages for music notation
   • Gesture notation
   • Notation and mobile devices
   • Exchange formats for music notation
   • Online tools and languages for music notation and representation
 
  Analysis, notation  pieces studies
   • Analysis of contemporary notations
   • Semiotic of new notation forms
   • Ontology of the notation of interactive music
   • Data mining, music notation corpus, databases
 
  Representation, transcription
   • Sound visualization
   • Interactive representation
   • Transcription in ethnomusicology and representation of
 non-written
  musics
   • Non-western or ancient music trans-notation
   • Representation and transcription in acoustic ecology and sound
  landscape
   • Optical music recognition
 
  Listening, teaching
   • Listening guides
   • Live and offline annotation
   • Notations for music pedagogy
 
  Submission
 
  Information  submission: http://tenor2015.tenor-conference.org.
  Deadline for papers submission: January 15, 2015.
 
  With the collaboration of:
 
  Institut de Recherche en Musicologie, CNRS UMR 8223
  Université Paris-Sorbonne
  Ircam
  LAM, Lutheries - Acoustique - Musique, UPMC
  GRAME, Centre national de création musicale, Lyon
  AFIM, Association Française d'Informatique Musicale
 
 
  ___
  lilypond-user mailing list

  lilypond-user@

  https://lists.gnu.org/mailman/listinfo/lilypond-user





 --
 View this message in context:
 http://lilypond.1069038.n5.nabble.com/AFIM-INFO-TENOR-2015-First-International-Conference-on-New-Technologies-for-Music-Notation-and-Repren-tp168074p175003.html
 Sent from the User mailing list archive at Nabble.com.

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing

Re: Double- and triple-tonguing articulation

2015-04-16 Thread Trevor Bača
Hi Alex,
Hi Steven,

Yes, this works perfectly.

Thank you both.

Trevor.

On Thu, Apr 16, 2015 at 2:54 PM, palisander alvo...@btinternet.com wrote:

 Trevor Bača-2 wrote
  Hi,
 
  Does anyone know how to combine two (or three) staccato dots in a
  horizontal row above a note head?

 Trevor,

 This is, I think, what you are looking for:
 http://lsr.di.unimi.it/LSR/Item?id=772

 Alex Voice



 --
 View this message in context:
 http://lilypond.1069038.n5.nabble.com/Double-and-triple-tonguing-articulation-tp174626p174631.html
 Sent from the User mailing list archive at Nabble.com.

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Double- and triple-tonguing articulation

2015-04-16 Thread Trevor Bača
Hi,

Does anyone know how to combine two (or three) staccato dots in a
horizontal row above a note head?

Rheinhold asked this question some years back ...

http://lists.gnu.org/archive/html/lilypond-user/2008-04/msg00159.html

... but it looks like no one cold figure it out at the time.

Thank for any pointers.

Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Are harmonic trills possible?

2015-04-15 Thread Trevor Bača
Hi,

Is it possible to override trill pitch note heads in the shape of a
(diamond) natural harmonic?

This attempt ...

### BEGIN ###

\version 2.19.17

\language english





\new Staff {

\override TrillPitchHead.style = #'diamond

\pitchedTrill

c'4 \startTrillSpan cs'

d'4 \stopTrillSpan

e'4

f'4

}


### END ###

... prints no trill pitch note head at all:

GNU LilyPond 2.19.17
Processing `tmp.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
programming error: must have stem dir for note head
continuing, cross fingers
tmp.ly:8:9: warning: none of note heads `noteheads.s' or `noteheads.d' found
c'4
\startTrillSpan cs'


Does anyone have a workaround? (I'm wanting the sort of mixed trill
possible between an open string and one of the string's harmonic nodes,
standard as per Saariaho, Sciarrino and so on.)


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Are harmonic trills possible?

2015-04-15 Thread Trevor Bača
Hi Pierre,

This is absolutely wonderful. Thank you so much. (Right before a deadline
and this is incredibly helpful.)

Would you, by chance, know a way to make the diamond white instead of black?

Trevor.

On Wed, Apr 15, 2015 at 1:06 PM, Pierre Perol-Schneider 
pierre.schneider.pa...@gmail.com wrote:

 Hi Trevor,

 How about:

 \version
 2.19.17
 %\language english


 \new Staff
 {
%\override TrillPitchHead.style =
 #'diamond
\once\override TrillPitchHead.stencil = #(lambda (grob)
 (grob-interpret-markup grob
   #{ \markup \musicglyph #noteheads.s2harmonic #}
   ))

 \pitchedTrill

  c'4 \startTrillSpan
 cis'
 d'4
 \stopTrillSpan

 e'4

 f'4
 }

 Cheers,
 Pierre

 2015-04-15 18:11 GMT+02:00 Trevor Bača trevorb...@gmail.com:

 Hi,

 Is it possible to override trill pitch note heads in the shape of a
 (diamond) natural harmonic?

 This attempt ...

 ### BEGIN ###

 \version 2.19.17

 \language english





 \new Staff {

 \override TrillPitchHead.style = #'diamond

 \pitchedTrill

 c'4 \startTrillSpan cs'

 d'4 \stopTrillSpan

 e'4

 f'4

 }


 ### END ###

 ... prints no trill pitch note head at all:

 GNU LilyPond 2.19.17
 Processing `tmp.ly'
 Parsing...
 Interpreting music...
 Preprocessing graphical objects...
 programming error: must have stem dir for note head
 continuing, cross fingers
 tmp.ly:8:9: warning: none of note heads `noteheads.s' or `noteheads.d'
 found
 c'4
 \startTrillSpan cs'


 Does anyone have a workaround? (I'm wanting the sort of mixed trill
 possible between an open string and one of the string's harmonic nodes,
 standard as per Saariaho, Sciarrino and so on.)


 --
 Trevor Bača
 trevorb...@gmail.com

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user





-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Are harmonic trills possible?

2015-04-15 Thread Trevor Bača
Yes: perfect.

Thank you, Stephen  Pierre!

Trevor.

On Wed, Apr 15, 2015 at 1:58 PM, Pierre Perol-Schneider 
pierre.schneider.pa...@gmail.com wrote:

 I'm glad you like it!
 Steven' answer's looks perfect.
 If needed just make your choice here:
 http://lilypond.org/doc/v2.18/Documentation/notation/the-feta-font#special-notehead-glyphs

 Cheers,
 Pierre


 2015-04-15 19:51 GMT+02:00 Steven Weber pant...@hotmail.com:

 Try s0harmonic instead of s2harmonic



 --Steven



 *From:* lilypond-user-bounces+panteck=hotmail@gnu.org [mailto:
 lilypond-user-bounces+panteck=hotmail@gnu.org] *On Behalf Of *Trevor
 Baca
 *Sent:* Wednesday, April 15, 2015 10:48 AM
 *To:* Pierre Perol-Schneider
 *Cc:* lilypond-user
 *Subject:* Re: Are harmonic trills possible?



 Hi Pierre,



 This is absolutely wonderful. Thank you so much. (Right before a deadline
 and this is incredibly helpful.)



 Would you, by chance, know a way to make the diamond white instead of
 black?



 Trevor.



 On Wed, Apr 15, 2015 at 1:06 PM, Pierre Perol-Schneider 
 pierre.schneider.pa...@gmail.com wrote:

 Hi Trevor,

 How about:

 \version
 2.19.17
 %\language english


 \new Staff
 {
%\override TrillPitchHead.style =
 #'diamond
\once\override TrillPitchHead.stencil = #(lambda (grob)
 (grob-interpret-markup grob
   #{ \markup \musicglyph #noteheads.s2harmonic #}
   ))

 \pitchedTrill

  c'4 \startTrillSpan
 cis'
 d'4
 \stopTrillSpan

 e'4

 f'4
 }

 Cheers,

 Pierre



 2015-04-15 18:11 GMT+02:00 Trevor Bača trevorb...@gmail.com:

 Hi,



 Is it possible to override trill pitch note heads in the shape of a
 (diamond) natural harmonic?



 This attempt ...



 ### BEGIN ###



 \version 2.19.17


 \language english








 \new Staff {


 \override TrillPitchHead.style = #'diamond


 \pitchedTrill


 c'4 \startTrillSpan cs'


 d'4 \stopTrillSpan


 e'4


 f'4


 }




 ### END ###



 ... prints no trill pitch note head at all:



 GNU LilyPond 2.19.17

 Processing `tmp.ly'

 Parsing...

 Interpreting music...

 Preprocessing graphical objects...

 programming error: must have stem dir for note head

 continuing, cross fingers

 tmp.ly:8:9: warning: none of note heads `noteheads.s' or `noteheads.d'
 found

 c'4

 \startTrillSpan cs'





 Does anyone have a workaround? (I'm wanting the sort of mixed trill
 possible between an open string and one of the string's harmonic nodes,
 standard as per Saariaho, Sciarrino and so on.)





 --

 Trevor Bača
 trevorb...@gmail.com



 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user







 --

 Trevor Bača
 trevorb...@gmail.com





-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Smoothing out RepeatTie irregularities between chords?

2015-04-15 Thread Trevor Bača
Hi,

Using the \shape command to length repeat ties works great between notes.
But weird behavior seems to arise with lengthened repeat ties between
chords:


### BEGIN ###

\version 2.19.17
\language english


\new Staff \with {
\shape #'((-2 . 0) (-1 . 0) (-0.5 . 0) (0 . 0)) RepeatTie

\override RepeatTie.X-extent = ##f
} {
c' g'1
c' g'1 \repeatTie
c' g'1 \repeatTie
c' g'1 \repeatTie
}

### END ###


(Image attached.)

Would anyone have any clues as to how to make the repeat ties all have the
same length?

Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Messiaen-style ties?

2015-04-01 Thread Trevor Bača
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user







-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Messiaen-style ties?

2015-03-31 Thread Trevor Bača
Hi Kieren, Simon, Pierre, Abraham  everyone,

Just a follow up that using \repeatTie does definitely accomplish what I
was looking for; I have it integrated into the score now and it's working
in all configurations.

A remaining question: I'm guessing there's not a way to lengthen
repeat-ties? (Hence why Pierre demoed the work-around of hiding preceding
grace notes?)

I tried messing with the X-extent of the LaissezVibrerTieColumn grob ...

\new Staff \with {
\override LaissezVibrerTieColumn #'X-extent = #'(-3 . 3)
} {
c'2
c'2 \repeatTie
c'2 \repeatTie
c'2 \repeatTie
}

... but apparently to no avail.

If anyone has magic available to lengthen repeat-ties, that would be
awesome.

(If no magic is available then I think the players will still know what's
going on: the symbols aren't as obvious on the page when you first start to
read them (as compared to Messiaen's), but I printed out a page and sat it
on a stand and I think they will be noticeable enough to work in
performance.)


Trevor.




On Sun, Mar 22, 2015 at 7:07 PM, Trevor Bača trevorb...@gmail.com wrote:

 Hi everyone,

 Wow, thank you all so much. I hadn't realized the functionality already
 exists. Truly wonderful.

 Next time I'll take a better look at the docs, too.

 Thanks again. I'll be integrating now to see if I can use the
 functionality in the current score.

 Trevor.

 On Sun, Mar 22, 2015 at 5:43 PM, Kieren MacMillan 
 kieren_macmil...@sympatico.ca wrote:

 Hi Simon,

  True, this gives quite the desired output, but it would make sense to
 have this as a 'style option to Tie rather than using different musical
 input in the first place.

 +1

  So I’d support an enhancement tracker issue and will post this to
 ly-bug.

 Thanks for doing that.

 Best,
 Kieren.
 ___

 Kieren MacMillan, composer
 www:  http://www.kierenmacmillan.info
 email:  i...@kierenmacmillan.info


 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




 --
 Trevor Bača
 trevorb...@gmail.com




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Having shortInstrumentName appear at start of score (instead of instrumentName)?

2015-03-31 Thread Trevor Bača
Hi Harm  hi Nathan,

Incredible. I'm shocked that this do-able.

Harm, the solution of overriding the after-line-breaking property on the
Instrument grob with a lambda especially blows my mind. Nathan, thank you
for expanding my understanding of context construction with a single
example.

Integrated into my score and it works perfectly.

Very much appreciated.

Trevor.

On Tue, Mar 31, 2015 at 6:54 PM, Thomas Morley thomasmorle...@gmail.com
wrote:

 2015-03-31 22:23 GMT+02:00 Nathan Ho when.possi...@gmail.com:
  On Tue, Mar 31, 2015 at 12:46 PM, Trevor Bača trevorb...@gmail.com
 wrote:
 
  Hi,
 
  Let's say that I have a stylesheet that sets instrumentName values and
  shortInstrumentName values for a bunch of contexts in the normal way:
 
  \context {
  \Staff
  ...
  instrumentName = \markup { Flute }
  shortInstrumentName = \markup { Fl. }
  }
  \context {
  \Staff
  ...
  instrumentName = \markup { Oboe }
  shortInstrumentName = \markup { Ob. }
  }
  ...
 
  QUESTION: is there a way to have the shortInstrumentName values appear
 at
  the start of the score (meaning that the instrumentName values will
 never
  appear)?
 
  The question looks pathological. (Why would you set a value for
  instrumentName if you don't want instrumentName to appear in the
 score?) But
  the motivation is as follows. I have a complex score that I've broken
 into
  multiple chunks (meaning separate LilyPond files with separate score
  blocks). All chunks \include the same stylesheet. But I want
 instrumentName
  to appear at the start of only chunk 1 (because chunk 1 is the start of
 the
  actual sore). For chunks 2, 3, ... I'd like shortInstrumentName to
 appear at
  the start of each score (because each non-first score is actually
  modeling subsequent parts of the one actual score).
 
  I can't imagine that there would be a setting for this. But is there
 some
  sort of Scheme wizardry that can be put at the beginning of each of the
  non-first score chunks to say set instrumentName to the value of
  shortInstrumentName?
 
 
  This is pretty nasty but it does what you're trying to accomplish.
 
  shortInstrAsInstr = #(lambda (context)
 
 (ly:context-set-property! context
 
   'instrumentName (ly:context-property context
  'shortInstrumentName)) '())
 
 
  \new Staff \with {
 
instrumentName = Viola
 
shortInstrumentName = Vla.
 
\consists \shortInstrAsInstr
 
  } {
 
c1 c1 \break c1 c1
 
  }
 
 
  Regards,
 
  Nathan


 Less nasty:

 \version 2.19.17

 \layout {
 \context {
 \Staff
 \override InstrumentName.after-line-breaking =
 #(lambda (grob)
   (ly:grob-set-property! grob 'long-text
   (ly:grob-property grob 'text)))
 }
 }

\new Staff
\with {
  instrumentName = Flute
  shortInstrumentName = Fl.
}
{ c''1 }
\new Staff
\with {
 instrumentName = Oboe
 shortInstrumentName = Ob.
}
{ d''1 }


 HTH,
   Harm




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Having shortInstrumentName appear at start of score (instead of instrumentName)?

2015-03-31 Thread Trevor Bača
Hi,

Let's say that I have a stylesheet that sets instrumentName values and
shortInstrumentName values for a bunch of contexts in the normal way:

\context {
\Staff
...
instrumentName = \markup { Flute }
shortInstrumentName = \markup { Fl. }
}
\context {
\Staff
...
instrumentName = \markup { Oboe }
shortInstrumentName = \markup { Ob. }
}
...

QUESTION: is there a way to have the shortInstrumentName values appear at
the start of the score (meaning that the instrumentName values will never
appear)?

The question looks pathological. (Why would you set a value for
instrumentName if you don't want instrumentName to appear in the score?)
But the motivation is as follows. I have a complex score that I've broken
into multiple chunks (meaning separate LilyPond files with separate score
blocks). All chunks \include the same stylesheet. But I want instrumentName
to appear at the start of only chunk 1 (because chunk 1 is the start of the
actual sore). For chunks 2, 3, ... I'd like shortInstrumentName to appear
at the start of each score (because each non-first score is actually
modeling subsequent parts of the one actual score).

I can't imagine that there would be a setting for this. But is there some
sort of Scheme wizardry that can be put at the beginning of each of the
non-first score chunks to say set instrumentName to the value of
shortInstrumentName?

That would be truly amazing.

Trevor.


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Padding inside \bracket markup?

2015-03-31 Thread Trevor Bača
Hi Nathan,

Thank you. That did it exactly.

Trevor.

On Tue, Mar 31, 2015 at 1:27 PM, Nathan Ho when.possi...@gmail.com wrote:

 On Tue, Mar 31, 2015 at 7:40 AM, Trevor Bača trevorb...@gmail.com wrote:

 Hi,

 Is there a way to pad bracketed markup ...

% doesn't work
\override #'(padding . 2) \bracket Foo

 ... analogously to parenthesized markup ...

% does work
\override #'(padding . 2) \bracket Foo

 ... with an \override, or equivalent?

 Trevor.


 Try this:

 \bracket \pad-around #2 Foo

 Regards,
 Nathan




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Padding inside \bracket markup?

2015-03-31 Thread Trevor Bača
Hi,

Is there a way to pad bracketed markup ...

   % doesn't work
   \override #'(padding . 2) \bracket Foo

... analogously to parenthesized markup ...

   % does work
   \override #'(padding . 2) \bracket Foo

... with an \override, or equivalent?

Trevor.


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Constant sized rehersal marks?

2015-03-30 Thread Trevor Bača
Hi Kieren,

This looks like exactly what I need.

I must a bit slow this morning, but to what do you assign the
format-oval-barnumbers function?

Setting ...

   \override BarNumber.stencil = #format-oval-barnumbers

... gives an error, and I must be missing something simple, yes?

Trevor.

On Sun, Mar 29, 2015 at 9:11 PM, Kieren MacMillan 
kieren_macmil...@sympatico.ca wrote:

 Hi Trevor,

  Is there some Scheme-ish way to do that with the \set
 Score.markFormatter = #format-mark-circle-numbers context setting?

 In my Henle stylesheet, I see I used the following:

 #(define-markup-command (oval layout props arg)
  (markup?)
  #:properties ((thickness 1)
(font-size 0)
(oval-padding 0.75))
  (let ((th (* (ly:output-def-lookup layout 'line-thickness)
   thickness))
(pad (* (magstep font-size) oval-padding))
(m (interpret-markup layout props (markup #:hcenter-in 1.5 arg
(oval-stencil m th pad (* pad 1.5

 #(define (format-oval-barnumbers barnum measure-pos alt-number context)
  (make-oval-markup
   (robust-bar-number-function barnum measure-pos alt-number context)))

 That seemed to work, at least for small-ish numbers.
 Maybe that will give you some clues on how to solve your problem?

 Hope this helps!
 Kieren.

 ___

 Kieren MacMillan, composer
 www:  http://www.kierenmacmillan.info
 email:  i...@kierenmacmillan.info




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Constant sized rehersal marks?

2015-03-29 Thread Trevor Bača
Hi Kieren,

Using \combine with a \transparent constant would be a good way to go.

Is there some Scheme-ish way to do that with the \set Score.markFormatter
= #format-mark-circle-numbers context setting?

Trevor.


On Wed, Mar 18, 2015 at 7:03 PM, Kieren MacMillan 
kieren_macmil...@sympatico.ca wrote:

 Hi all,

  Did anyone ever find a non-manual way of making this work?

 Why not just \combine it with a \transparent constant (e.g., 88)?

 Hope this helps!
 Kieren.

 ___

 Kieren MacMillan, composer
 www:  http://www.kierenmacmillan.info
 email:  i...@kierenmacmillan.info




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Variables in instrumentName markup?

2015-03-29 Thread Trevor Bača
Hi Mark  hi Harm,

Brilliant. Just what I was looking for, and instructive in two different
ways.

Thank you both.

Trevor.

On Sat, Mar 28, 2015 at 4:20 PM, Thomas Morley thomasmorle...@gmail.com
wrote:

 2015-03-28 20:27 GMT+01:00 Mark Knoop m...@opus11.net:
  At 14:13 on 28 Mar 2015, Trevor Bača wrote:
 Hi,
 
 Is there a way to do ...
 
foo = #12
\new Staff \with {
   instrumentName = \markup { \hcenter-in \foo Percussion }
} { ... }
\new Staff \with {
   instrumentName = \markup { \hcenter-in \foo Violin }
} { ... }
 
 ... or equivalent?
 
  Just write #foo. Or even #(+ foo 3), #(/ foo 2.735), 
 
  --
  Mark Knoop



 How about:

 \version 2.19.17

 val = 12

 \layout {
 \context {
 \Staff
 \override InstrumentName.after-line-breaking =
 #(lambda (grob)
   (ly:grob-set-property! grob 'long-text
 (markup
   #:box ;; only for debugging, delete me
   #:hcenter-in val
   (ly:grob-property grob 'long-text
 }
 }

\new Staff
\with { instrumentName = Percussion }
{ c''1 }
\new Staff
\with { instrumentName = Violin }
{ d''1 }


 HTH,
   Harm

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Variables in instrumentName markup?

2015-03-28 Thread Trevor Bača
Hi,

Is there a way to do ...

   foo = #12
   \new Staff \with {
  instrumentName = \markup { \hcenter-in \foo Percussion }
   } { ... }
   \new Staff \with {
  instrumentName = \markup { \hcenter-in \foo Violin }
   } { ... }

... or equivalent?

(The motivation being to use the same amount of horizontal space in a
couple of dozen different instrument names.)

Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Messiaen-style ties?

2015-03-22 Thread Trevor Bača
Hi,

Does anyone know how produce the style of ties used by Messiaen (or his
publisher)?

I've attached an image file taken from a first page of results given by
Google images.

The style of ties is unconventional because there are effectively no ties
exiting tied notes (or chords); only ties entering into non-first notes (or
chords) joined together in series. (The augmented fourth held in the
pianist's left hand in the bottom system provides a good example of this.)

I haven't yet used this style of tie in my own scores. But it seems like it
might be a particularly effective way to reduce the graphic noise dense
chords cause when tied over long durations.

(One last thought: Messiaen's notation might be conceptually equivalent to
a type of reverse l.v. indication. That might help provide a name for the
feature should it ever find its way into LilyPond.)

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Messiaen-style ties?

2015-03-22 Thread Trevor Bača
Hi everyone,

Wow, thank you all so much. I hadn't realized the functionality already
exists. Truly wonderful.

Next time I'll take a better look at the docs, too.

Thanks again. I'll be integrating now to see if I can use the functionality
in the current score.

Trevor.

On Sun, Mar 22, 2015 at 5:43 PM, Kieren MacMillan 
kieren_macmil...@sympatico.ca wrote:

 Hi Simon,

  True, this gives quite the desired output, but it would make sense to
 have this as a 'style option to Tie rather than using different musical
 input in the first place.

 +1

  So I’d support an enhancement tracker issue and will post this to ly-bug.

 Thanks for doing that.

 Best,
 Kieren.
 ___

 Kieren MacMillan, composer
 www:  http://www.kierenmacmillan.info
 email:  i...@kierenmacmillan.info


 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Constant sized rehersal marks?

2015-03-18 Thread Trevor Bača
Did anyone ever find a non-manual way of making this work?

Trevor.

On Fri, Jan 9, 2015 at 7:22 AM, Pierre Perol-Schneider 
pierre.schneider.pa...@gmail.com wrote:

 As a first step here's a manual workaround :

 \version 2.18.2

 \relative c' {
   \time 2/4
   d e |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.8
   \bold 1
 }
   } d e |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.68
   \fontsize #-3 \bold \concat { 1 \hspace #-.1 0 }
 }
   } f g |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.68
   \magnify #.8 \bold \concat { 1 \hspace #-.1 1 }
 }
   } f g |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.61
   \fontsize #-6 \bold \concat { 1 \hspace #-.1 00 }
 }
   } b c |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.8
   \bold \concat { \hspace #.1 2 }
 }
   } a b |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.68
   \fontsize #-3 \bold \concat { \hspace #.1 20 }
 }
   } c d |
\mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.61
   \fontsize #-6 \bold \concat { \hspace #.1 200 }
 }
   } c d |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.8
   \bold 3
 }
   } e f |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.68
   \fontsize #-3 \bold 30
 }
   } g a |
   \mark \markup {
 \center-column {
   \draw-circle #1.35 #0.1 ##f
   \vspace #-.61
   \fontsize #-6 \bold 300
 }
   } b c |
 }

 Pierre

 2015-01-09 1:30 GMT+01:00 Steve Lacy sl...@slacy.com:

 Using \set Score.markFormatter = #format-mark-circle-numbers how would
 one go about making sure that all the rehersal marks are the same size
 (i.e. the radius of the circle is constant and the font inside scales to
 fit, and digits are centered within the circle?).  Here's an example score
 that I would like to fix:
 [image: Inline image 1]
 (http://lilybin.com/qurd93/2)

 Additionally:
 - I find that the 1 inside the first rehersal mark needs to be tweaked
 to the right a little to be visually centered,
 - The 10 looks unnatural and needs some kerning so the digits are as
 close as the digits in 20 and 30 are
 - The mark for the 2 and 20 would look better with more default
 padding as the lower left of the digit almost touches the surrounding
 circle.

 Steve



 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user



 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Hide the system start bar before a single context?

2014-08-17 Thread Trevor Bača
On Sun, Aug 17, 2014 at 5:05 AM, Pierre Perol-Schneider 
pierre.schneider.pa...@gmail.com wrote:

 Hi Trevor,

 2014-08-17 0:42 GMT+02:00 Trevor Bača trevorb...@gmail.com:



 I'm looking to remove the system start *bar* (rather than the start brace
 or bracket).


 Oups, wrong snippet, did not check well enough.. I thought of another one.
 How about something like :

 \version 2.19.11

 addStartBar = \markup {
   \hspace #-.9
   \lower #.95
   \override #'(thickness . 2)
   \draw-line #'(0 . 3.9)
   \hspace #.2
   \musicglyph #clefs.G
 }

 \score {
   
 
   \new Staff
 \with {
   \override Clef.stencil = #(lambda (grob)
 (grob-interpret-markup grob addStartBar))
 }
 {
   c'4 d' e' f'
 }
 
 \new Staff {
   c'4 d' e' f'
 }
 \new Staff
   \with {
 \override Clef.stencil = #(lambda (grob)
   (grob-interpret-markup grob addStartBar))
   }
   {
 c'4 d' e' f'
   }
   
   \layout {
 \context {
   \Score
   \omit SystemStartBar
 }
   }
 }




Hi Pierre,

Thanks very much. Pasting the system start bar in (as markup) on a
staff-by-staff basis works to restore the system start bar before selected
staves. But then the system start bar is missing *between* staves. Example
below.


%%% BEGIN %%%

\version 2.19.11

addStartBar = \markup {
  \hspace #-.9
  \lower #.95
  \override #'(thickness . 2)
  \draw-line #'(0 . 3.9)
  \hspace #.2
  \musicglyph #clefs.G
}

\new Score \with {
\omit SystemStartBar
} 
\new Staff {
  c'4 d' e' f'
}
\new StaffGroup 
\new Staff \with {
\override Clef.stencil = #(
lambda (grob) (grob-interpret-markup grob addStartBar)
)
}
{
c'4 d' e' f'
}
\new Staff \with {
\override Clef.stencil = #(
lambda (grob) (grob-interpret-markup grob addStartBar)
)
}
{
c'4 d' e' f'
}



%%% END %%%


But I really do appreciate seeing your thinking in these snippets; it's
definitely helping me work through possibilities.


Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Hide the system start bar before a single context?

2014-08-16 Thread Trevor Bača
Hi,

Is it possible to hide the system start bar before a single context (but
leave the system start bar present before all other contexts)?

Something like the (ineffective) override in the middle staff here ...

\version 2.19.11

\new Score 
\new Staff {
c'4 d'4 e'4 f'4
}
\new Staff \with {
\override Score.SystemStartBar.stencil = ##f
} {

c'4 d'4 e'4 f'4
}
\new Staff {
c'4 d'4 e'4 f'4
}


... is what I'm looking for.

Thanks,

Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Hide the system start bar before a single context?

2014-08-16 Thread Trevor Bača
On Sat, Aug 16, 2014 at 6:17 PM, Pierre Perol-Schneider 
pierre.schneider.pa...@gmail.com wrote:

 Hi,

 2014-08-16 23:27 GMT+02:00 Kieren MacMillan kieren_macmil...@sympatico.ca
 :

 Hi Trevor,

  Is it possible to hide the system start bar before a single context
 (but leave the system start bar present before all other contexts)?

 Worst-case, maybe make the shortInstrumentName a white box “of
 appropriate dimensions”?


 I did something like that few months ago :
 http://lsr.di.unimi.it/LSR/Item?id=910



Hi Pierre,

I'm looking to remove the system start *bar* (rather than the start brace
or bracket).

So I tried changing your ...

\alterBroken transparent #'(#t) SystemStartBrace

... to ...

\alterBroken transparent #'(#t) SystemStartBar

... but it didn't seem to have much of an effect.


Trevor.



-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Making staff-padding work in a custom marks context

2014-08-16 Thread Trevor Bača
 Staff_symbol_engraver % == this is new*
\consists Text_engraver
\consists Text_spanner_engraver
\consists Time_signature_engraver
\override MetronomeMark.X-extent = #'(0 . 0)
\override MetronomeMark.Y-extent = #'(0 . 0)
\override MetronomeMark.break-align-symbols = #'(left-edge)
\override MetronomeMark.extra-offset = #'(0 . 4)
\override MetronomeMark.font-size = 3
\override RehearsalMark.X-extent = #'(0 . 0)
\override RehearsalMark.Y-offset = -2.25
\override RehearsalMark.X-offset = 8
\override RehearsalMark.break-align-symbols = #'(time-signature)
\override RehearsalMark.break-visibility = #end-of-line-invisible
\override RehearsalMark.font-name = Didot
\override RehearsalMark.font-size = 10
\override RehearsalMark.outside-staff-priority = 500
\override RehearsalMark.self-alignment-X = #center
*\override StaffSymbol.transparent = ##t % == this is new*
\override TextScript.outside-staff-priority = 600
*\override TextScript.staff-padding = 8 % == now this is respected*
*\override TextSpanner.staff-padding = 8.75 % == now this is
respected*
\override TimeSignature.X-extent = #'(0 . 0)
\override TimeSignature.break-align-symbol = #'left-edge
\override TimeSignature.break-visibility = #end-of-line-invisible
\override TimeSignature.space-alist.clef = #'(extra-space . 0.5)
\override TimeSignature.style = #'numbered
\override VerticalAxisGroup.default-staff-staff-spacing = #'(
(basic-distance . 0)
(minimum-distance . 8)
(padding . 0)
(stretchability . 0)
)
}
\context {
\Staff
\remove Time_signature_engraver
}
\context {
\Score
\accepts TimeSignatureContext
\remove Mark_engraver
\remove Metronome_mark_engraver
}
}

\new Score 
\new TimeSignatureContext {
\time 2/4
\once \override TextSpanner.arrow-width = 0.25
\once \override TextSpanner.bound-details.left.stencil-align-dir-y
= -0.5
\once \override TextSpanner.bound-details.left.text = \markup {
\smaller
\general-align
#Y
#DOWN
\note-by-number
#2
#0
#1
\upright
 = 67.5
}
\once \override TextSpanner.bound-details.right.arrow = ##t
\once \override TextSpanner.bound-details.right.padding = 2
\once \override TextSpanner.bound-details.right.text = ##f
\once \override TextSpanner.dash-fraction = 0.25
\once \override TextSpanner.dash-period = 1.5
s1 * 2/4 \startTextSpan
\time 3/4
s1 * 3/4
\time 2/4
s1 * 2/4 \stopTextSpan ^ \markup {
\smaller
\general-align
#Y
#DOWN
\note-by-number
#2
#0
#1
\upright
 = 135
}
}
\new Staff {
\time 2/4
c'4
d'4
\time 3/4
c'4
d'4
e'4
\time 2/4
c'4
d'4
}


%%% END %%%

Output is included as example-2.png.

QUESTION: The one remaining problem now is that the system start bar is
visible at the beginning of the custom context (as shown in example-2.png).
Any ideas as to how hide the system start bar before the custom
TimeSignatureContext?

I've tried all sorts of overrides (and moving around
System_start_delimiter_engraver) and the presence of the system start bar
seems to be an all-or-nothing affair handled at the score level.

I've also tried lots of different ways of removing the
Staff_symbol_engraver (which nicely causes the system start bar to
disappear). But I'm absolutely stumped as to how to remove the
Staff_symbol_engraver and still get the markup and spanners to respect
staff-padding.


Thanks,

Trevor.




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Hide the system start bar before a single context?

2014-08-16 Thread Trevor Bača
On Sat, Aug 16, 2014 at 7:13 PM, Kieren MacMillan 
kieren_macmil...@sympatico.ca wrote:

 Hi Trevor,

 Have you looked at 
 http://lists.gnu.org/archive/html/lilypond-user/2012-06/msg00038.html ??



Hi Kieren,

Yup, read through that one earlier this afternoon. But the changes
(dashing) apply to the entire system start bar (for all staves) rather than
to a single staff. (I guess that makes sense because SystemStartBar lives
in the Score.)

As follow-up, I tried removing System_start_delimter_engraver from Score
and including it (with \consists) in the other lower-level contexts.
Explosions ensued ;)


Trevor.


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Aligning markup (rather than marks) to the left edge?

2014-08-15 Thread Trevor Bača
Hi,

I'm working on a piece with a lot accelerando and ritardando spanners.

I've built my own accelerando and ritardando spanners using text spanners.
Here's a more-or-less stripped down example that works pretty well:

%%% BEGIN %%%

\version 2.19.11
\language english


\new Staff {
\once \override TextSpanner.arrow-width = 0.25
\once \override TextSpanner.bound-details.left.text = \markup {
\smaller
\general-align
#Y
#DOWN
\note-by-number
#2
#0
#1
\upright
 = 67.5
}
\once \override TextSpanner.bound-details.right.arrow = ##t
\once \override TextSpanner.bound-details.right.padding = 2
c'2 \startTextSpan
d'2
e'2
f'2
g'2
a'2 \stopTextSpan ^ \markup {
\smaller
\general-align
#Y
#DOWN
\note-by-number
#2
#0
#1
\upright
 = 135
}
}

%%% END %%%


I'm actually pretty happy with the results shown above. (There's an
additional collection of overrides to the TextSpanner bound details that
make things look truly professional. I've omitted those here to keep the
example reasonable. If anyone wants the complete settings, just let me
know.)

QUESTION: the one remaining thing I'm looking for is some way to align the
start of the spanner to the *left edge of the page*. Is there any way to do
this?

By way of comparison, the break-alignable-interface gives exactly what I'm
looking for when I'm working with MetronomeMark objects ...

\override MetronomeMark.break-align-symbols = #'(left-edge)

... but it looks like TextScript and TextSpanner don't implement the
interface (which is understandable).

So is there some sort of something available to, say, anchor markup (as
opposed to marks) to the left edge of the page (instead of to a note head)?
Sounds like some type of manipulation to the parent of markup. But in many
years of using Lily I've never had cause to make that particular type of
adjustment.

Advice appreciated,

Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Odp: hotrizontal spacing question

2013-12-26 Thread Trevor Bača
On Mon, Dec 23, 2013 at 10:14 AM, Karol Majewski karo...@wp.pl wrote:

 Hi Eluze,

 now I have found that in my example it should be:

 \override Score.SpacingSpanner #'uniform-stretching = ##t

 insted of:

 \override SpacingSpanner #'uniform-stretching = ##t

 :)

 Now, uniform-stretching appears to be the right solution.



Agreed: turning on proportional notation should always be done with setting
the SpacingSpanner's uniform-stretching attribute to true. (And, as Karol
found out, the SpacingSpanner lives in the Score context.) This combination
of settings has spaced the notes of hundreds of polyrhythms for me exactly.

Trevor.


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Ferneyhough-style Interruptive Polyphony

2013-12-02 Thread Trevor Bača
This is incredibly impressive.

Piaras's implementation of an allow-interrupt-engraver provides a more or
less drop-in solution for this difficult technique.

From the .ly attachment:

  \new Staff \with {
 \consists #allow-interrupt-engraver
  }


What're are the chances that an Allow_interrupt_engraver could be added to
the official distribution?


Trevor.


On Mon, Nov 4, 2013 at 4:50 PM, Piaras Hoban phoba...@gmail.com wrote:

 Hi list,

 A few weeks back I posted seeking a little help in implementing one of the
 more peculiar notational devices of Brian Ferneyhough, namely 'interruptive
 polyphony'.

 I've managed to find a way to implement these automatically and wanted to
 share the code in case anyone in future is looking to do something similar
 or could find it helpful otherwise.

 Attached is the first measure of Ferneyhough's Terrain. Would be
 interesting
 to compare fully with original score as lilypond's time-keeping seems a tad
 more accurate than the original... :-)

 best wishes,

 piaras hoban

 interruptive-polyphony.ly
 
 http://lilypond.1069038.n5.nabble.com/file/n153387/interruptive-polyphony.ly
 

 interruptive-polyphony.png
 
 http://lilypond.1069038.n5.nabble.com/file/n153387/interruptive-polyphony.png
 



 --
 View this message in context:
 http://lilypond.1069038.n5.nabble.com/Ferneyhough-style-Interruptive-Polyphony-tp153387.html
 Sent from the User mailing list archive at Nabble.com.

 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: line breaks within beamed tuplets

2012-03-20 Thread Trevor Bača
On Sun, Mar 11, 2012 at 7:51 AM, Peter O'Doherty m...@peterodoherty.netwrote:

 On 03/11/2012 11:42 AM, m...@apollinemike.com wrote:

 On Mar 11, 2012, at 11:40 AM, Peter O'Doherty wrote:

  Hi,
 Another question concerning tuplets:

 \remove Forbid_line_break_engraver
 \override Beam #'breakable = ##t

  Try adding:

 \override TupletBracket #'breakable = ##t

 Cheers,
 MS


  Sorry, that doesn't work. Still getting

 warning: forced break was overridden by some other event, should you be
 using bar checks?



Hi Peter,

I think somewhere earlier in the thread it was mentioned that
Forbid_line_break_engraver lives in the *Voice* context (and not in the
Staff or Score contexts).

So this does this what you want:


\version 2.15.34

upper =  {
 \clef treble
 \time 4/8
 c'8 c'8 c'8 c'8
 c'8 c'8 c'8 c'8
 c'8 c'8 c'8 c'8
 c'8 c'8 c'8 c'8
}

lower =  {
 \clef bass
 \times 4/5 { c8[ c8 c8 c8 c8] }
 \times 5/6 { c8[ c8 c8 c8 c8 \bar  \break c8] }
 \times 3/4 { c8[ c8 c8 c8] }
 \times 4/5 { c8 c8 c8 c8 c8 }
}

\score {
 \new PianoStaff 
   \new Staff = upper \upper
   \new Staff = upper \lower

 \layout {
 \context {
  \Score
   \override Beam #'breakable = ##t
}
 \context {
\Voice
\remove Forbid_line_break_engraver
}
}
}



HTH,

Trevor.


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Controlling horizontal bracket start position after a line break?

2011-09-13 Thread Trevor Bača
Hi,

I'm using horizontal brackets in some sketches I'm doing right now. (And the
fact that the brackets nest is proving very useful indeed.)

A simplified example looks like this:

%%% BEGIN %%%

\version 2.15.11

\layout { ragged-right = ##t }

\new Voice \with {
\consists Horizontal_bracket_engraver
} {
c'1 \startGroup
d'1 \break
e'1
f'1 \stopGroup
}

%%% END %%%


This is good, with one exception:

The output attached shows that -- following a line break -- the resumption
of the horizontal bracket begins *left of the staff*.


Question: is it possible to align the resumption of the horizontal bracket
with the left edge of the first note head of the system?

(That is, in this example, with the left edge of the e'1?)


Trevor.

-- 
Trevor Bača
trevorb...@gmail.com
attachment: horizontal-bracket-example.png___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: New LilyPond tutorial

2011-08-23 Thread Trevor Bača
On Tue, Aug 23, 2011 at 8:00 PM, Urs Liska lilyp...@ursliska.de wrote:

 **
 Hello list,

 I have just put a new tutorial online. You can read it at
 http://www.ursliska.de/73.0.html

 It is meant for intermediate beginners who want to go for some more complex
 tasks and are as confused with LilyPond as I was not long ago.

 I'd give it a version number of 0.8.
 So any constructive feedback is welcome.
 Comments that arent' interesting for the public (linguistic details for
 example) please privately, LilyPond related comments on the list.



Hi Urs,

The tutorial is beautifully laid out and expertly explained. Thanks very
much for putting this together. I'll keep it in my list of LilyPond links to
send to friends and newcomers to the system.


Trevor.


-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Cowell/Ferneyhough Unconventional Meters

2011-07-19 Thread Trevor Bača
I use this combination of semantic 'nonbinary' time signature (here 2/10)
with \scaleDurations in my own scores rather a lot. It works great.

(Also the best solution if you're using proportional notation because all
notes, rests, chords continue to consume the amount of horizontal space that
they should.)

It might also be worth pointing out that two competing interpretations of
these 'nonbinary' time signatures have developed in the literature over the
past couple of decades: what we might call the 'Ferneyhough' and the
'Sciarrino' interpretations, respectively.

Ferneyhough's usage is as Joey describes and basically works by allowing the
10 in 2/10 to effect a 4/5 diminution of the notes, rests, chords governed
by the time signature. (How does one extract 4/5 from 10? By dividing out
all integer powers of 2 from the prime factors of 10 and then inserting this
value -- call it n -- in a multiplier of the form m/n, with m defined equal
to the greatest integer power of 2 *less than* n. Here, for example, we see
that 10 = 2 * 5; we remove the 2 and find n = 5; the greatest integer power
of 2 less than 5 is 4; so m/n = 4/5 which is exactly the prolational scaling
value of the 10 in 2/10. A second example could be the time signature 5/18,
the denominator of which is 18 = 2 * 3 * 3, which gives n = 3 * 3 = 9 and
m/n = 8/9, which is the value by which notes, rests, chords in a measure of
5/18 will be time-scaled under this first interpretation of such meters.)

Sciarrino's (and many others') usage essentially interprets meters like 2/10
and 5/18 as indicating the amount of musical time a bar is to consume
*without* attributing any time-scaling power to the time signatures in
question. (Partial or 'broken') tuplets then need to be added explicitly to
make the time values of notes, rests and chords calculate correctly. This is
the interpretation of such meters under which Joseph originally proposed to
answer Joey's question.

The two ways of interpreting these time signatures are incompatible. AFAICT
the 'Sciarrino' interpretation is used by many more composers now than is
the 'Ferneyhough' interpretation. But Ferneyhough is certainly the best
known exemplar of the technique.


Trevor.





On Tue, Jul 5, 2011 at 6:26 AM, Urs Liska li...@ursliska.de wrote:

 **
 Probably Joey doesn't want to use \time 4/5 but to scale durations.
 I adjusted your example a little bit so one sees better what happens:

 {
 \time 2/10
 \times 4/5 { c'8 c'8 } \bar ||

 % \scaleDurations scales without tuplet numbers or brackets
 \scaleDurations #'(4 . 5) { c'8 c'8 c'8 c'8 } \bar ||

 % I put a few bars of straight eighths to show what happens
 c'8 c' c' c' c' c' c' c'
 }

 Best
 Urs



 Am 05.07.2011 11:45, schrieb Joseph Wakeling:

 On 07/05/2011 08:57 AM, m...@apollinemike.com wrote:

  On Jul 5, 2011, at 8:29 AM, Joey wrote:


  In Ferneyhough's etudes transcendentales,
 he employs meters such as 2/12 or 2/10,
 acting as literal subdivisions of the semi-breve.

  The easiest way would be to create an override for the time signature 
 stencil:

  No, you don't need to be so complicated. :-)

 Just put

   \time 2/10

 Lilypond will give you a _warning_ that this is a non-standard time
 signature, but it can handle the time signature and will produce a
 corresponding bar of two quintuplet-eighths in length.

 N.B. you _will_ need to put in place

   \times 4/5 {}

 around the content of any such bar in order to ensure that quintuplets
 are your base content type.

 Try giving Lilypond the following:

 {
 \time 2/10
 \times 4/5 { c'8 c'8 }
 c'8 c'8
 }

 ... and compare what happens in the first and second bar.

 ___
 lilypond-user mailing 
 listlilypond-user@gnu.orghttps://lists.gnu.org/mailman/listinfo/lilypond-user




 ___
 lilypond-user mailing list
 lilypond-user@gnu.org
 https://lists.gnu.org/mailman/listinfo/lilypond-user




-- 
Trevor Bača
trevorb...@gmail.com
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


  1   2   3   4   5   6   >