Re: Output PDF to stdout

2024-01-05 Thread Volodymyr Prokopyuk
Thank you very much for your thoughts!

I expected that the PDF output to stdout would be difficult to implement
due to multiple Lilypond backends, and, probably, is not a real bottleneck
in PDF generation. It is nice to know that intermediary files are already
handled by a FS cache, and can be externally optimized by using a RAM disk.

Thank you,
Vlad

On Fri, Jan 5, 2024 at 4:46 AM David Wright 
wrote:

> On Thu 04 Jan 2024 at 23:34:28 (+0100), Volodymyr Prokopyuk wrote:
> >
> > I know that lilypond can receive a source.ly file from the stdin by
> > using lilypond
> > -. Is it possible for lilypond to output PDF to the stdout?
> >
> > My motivation behind using lilypond in a pipeline is to speed up PDF
> > generation by avoiding storing intermediary files on disk. The pipeline
> I'd
> > like to implement is
> > cat source.ly | lintLy | lilypond - | optimizePDF > score.pdf
> > Currently lilypond engraves PDF on disk, so a PDF optimizer has to read,
> > optimize, and substitute PDF on disk.
>
> You could create a RAM disk to hold your intermediate files,
> something along the lines of:
>
>Ramdir="/dev/shm/${FUNCNAME[0]}$(printf '%(%s)T' -1)"
>  $ mkdir -p "$Ramdir"
>
> The first line (which I run in a bash function, for a quite different
> purpose) creates a pseudounique but recognizable name, and the second
> line creates the directory.
>
> Cheers,
> David.
>


Re: build a specific stable lillypond version with git

2024-01-05 Thread Jonas Hahnfeld via LilyPond user discussion
On Thu, 2024-01-04 at 22:33 +0100, David Kastrup wrote:
> CX  writes:
> 
> > Is it possible to build a specific stable lillypond version with sources
> > retrieved by git clone instead of a source tarball download?
> > If it is possible how can you do this (because I can not find the
> > documentation to do it)?
> 
> The README in the repository references
> 
> 
> Have you checked it?
> 
> In particular, setting it up from a clone appears to be described in
> 

To add to this, the source tarballs each correspond to a specific
commit in the repository. The exact hash is documented in the RELEASE-
COMMIT file in the tarball, and also published as a git tag in the
repository. Since around two years the tags follow the naming scheme
v2.x.y, for example v2.24.3 for the latest stable release. Before that
the format was release/2.x.y-1, ie release/2.22.2-1 for the last
release of the 2.22 series. In addition to that, there are the
stable/2.x *branches*, which at least at the time of writing correspond
to the latest release from the respective series. But keep in mind they
may be ahead with additional fixes while a release is prepared.

Hope this helps,
Jonas


signature.asc
Description: This is a digitally signed message part


Manually control note spacing?

2024-01-05 Thread Robert Hickman
Hi,

I'm trying to make an example showing mordent symbols with text
labels. I want the note positions spaced so that the text is all on
one line, with notes placed as needed to fit around it.

The easiest way I can think of doing that would be to put manually
sized 'gap fillers' between the notes which is something I often do in
LaTeX, but I can't find any way of doing that in lilypond - it only
seems possible to change spacing globally?

\version "2.18.2"

\header {tagline = ""}
{
\numericTimeSignature
\time 4/4
a'4\mordent^"Mordent"
a'4\upmordent^"Upper Mordent"
   a'4\downmordent^"Lower Mordent"
}



Re: Manually control note spacing?

2024-01-05 Thread Phil Holmes

Checkout \textLengthOn and see if it does what you want.

On 05/01/2024 14:50, Robert Hickman wrote:

Hi,

I'm trying to make an example showing mordent symbols with text
labels. I want the note positions spaced so that the text is all on
one line, with notes placed as needed to fit around it.

The easiest way I can think of doing that would be to put manually
sized 'gap fillers' between the notes which is something I often do in
LaTeX, but I can't find any way of doing that in lilypond - it only
seems possible to change spacing globally?

\version "2.18.2"

\header {tagline = ""}
{
 \numericTimeSignature
 \time 4/4
 a'4\mordent^"Mordent"
 a'4\upmordent^"Upper Mordent"
a'4\downmordent^"Lower Mordent"
}






Re: Manually control note spacing?

2024-01-05 Thread Lukas-Fabian Moser via LilyPond user discussion

Hi Robert,


I'm trying to make an example showing mordent symbols with text
labels. I want the note positions spaced so that the text is all on
one line, with notes placed as needed to fit around it.

The easiest way I can think of doing that would be to put manually
sized 'gap fillers' between the notes which is something I often do in
LaTeX, but I can't find any way of doing that in lilypond - it only
seems possible to change spacing globally?

\version "2.18.2"

\header {tagline = ""}
{
 \numericTimeSignature
 \time 4/4
 a'4\mordent^"Mordent"
 a'4\upmordent^"Upper Mordent"
a'4\downmordent^"Lower Mordent"
}


There's a dedicated feature for this: just issue \textLengthOn.

Since this doesn't guarantee equal Y position of the text scripts, I 
usually handle situations like these by putting my text elements in a 
Lyrics context, which has all the right features.


\version "2.18.2"

\layout {
  %%% uncomment for better spacing:
  % \override LyricText.extra-spacing-width = #'(-1 . 1)
}

<<
  \new Lyrics \lyricmode {
    "Mordent"4
    "Upper Mordent"
    "Lower Mordent"
  }
  \new Staff {
    \numericTimeSignature
    \time 4/4
    a'4\mordent
    a'4\upmordent
    a'4\downmordent
  }
>>

And: If you have any chance, I'd encourage you to update LilyPond to a 
more current version. LilyPond has experienced huge improvements since 
2.18.2 (which admittedly was the official stable version for quite some 
time).


Lukas




Re: Manually control note spacing?

2024-01-05 Thread Robert Hickman
Hi Phill, that mostly works, thank you for your help. However the text
isn't vertically aligned, and the text blocks are too close together.
The documentation mentions 'staff-padding' in regards to the first
issues, but doesn't say how to actually set that.  'Neither
Staff.padding' or 'Text.padding' do anything. 'Script.padding' also
changes the placement of the articulation symbols.

\version "2.18.2"

\header {tagline = ""}
{
\numericTimeSignature
\textLengthOn
\override Text.padding = #3
\time 4/4
a'4\mordent^"Mordent"
a'4\upmordent^"Upper Mordent"
   a'4\downmordent^"Lower Mordent"
}

On Fri, 5 Jan 2024 at 15:02, Phil Holmes  wrote:
>
> Checkout \textLengthOn and see if it does what you want.
>
> On 05/01/2024 14:50, Robert Hickman wrote:
> > Hi,
> >
> > I'm trying to make an example showing mordent symbols with text
> > labels. I want the note positions spaced so that the text is all on
> > one line, with notes placed as needed to fit around it.
> >
> > The easiest way I can think of doing that would be to put manually
> > sized 'gap fillers' between the notes which is something I often do in
> > LaTeX, but I can't find any way of doing that in lilypond - it only
> > seems possible to change spacing globally?
> >
> > \version "2.18.2"
> >
> > \header {tagline = ""}
> > {
> >  \numericTimeSignature
> >  \time 4/4
> >  a'4\mordent^"Mordent"
> >  a'4\upmordent^"Upper Mordent"
> > a'4\downmordent^"Lower Mordent"
> > }
> >
> >
>



Re: Manually control note spacing?

2024-01-05 Thread Robert Hickman
Don't worry, found out how to do it:

\version "2.18.2"

\header {tagline = ""}
{
\numericTimeSignature
\textLengthOn
\override Staff.padding = #3
\time 4/4
a'4\mordent -\tweak staff-padding #4 ^"Mordent"
a'4\upmordent -\tweak staff-padding #4 ^"Upper Mordent"
   a'4\downmordent -\tweak staff-padding #4 ^"Lower Mordent"
}

On Fri, 5 Jan 2024 at 15:35, Robert Hickman  wrote:
>
> Hi Phill, that mostly works, thank you for your help. However the text
> isn't vertically aligned, and the text blocks are too close together.
> The documentation mentions 'staff-padding' in regards to the first
> issues, but doesn't say how to actually set that.  'Neither
> Staff.padding' or 'Text.padding' do anything. 'Script.padding' also
> changes the placement of the articulation symbols.
>
> \version "2.18.2"
>
> \header {tagline = ""}
> {
> \numericTimeSignature
> \textLengthOn
> \override Text.padding = #3
> \time 4/4
> a'4\mordent^"Mordent"
> a'4\upmordent^"Upper Mordent"
>a'4\downmordent^"Lower Mordent"
> }
>
> On Fri, 5 Jan 2024 at 15:02, Phil Holmes  wrote:
> >
> > Checkout \textLengthOn and see if it does what you want.
> >
> > On 05/01/2024 14:50, Robert Hickman wrote:
> > > Hi,
> > >
> > > I'm trying to make an example showing mordent symbols with text
> > > labels. I want the note positions spaced so that the text is all on
> > > one line, with notes placed as needed to fit around it.
> > >
> > > The easiest way I can think of doing that would be to put manually
> > > sized 'gap fillers' between the notes which is something I often do in
> > > LaTeX, but I can't find any way of doing that in lilypond - it only
> > > seems possible to change spacing globally?
> > >
> > > \version "2.18.2"
> > >
> > > \header {tagline = ""}
> > > {
> > >  \numericTimeSignature
> > >  \time 4/4
> > >  a'4\mordent^"Mordent"
> > >  a'4\upmordent^"Upper Mordent"
> > > a'4\downmordent^"Lower Mordent"
> > > }
> > >
> > >
> >



Re: Manually control note spacing?

2024-01-05 Thread Kieren MacMillan
Hi Robert,

> Don't worry, found out how to do it:
> 
> \version "2.18.2"
> \header {tagline = ""}
> {
>\numericTimeSignature
>\textLengthOn
>\override Staff.padding = #3
>\time 4/4
>a'4\mordent -\tweak staff-padding #4 ^"Mordent"
>a'4\upmordent -\tweak staff-padding #4 ^"Upper Mordent"
>   a'4\downmordent -\tweak staff-padding #4 ^"Lower Mordent"
> }

I don’t think the \override is doing what you think/hope it’s doing…?

Anyway, while the \tweak approach does the job, this might be more efficient:

\version "2.18.2"

\header {
  tagline = ##f
}

{
   \numericTimeSignature
   \textLengthOn
   \override TextScript.staff-padding = #4
   \time 4/4
   a'4\mordent ^"Mordent"
   a'4\upmordent ^"Upper Mordent"
   a'4\downmordent ^"Lower Mordent"
}

Note also that I changed your tagline = "" to tagline = ##f, so that it truly 
takes up no space.

Hope this helps!
Kieren.


Re: Manually control note spacing?

2024-01-05 Thread Robert Hickman
This is great, thank you so much!

On Fri, 5 Jan 2024 at 15:53, Kieren MacMillan
 wrote:
>
> Hi Robert,
>
> > Don't worry, found out how to do it:
> >
> > \version "2.18.2"
> > \header {tagline = ""}
> > {
> >\numericTimeSignature
> >\textLengthOn
> >\override Staff.padding = #3
> >\time 4/4
> >a'4\mordent -\tweak staff-padding #4 ^"Mordent"
> >a'4\upmordent -\tweak staff-padding #4 ^"Upper Mordent"
> >   a'4\downmordent -\tweak staff-padding #4 ^"Lower Mordent"
> > }
>
> I don’t think the \override is doing what you think/hope it’s doing…?
>
> Anyway, while the \tweak approach does the job, this might be more efficient:
>
> \version "2.18.2"
>
> \header {
>   tagline = ##f
> }
>
> {
>\numericTimeSignature
>\textLengthOn
>\override TextScript.staff-padding = #4
>\time 4/4
>a'4\mordent ^"Mordent"
>a'4\upmordent ^"Upper Mordent"
>a'4\downmordent ^"Lower Mordent"
> }
>
> Note also that I changed your tagline = "" to tagline = ##f, so that it truly 
> takes up no space.
>
> Hope this helps!
> Kieren.



2.24.3 error: Guile... (let ((book-handler (if (defined? 'default-toplevel-book-handler)

2024-01-05 Thread Mike Kilmer
Hi, all.

Happy new year.

Upgraded Lilypond today via homebrew (OSX 13.5.2 Ventura)

Getting error:

```
GNU LilyPond 2.24.3 (running Guile 3.0)
Processing `test.ly'
Parsing...
Interpreting music...
Preprocessing graphical objects...
Finding the ideal number of pages...
Fitting music on 1 page...
Drawing systems...
Converting to `test.pdf'...
warning: `(gs -q -dNODISPLAY -dNOSAFER -dNOPAUSE -dBATCH 
-dAutoRotatePages=/None -dPrinted=false 
/var/folders/6x/1jtnwm815415bccq7hd68fvhgn/T//lilypond-tmp-4670731)' failed 
(256)

/usr/local/Cellar/lilypond/2.24.3/share/lilypond/2.24.3/ly/init.ly:65:2: error: 
Guile signaled an error for the expression beginning here
#
 (let ((book-handler (if (defined? 'default-toplevel-book-handler)
Throw to key `ly-file-failed' with args `()'.
```

Running test file:

\version "2.24.3"
{
  c' e' g' e'
}

Any thoughts, suggestions?

Thanks much.

Mike


how to install lilypond version on linux (ubuntu 22.04)

2024-01-05 Thread CX
I managed to build a specific stable lilypond version for my linux distro
(Ubuntu 22.04). Because I can not find the wright documentation on this
subject, I like to know how can I install the generated build files from my
build directory on my linux distro. When I try to install my build with
“sudo make install” I get a error about missing about a target rule. How
can I install my build manually?
Please help.
Best regards
Claude


Re: how to install lilypond version on linux (ubuntu 22.04)

2024-01-05 Thread Werner LEMBERG

> I managed to build a specific stable lilypond version for my linux
> distro (Ubuntu 22.04).  Because I can not find the wright
> documentation on this subject, I like to know how can I install the
> generated build files from my build directory on my linux distro.
> When I try to install my build with “sudo make install” I get a
> error about missing about a target rule.  How can I install my build
> manually?

The complete compilation and installation instructions can be found at

  https://lilypond.org/doc/v2.24/Documentation/contributor/compiling


Werner