Re: TextScript baseline in Dynamics context

2019-12-27 Thread Stefano Troncaro
Hi Kieren, I was not aware of that function. Thank you for sharing it and
thank you Harm for coding it!

El vie., 27 dic. 2019 a las 16:24, Kieren MacMillan (<
kieren_macmil...@sympatico.ca>) escribió:

> Hi Paul,
>
> > is "custdyn" already in Lily or did you define it somewhere?
>
> Harm built it (see, e.g.,
> https://lists.gnu.org/archive/html/lilypond-user/2019-09/msg00159.html),
> but I changed the name of the function in my own include file(s).
>
> Hope that helps!
> Kieren.
> 
>
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
>
>
>


Lilypond/Frescobaldi on Catalina using Docker

2019-12-27 Thread Saul Tobin
Hi all,

I've come to the conclusion that the best workaround for the lack of 64-bit
builds on Mac and Windows is to run Lilypond in a Docker container. Based
on the number of Lilypond images on Docker Hub, it would seem I'm fairly
late to this party, though if it's been discussed on the user mailing list,
I missed it.

Based on the helpful guide here
https://kylebaldw.in/posts/2019/running-lilypond-on-catalina/, I have
64-bit Lilypond working from Frescobaldi on MacOS Catalina. You can get my
scripts and Dockerfiles on Github:
https://github.com/shevvek/lilypond-docker. The images themselves are on
Docker Hub.

When I have a chance, my thought is that the same principle should also
work on Windows with suitable batch files.

I hope that official 64-bit builds for both stable and development will
become available for all platforms, but in the meantime hopefully others
will find this Docker approach helpful.

Happy holidays,

Saul


Re: Quoted text in markup line

2019-12-27 Thread David Kastrup
Simon Albrecht  writes:

> On 27.12.19 19:52, Kieren MacMillan wrote:
>> I always prefer typographer’s quotes
>>
>>  \markup \line { "“like this”" }
>>
>> and it’s a bonus that they can be stored right in the code/file
>> without any extra fuss.  =)
>
>
> That is, even the ‘programming quotes’ in the code example by Kieren
> wouldn’t be necessary.

"“like this”" is one word, “like this” are two words.  That's important
in lyrics mode and in some other respects like line-wrapping.

-- 
David Kastrup



Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread mason
On 12/28, Simon Albrecht wrote:
> I happen to have a little problem with that as well; here on my Ubuntu
> 16.04 machine neither apt nor synaptic can find any variation of
> qtwebengine5. There are several variations of webkit or so, but that’s
> probably something different, right? What can I do?

The first version of Ubuntu to package qtwebengine was 18.04 Bionic.[1]
Is upgrading an option for you, or do you need to stick with 16.04?

Mason

[1]
https://packages.ubuntu.com/search?keywords=qtwebengine=sourcenames


signature.asc
Description: PGP signature


Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Michael Gerdau
> Frescobaldi 3.1 has been released! There are many new features.

Well done folks and thanks for the continued effort!

[release notes snipped]

> Please give packagers some time to prepare Windows/MacOSX installers,
> they will be announced when ready.

I tried to give it a go under Windows anyway - following the notes in INSTALL - 
but there are quite a few obstacles:
- PyQt5-5.14.0 (the version chosen by pip on my box) does not seem to include 
QtWebKitWidgets
- I have not found binaries of either Poppler or python-poppler-qt5. Would 
these need to be build from the sources? (just asking before I embark on that 
journey)

Kind regards,
Michael
-- 
Michael Gerdau email: m...@qata.de
GPG-keys available on request or at public keyserver



Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Simon Albrecht

On 27.12.19 17:10, Kevin Cole wrote:


If I'm installing on my machine, do I need QtWebEngine? (I can't
find that through Ubuntu Software, either.)


As to the Qt stuff, I find using synaptic ("sudo apt install 
synaptic") a bit more helpful than the Ubuntu Software installer. 
Slightly less friendly, but a hell of a lot more informative. For 
example, searching synaptic for "qtweb" reveals "libqt5webengine5" 
among other things.  That's what you would want, if you don't already 
have it.



I happen to have a little problem with that as well; here on my Ubuntu 
16.04 machine neither apt nor synaptic can find any variation of 
qtwebengine5. There are several variations of webkit or so, but that’s 
probably something different, right? What can I do?


Best, Simon




Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Simon Albrecht

Dear Frescobaldi devs,

that sounds absolutely great and I chime into thanking you a lot for 
this great software!


Best, Simon

On 27.12.19 11:20, Wilbert Berendsen wrote:

Dear Friends,

Frescobaldi 3.1 has been released! There are many new features.

Most notably:

- A new Fonts dialog to select fonts for text, and with more recent
   LilyPond versions, also for music.

- The Music View is completely rewritten under the hood. New
   possiblities:

   * Copy selected music to PDF, SVG or EPS in addition to PNG and JPG.

   * Zoom much deeper than ever before: thanks to tile-based rendering
 the Music View can zoom in virtually unlimited.

   * New layout modes: horizontal/vertical, continuous/non continuous,
 rotation, etc.

And there are many other little feature improvements and bug fixes.
Lastly, many improvements under the hood pave the way for new exiting
future possibilities, such as good multicore compile support, and
support for much more file formats in the Manuscript viewer etc.

I am very grateful to many co-developers that now contribute on a
regular basis: Urs Liska, Peter Bjuhr, and many others.

See all changes in the ChangeLog:
https://github.com/frescobaldi/frescobaldi/blob/master/ChangeLog

Download the source tarball at:
https://github.com/frescobaldi/frescobaldi/releases

Please give packagers some time to prepare Windows/MacOSX installers,
they will be announced when ready.

Note that Frescobaldi is now part of the GitHub organisation with the
same name :-) to reflect that I'm certainly not the only one managing
this project :-)

Note to distributors and users of a git checkout: the MO (Message
Object) files with the translations are not in git anymore, but they are
built manually before packaging a source tarball.See INSTALL. When
installing from the source tarball it is not needed to build the MO
files.

Other notes:

- A recent version of the poppler library is needed to make vector
   graphics drawing and copying in the Music View work well.

- Frescobaldi does not use QtWebkit anymore, but instead now depends on
   QtWebEngine and its related modules.

Thanks to ALL the translators and contributors!
Enjoy!
Merry Christmas and happy new year!

|_|  .  |) |) \./
| | /-\ |  |   |
' ''   ''  ''
  . .  _ |  |
  |\| |- \/\/
  ' '  ~
\./  _  .  |)
  |  |- /-\ |\
  '   ~'   '' '






Re: Quoted text in markup line

2019-12-27 Thread Simon Albrecht

On 27.12.19 19:52, Kieren MacMillan wrote:

I always prefer typographer’s quotes

 \markup \line { "“like this”" }

and it’s a bonus that they can be stored right in the code/file without any 
extra fuss.  =)



That is, even the ‘programming quotes’ in the code example by Kieren 
wouldn’t be necessary.


How best to input typographer’s quotes depends on your setup (keyboard 
layout, editor, OS…).


Best, Simon




Re: TextScript baseline in Dynamics context

2019-12-27 Thread Kieren MacMillan
Hi Paul,

> is "custdyn" already in Lily or did you define it somewhere?

Harm built it (see, e.g., 
https://lists.gnu.org/archive/html/lilypond-user/2019-09/msg00159.html), but I 
changed the name of the function in my own include file(s).

Hope that helps!
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: TextScript baseline in Dynamics context

2019-12-27 Thread Paul Scott
Kieren, I don't have the rest of this thread but is "custdyn" already in Lily 
or did you define it somewhere?

Thank you,

Paul

On Dec 27, 2019, at 11:55 AM, Kieren MacMillan  
wrote:

> Hi Daniel,
> 
>> I mean, that is a possibility, but it’s pretty labor-intensive.
> 
> Not if you already have the function made up.  ;)
> 
> I just write
> 
>   d'4\custdyn "{} screeching"
> 
> and everything aligns itself perfectly.
> 
>> This should be a feature of, at the very least, the Dynamics context, IMHO.
> 
> That might be a nice feature, for sure. Thanks for submitting the request!
> 
> Best,
> Kieren.
> 
> 
> Kieren MacMillan, composer (he/him/his)
> ‣ website: www.kierenmacmillan.info
> ‣ email: i...@kierenmacmillan.info
> 
> 
> 





Re: TextScript baseline in Dynamics context

2019-12-27 Thread Kieren MacMillan
Hi Daniel,

> I mean, that is a possibility, but it’s pretty labor-intensive.

Not if you already have the function made up.  ;)

I just write

   d'4\custdyn "{} screeching"

and everything aligns itself perfectly.

> This should be a feature of, at the very least, the Dynamics context, IMHO.

That might be a nice feature, for sure. Thanks for submitting the request!

Best,
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: Quoted text in markup line

2019-12-27 Thread Kieren MacMillan
Hi Mike,

I always prefer typographer’s quotes

\markup \line { "“like this”" }

and it’s a bonus that they can be stored right in the code/file without any 
extra fuss.  =)

Hope that helps!
Kieren.


Kieren MacMillan, composer (he/him/his)
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info




Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Urs Liska

Hi Ralph,

Frescobaldi 3.1 will *eventually* end up in the repositories of the 
various distributions, but that's beyond our control.


On Ubuntu 18.04 it is very simple to "install" Frescobaldi directly from 
the Git repository. The section "Step-by-step Instructions" on 
https://github.com/frescobaldi/frescobaldi/wiki/Run-Frescobaldi-3-on-Linux 
should quickly walk you through the process. Depending on the Desktop 
you have the section "Menu or Desktop Starter" should work too to get 
you the usual Desktop experience.


This would allow you to regularly update Frescobaldi without waiting for 
new releases. And it would enable you to do feature testing when new 
stuff is available.


HTH
Urs

Am 27.12.19 um 16:25 schrieb Kevin Cole:



On Fri, Dec 27, 2019 at 9:50 AM Ralph Palmer 
mailto:palmer.r.vio...@gmail.com>> wrote:


I confess that I'm a bit of a novice regarding installation via
tarball.

I'm running Ubuntu 18.04.3 LTS.

I cannot find Frescobaldi 3.1 in my Ubuntu Software app.

I downloaded the tarball, but I'm unsure where to put it and/or
extract it. I tried putting it in its own directory in my /home
directory, then extracting it there, but I still cannot figure out
how to install it, even after reading the install file. I would
greatly appreciate some further advice about how, what, and where
I need to install Frescobaldi 3.1 and associated required files.
For example, do I need to separately download and install Python
3.8.1? If I'm installing on my machine, do I need QtWebEngine? (I
can't find that through Ubuntu Software, either.) Or should I wait
until the Ubuntu Software application recognizes Frescobaldi 3.1?

(I *am* trying to learn Linux from the command line, but it takes
a while and my elderly brain is slow on the uptake.)


Hi,

The basics:

A tarball is like a zip file. What I usually do from the command line:

tar tzvf frescobaldi-3.1.tar.gz | less

That will show what's in the tarball without extracting anything. 
(t=test, z=compress and decompress with gzip, v=be verbose, f=the 
following is the name of the file to act upon). The "| less" on the 
end makes sure that it doesn't scroll off the screen faster than you 
can read. (I actually use "| most" but that requires you to "sudo apt 
install most" first.) Cursor up and down through the list to get an 
idea about where it will put all those files. Sometimes (rarely) 
packagers will do something silly, like not putting all the files to 
be unpacked in their own subdirectory. So, when you unpack, it 
clutters up whatever directory you're in. Being able to test first, 
will help you determine if you need to create a subdirectory yourself, 
and move the tarball into it before unpacking. Once you're satisfied 
that the tarball is "sane", type "q" to quit either "less" or "most". 
(In this case you will see that the tarball is sane: The tarball will 
create a subdirectory "frescobaldi-3.1/" with all the files.  So, to 
actually unpack, change the "t for test" to "x for extract":


tar xzvf frescobaldi-3.1.tar.gz

In the tarball you'll find a file named INSTALL.  Read it to get the 
"lowdown" on how to manually install it on your system. You will also 
find that file at:


https://github.com/frescobaldi/frescobaldi/blob/master/INSTALL
Hope that helps.

-- 
Ralph Palmer

Brattleboro, VT
USA
(he, him, his)
palmer.r.vio...@gmail.com 


P.S. I have a musically-inclined, technically-inclined buddy in Barre, 
VT who on occasion wanders south to Brattleboro. A bit of a wild man, 
Paul "Hurricane" Flint, as I like to call him. He's the "proprietor" 
of http://bosivt.org/ and http://docbox.flint.com:8081/geekland which 
he believes to be sanely organized. ;-) And host of the Monday night 
Linux "Adult Swim" every week.



--
Physical
[Photo: Kevin Cole]
Kevin Cole, RHCE 
@ubuntourist
Brain-Washington, DC (US)



Re: Quoted text in markup line

2019-12-27 Thread Mike Kilmer
Thank you and apologies for inadvertently hijacking a thread.

Peace.

> On Dec 27, 2019, at 11:55 AM, David Kastrup  wrote:
> 
> 
> Please do _not_ reply to other posts when creating a new topic.  Your
> mail client creates headers associating that mail with the thread which
> you replied to, making a mess of the thread display for most people.
> 
> Mike Kilmer  writes:
> 
>> Not finding an example in the docs 
>> .
>> 
>> Can someone tell me how to include “quoted text” in `\markup { \line { 
>> \”like this\”? }}`?
>> 
>> \version "2.18.2"
>> 
>> \header {
>>  title = "Quotes in Markup Line"
>> }
>> 
>> 
>> \markup {
>>\column {
>>\line { \null }
>>\line { Single quotes are easy, like 'this'. }
>>\line { I want double quotes. }
>>\line { This creates no "quotes". }
>>  \line { This doesn't \"Work\".  }
>>  \line { Neither does `"this`".  }
>>  \line { This makes a ‘“little mess'".  }
>>}
>> }
>> 
>> Thanks much. Happy Holidays. The days are getting lighter.
> 
> \line { This does "\"work\"." }
> 
> Bit of a nuisance, but within double quotes, \" creates a double quote mark.
> 
> -- 
> David Kastrup




Re: Quoted text in markup line

2019-12-27 Thread Thomas Morley
Am Fr., 27. Dez. 2019 um 18:44 Uhr schrieb Mike Kilmer :

> Can someone tell me how to include “quoted text” in `\markup { \line { \”like 
> this\”? }}`?

\markup "Inside of strings,  \" needs to be escaped by \\"

In native guile there are some more characters which needs escaping, though.

> The days are getting lighter.

Indeed :)

Best,
  Harm



Re: Quoted text in markup line

2019-12-27 Thread David Kastrup


Please do _not_ reply to other posts when creating a new topic.  Your
mail client creates headers associating that mail with the thread which
you replied to, making a mess of the thread display for most people.

Mike Kilmer  writes:

> Not finding an example in the docs 
> .
>
> Can someone tell me how to include “quoted text” in `\markup { \line { \”like 
> this\”? }}`?
>
> \version "2.18.2"
>
> \header {
>   title = "Quotes in Markup Line"
> }
>
>
> \markup {
> \column {
> \line { \null }
> \line { Single quotes are easy, like 'this'. }
> \line { I want double quotes. }
> \line { This creates no "quotes". }
>   \line { This doesn't \"Work\".  }
>   \line { Neither does `"this`".  }
>   \line { This makes a ‘“little mess'".  }
> }
> }
>
> Thanks much. Happy Holidays. The days are getting lighter.

\line { This does "\"work\"." }

Bit of a nuisance, but within double quotes, \" creates a double quote mark.

-- 
David Kastrup



Quoted text in markup line

2019-12-27 Thread Mike Kilmer
Not finding an example in the docs 
.

Can someone tell me how to include “quoted text” in `\markup { \line { \”like 
this\”? }}`?

\version "2.18.2"

\header {
title = "Quotes in Markup Line"
}


\markup {
\column {
\line { \null }
\line { Single quotes are easy, like 'this'. }
\line { I want double quotes. }
\line { This creates no "quotes". }
\line { This doesn't \"Work\".  }
\line { Neither does `"this`".  }
\line { This makes a ‘“little mess'".  }
}
}

Thanks much. Happy Holidays. The days are getting lighter.

Mike

RE: TextScript baseline in Dynamics context

2019-12-27 Thread Daniel Rosen
I mean, that is a possibility, but it’s pretty labor-intensive.

This should be a feature of, at the very least, the Dynamics context, IMHO. Am 
I right that this hasn't been requested before? (If I am I'll submit it to the 
bugs list.) 

DR

> From: Stefano Troncaro [mailto:stefanotronc...@gmail.com] 
> Sent: Friday, December 27, 2019 10:50 AM
> To: Daniel Rosen 
> Subject: Re: TextScript baseline in Dynamics context

> Hi Daniel, I never found a stafisfying solution for that, so I just create 
> custom DynamicTexts (that are always aligned) instead of mixing DynamicTexts 
> and TextScripts. See:

> text = #(make-dynamic-script (markup #:normal-text #:italic "Text"))
> <<
>   \new Voice { \repeat unfold 6 { c'4 } }
>   \new Dynamics { s2\f s\text s-"Text" }
>   \new Voice { \repeat unfold 6 { c'4 } }
> >>

> Bear in mind that you can't place 2 simultaneous dynamic events, so if you 
> want it to display "f Text" you have to create a "f Text" dynamic. Also, 
> dynamics are centered on the note by default, so you might want to change 
> that. For example:

> #(define make-dynamic-text (define-event-function (text) (markup?)
>   #{
>      \tweak self-alignment-X #-1
>      \tweak extra-offset #'(-0.65 . 0)
>      #(make-dynamic-script
>        (markup #:normal-text #:italic text))
>   #} ) )

> text = #(make-dynamic-text (markup #:normal-text #:italic "Text"))

> <<
>   \new Voice { \repeat unfold 6 { c'4 } }
>   \new Dynamics { s2\f s\text s-"Text" }
>   \new Voice { \repeat unfold 6 { c'4 } }
> >>

> Hope this helps!
> Stéfano

> > El vie., 27 dic. 2019 a las 12:18, Daniel Rosen () 
> > escribió:
> > How do I get TextScripts to sit on the same baseline as DynamicTexts within 
> > a Dynamics context? Everything I've tried leaves all or some of them 
> > sitting higher or lower. 

> > MWE of the problem:

> > <<
> >   \new Voice { \repeat unfold 6 { c'4 } }
> >   \new Dynamics { s2\f-"Text" s-"Text" s^"Text" }
> >   \new Voice { \repeat unfold 6 { c'4 } }
> > >>

> > DR



Re: Add arrow to custom gliss stencil

2019-12-27 Thread Thomas Morley
Am Fr., 27. Dez. 2019 um 17:36 Uhr schrieb Thomas Morley
:

> I found some time :)

A drawback may be one needs a newer devel-version now to use ly:angle

Many thanks to Aaron for the bezier-functionality.

Cheers,
  Harm



Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Guy Stalnaker
Thank Wilbert & Urs & the developer team whom I do not know!

Frescobaldi remains after years of use one if the best computer programs
I've ever used. I am always grateful for it and for you.

Regards,

Guy

-- 

“Happiness is the meaning and the purpose of life, the whole aim and end of
human existence.”

― Aristotle

On Fri, Dec 27, 2019, 4:20 AM Wilbert Berendsen  wrote:

> Dear Friends,
>
> Frescobaldi 3.1 has been released! There are many new features.
>
> Most notably:
>
> - A new Fonts dialog to select fonts for text, and with more recent
>   LilyPond versions, also for music.
>
> - The Music View is completely rewritten under the hood. New
>   possiblities:
>
>   * Copy selected music to PDF, SVG or EPS in addition to PNG and JPG.
>
>   * Zoom much deeper than ever before: thanks to tile-based rendering
> the Music View can zoom in virtually unlimited.
>
>   * New layout modes: horizontal/vertical, continuous/non continuous,
> rotation, etc.
>
> And there are many other little feature improvements and bug fixes.
> Lastly, many improvements under the hood pave the way for new exiting
> future possibilities, such as good multicore compile support, and
> support for much more file formats in the Manuscript viewer etc.
>
> I am very grateful to many co-developers that now contribute on a
> regular basis: Urs Liska, Peter Bjuhr, and many others.
>
> See all changes in the ChangeLog:
> https://github.com/frescobaldi/frescobaldi/blob/master/ChangeLog
>
> Download the source tarball at:
> https://github.com/frescobaldi/frescobaldi/releases
>
> Please give packagers some time to prepare Windows/MacOSX installers,
> they will be announced when ready.
>
> Note that Frescobaldi is now part of the GitHub organisation with the
> same name :-) to reflect that I'm certainly not the only one managing
> this project :-)
>
> Note to distributors and users of a git checkout: the MO (Message
> Object) files with the translations are not in git anymore, but they are
> built manually before packaging a source tarball.See INSTALL. When
> installing from the source tarball it is not needed to build the MO
> files.
>
> Other notes:
>
> - A recent version of the poppler library is needed to make vector
>   graphics drawing and copying in the Music View work well.
>
> - Frescobaldi does not use QtWebkit anymore, but instead now depends on
>   QtWebEngine and its related modules.
>
> Thanks to ALL the translators and contributors!
> Enjoy!
> Merry Christmas and happy new year!
>
> |_|  .  |) |) \./
> | | /-\ |  |   |
> ' ''   ''  '   '
>  . .  _ |  |
>  |\| |- \/\/
>  ' '  ~
> \./  _  .  |)
>  |  |- /-\ |\
>  '   ~'   '' '
>
>
> --
> Wilbert Berendsen (www.wilbertberendsen.nl)
>
>
>


Re: Add arrow to custom gliss stencil

2019-12-27 Thread Thomas Morley
Am Di., 24. Dez. 2019 um 22:20 Uhr schrieb Thomas Morley
:
>
> Am Di., 24. Dez. 2019 um 21:50 Uhr schrieb dtsmarin :
> >
> > Hi,
> >
> > I'm using this snippet http://lsr.di.unimi.it/LSR/Snippet?id=1066 but I want
> > to add an arrow at its right edge. Unfortunately LP's default code for that
> > purpose:
> > \once\override Glissando.bound-details.right.arrow = ##t
> > doesn't work so I need some help to figure out how to add the arrow
> > manually.
>
> Hi,
>
> this is one of my snippets and not designed to react to `arrow` set #t.
> It's likely not impossible to improve it, though, I'll not have much
> time the next days ...
>
> Maybe somebody else may want to chime in.
>
> Cheers,
>   Harm

I found some time :)
See attached, please test.


Cheers,
  Harm
\version "2.19.83"

lengthen-gliss = 
#(define-music-function (parser loation nmbr)(number?)
#{
  \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
  \once \override Glissando.minimum-length = #nmbr
#})

#(define (coord+ coord1 coord2)
  "Add @var{coord1} to @var{coord2}, returning a coordinate."
  (cons (+ (car coord1) (car coord2))
(+ (cdr coord1) (cdr coord2

#(define (coord- coord1 coord2)
  "Subtract @var{coord2} from @var{coord1}."
  (cons (- (car coord1) (car coord2))
(- (cdr coord1) (cdr coord2

#(define (coord* scalar coord)
  "Multiply each component of @var{coord} by @var{scalar}."
  (cons (* (car coord) scalar)
(* (cdr coord) scalar)))

#(define (interpolated-control-points control-points split-value)
  "Interpolate @var{control-points} at @var{split-value}.  Return a
set of control points that is one degree less than @var{control-points}."
  (if (null? (cdr control-points))
  '()
  (let ((first (car control-points))
(second (cadr control-points)))
(cons* (coord+ first (coord* split-value (coord- second first)))
   (interpolated-control-points
(cdr control-points)
split-value)

#(define (split-bezier bezier split-value)
  "Split a cubic bezier defined by @var{bezier} at the value
@var{split-value}.  @var{bezier} is a list of pairs; each pair is
is the coordinates of a control point.  Returns a list of beziers.
The first element is the LHS spline; the second
element is the RHS spline."
  (let* ((quad-points (interpolated-control-points
   bezier
   split-value))
 (lin-points (interpolated-control-points
  quad-points
  split-value))
 (const-point (interpolated-control-points
   lin-points
   split-value))
 (left-side (list (car bezier)
  (car quad-points)
  (car lin-points)
  (car const-point)))
 (right-side (list (car const-point)
   (list-ref lin-points 1)
   (list-ref quad-points 2)
   (list-ref bezier 3
(cons left-side right-side)))

#(define (bezier::point control-points t)
"Given a Bezier curve of arbitrary degree specified by @var{control-points},
compute the point at the specified position @var{t}."
  (if (< 1 (length control-points))
  (let ((q0 (bezier::point (drop-right control-points 1) t))
(q1 (bezier::point (drop control-points 1) t)))
(cons
  (+ (* (car q0) (- 1 t)) (* (car q1) t))
  (+ (* (cdr q0) (- 1 t)) (* (cdr q1) t
  (car control-points)))

#(define (bezier::angle control-points t)
"Given a Bezier curve of arbitrary degree specified by @var{control-points},
compute the slope at the specified position @var{t}."
  (let ((q0 (bezier::point (drop-right control-points 1) t))
(q1 (bezier::point (drop control-points 1) t)))
(ly:angle (- (car q1) (car q0)) (- (cdr q1) (cdr q0)

#(define* 
  (bezier::approx-control-points-to-length 
control-points dir length 
#:optional (precision 0.01) (right-t 0.2) (left-t 0.8))
"Given a Bezier curve specified by @var{control-points}, return 
new control-points where the length of the Bezier specified by them is approx
@var{length}.
The procedure returns if difference of the new calculated length and the given
@var{length} is lower than optional @var{precision}.
The optional @var{left-t} and @var{right-t} represent the steps where new
control-points are calculated relying on @var{dir}."
  ;; TODO
  ;; Do the values for precision, left-t, right-t cover all cases?
  (let*  ((frst-cp (car control-points))
  (last-cp (last control-points))
  (actual-length
(ly:length 
  (- (car frst-cp) (car last-cp))
  (- (cdr frst-cp) (cdr last-cp
  (diff (- (abs actual-length) (abs length
  (if (< diff precision)
  control-points
  (bezier::approx-control-points-to-length
(if (positive? dir)
(cdr 

Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Kevin Cole
Oops. My elderly, beer-soaked brain: Upon actually reading ALL of your
message instead of merely skimming, I see you've already gotten to the
INSTALL file.

So.  More carefully this time.

I downloaded the tarball, but I'm unsure where to put it and/or extract it.
> I tried putting it in its own directory in my /home directory, then
> extracting it there, but I still cannot figure out how to install it, even
> after reading the install file. I would greatly appreciate some further
> advice about how, what, and where I need to install Frescobaldi 3.1 and
> associated  required files.
>
> For example, do I need to separately download and install Python 3.8.1?
>
>
Type "python3" at the command prompt.  If it works, you don't need to
install Python 3.

When you type "ls -l frescobaldi" from within the directory where you
unpacked the tarball, you may note that it has the executable permissions
already set.  So, you can try:

./frescobaldi

(Note the period at the start of the line.) If it works, then you've got
everything you need, and you can proceed to either the of the following:

sudo python3 setup.py install
python3 setup.py install --prefix=/usr

Basically, just do what the INSTALL says, and if it gives you an error,
then start to explore what dependencies, etc are missing.

If I'm installing on my machine, do I need QtWebEngine? (I can't find that
> through Ubuntu Software, either.)
>

As to the Qt stuff, I find using synaptic ("sudo apt install synaptic") a
bit more helpful than the Ubuntu Software installer. Slightly less
friendly, but a hell of a lot more informative. For example, searching
synaptic for "qtweb" reveals "libqt5webengine5" among other things.  That's
what you would want, if you don't already have it.


Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Kevin Cole
On Fri, Dec 27, 2019 at 9:50 AM Ralph Palmer 
wrote:

I confess that I'm a bit of a novice regarding installation via tarball.
>
> I'm running Ubuntu 18.04.3 LTS.
>
> I cannot find Frescobaldi 3.1 in my Ubuntu Software app.
>
> I downloaded the tarball, but I'm unsure where to put it and/or extract
> it. I tried putting it in its own directory in my /home directory, then
> extracting it there, but I still cannot figure out how to install it, even
> after reading the install file. I would greatly appreciate some further
> advice about how, what, and where I need to install Frescobaldi 3.1 and
> associated  required files. For example, do I need to separately download
> and install Python 3.8.1? If I'm installing on my machine, do I need
> QtWebEngine? (I can't find that through Ubuntu Software, either.) Or should
> I wait until the Ubuntu Software application recognizes Frescobaldi 3.1?
>
> (I *am* trying to learn Linux from the command line, but it takes a while
> and my elderly brain is slow on the uptake.)
>

Hi,

The basics:

A tarball is like a zip file. What I usually do from the command line:

tar tzvf frescobaldi-3.1.tar.gz | less

That will show what's in the tarball without extracting anything. (t=test,
z=compress and decompress with gzip, v=be verbose, f=the following is the
name of the file to act upon). The "| less" on the end makes sure that it
doesn't scroll off the screen faster than you can read. (I actually use "|
most" but that requires you to "sudo apt install most" first.) Cursor up
and down through the list to get an idea about where it will put all those
files. Sometimes (rarely) packagers will do something silly, like not
putting all the files to be unpacked in their own subdirectory. So, when
you unpack, it clutters up whatever directory you're in. Being able to test
first, will help you determine if you need to create a subdirectory
yourself, and move the tarball into it before unpacking. Once you're
satisfied that the tarball is "sane", type "q" to quit either "less" or
"most". (In this case you will see that the tarball is sane: The tarball
will create a subdirectory "frescobaldi-3.1/" with all the files.  So, to
actually unpack, change the "t for test" to "x for extract":

tar xzvf frescobaldi-3.1.tar.gz

In the tarball you'll find a file named INSTALL.  Read it to get the
"lowdown" on how to manually install it on your system. You will also find
that file at:

https://github.com/frescobaldi/frescobaldi/blob/master/INSTALL
Hope that helps.

-- 
> Ralph Palmer
> Brattleboro, VT
> USA
> (he, him, his)
> palmer.r.vio...@gmail.com
>

P.S. I have a musically-inclined, technically-inclined buddy in Barre, VT
who on occasion wanders south to Brattleboro. A bit of a wild man, Paul
"Hurricane" Flint, as I like to call him. He's the "proprietor" of
http://bosivt.org/ and http://docbox.flint.com:8081/geekland which he
believes to be sanely organized. ;-) And host of the Monday night Linux
"Adult Swim" every week.


-- 
Physical
[image: [Photo: Kevin Cole]]
Kevin Cole, RHCE 
@ubuntourist
Brain-Washington, DC (US)


Re: LSR contribution

2019-12-27 Thread Michael Käppler

Hi Harm,
thanks for your comments and this inspiring discussion!
I would like to discuss a couple of things further.
My current version is attached.


You try to give the user always meaningful warning-messages.
That's great, putting out really helpful messages is hard work...
Alas, speaking only for me, I don't like those multiple nested `if`.
Thus I defined `type-check-intervals-given` and use it to filter the
user-given interval-list.
`filter` will return false for the first occurrence of failed
`type-check-intervals-given`. Thus it can be used to deal with
user-errors step-by-step.

Nice solution!

Along with it, I added a basic check for the user provided list (about
equal length of each sublist)


A good addition, but it did not work as intended, because the dissection
of the list with (car) (second) etc. took place regardless of whether
the interval was well-formed. See the comment in the code below.
I would not use ly:error here, because that will
terminate the compilation process, right?  It may be that
some intervals are well-formed and some are not. I think we should
still go on and process the well-formed intervals.
Otherwise we should raise an error for the other fault conditions
(Direction, enharmonic, color, missing interval in definitions) too,
what I do not think is appropriate.

There was an undefined variable `gen-warntext`, which is now gone as well.

Sorry for that mistake, which reminds me of always thoroughly testing
my code... :(

Furthermore, I changed the basic `intervaldefs` to take only pairs of
the interval-string and the semi-tonoc steps. The diatonic steps are
calculated relying on the interval-string.

I have to admit that I'm not happy with this change.
I think the user should be able to use custom
interval denotations like e.g.
https://en.wikipedia.org/wiki/Interval_(music)#Alternative_interval_naming_conventions
rather than having to rely on a hardcoded system.

I found no need to do work in `process-acknowledged`.
Thus all work is done in 'note-head-interface of `acknowledgers`
Probably more efficient, but I have not really checked.
I think it is definitily more efficient, since process-acknowledged is 
called multiple times after
one grob has been acknowledged by the engraver. The question is to which 
extent
the "educational" idea of showing the various hooks in action justifies 
this overhead.




A plethora of minor changes in code and comments... ;)

WDYT?

Btw, there is one case, where I don't know how to deal with:
2.18.2 can't cope with an empty engraver, see:

\score {
   \new Staff \relative c' { c4 d }
   \layout {
 \context {
   \Voice
   \consists \color_interval_engraver #intervaldefs #`(("30-" 0 #t ,green))
 }
   }
}

No problem for 2.19.83, though.
Oh no, further insufficient testing of mine. The following minimal 
"void" engraver

works for me with both 2.18.2 and 2.19.80:
`((initialize . ,(lambda (translator) #t)))

I'm commenting now directly in your code, mentioning only thoughts
that I did not mention before. Btw, your code had pretty much
lines with trailing whitespace which I removed, because I work here
on a local git repo and the diffs become cluttered otherwise...


#(use-modules (ice-9 pretty-print))

Removed, since unused.

color_interval_engraver =
#(define-scheme-function (parser location intervaldefs debug? 
intervals-given)

   (list? (boolean?) list?) ;; debug? is optional, defaults to #f

  (define (string-diatonic-semi-tonic-list string-semi-tonic-list)
   (map
 (lambda (e)
   (let* ((interval-string
    (string-trim-both
  (car e)
  (lambda (c) (or (eqv? c #\+) (eqv? c #\-)
  (interval-diatonic
    (string->number interval-string)))
 (cons (car e) (cons (1- interval-diatonic) (cdr e)
 string-semi-tonic-list))

  (define (type-check-intervals-given msg-header)

Is there a reason for not defining this as a binding
in the following (let* ...)?
No need to explicitly pass msg-header, then.

    (lambda (interval)
  ;; basic check for amount of args
  (if (= 4 (length interval))
  #t
  (begin
    (ly:error
  "~a Interval ~a must have 4 entries" msg-header interval)
    #f))

Here is a bug - if the check does not succeed,
the function will not return with #f but instead
go on with the (let) construct.
  ;; check every entry for type, additonally the first entry 
whether it's

  ;; a key in intervaldefs
  (let ((name (car interval))
    (dir (second interval))
    (enh? (third interval))
    (color (fourth interval)))
    (and
  ;; check first entry for string? and whether it's in 
intervaldefs

  (if (and (string? name) (assoc-get name intervaldefs))
  #t
  (begin
    (ly:warning
  "~a In interval ~a, ~a not found in interval 
definitions"

  msg-header
 

TextScript baseline in Dynamics context

2019-12-27 Thread Daniel Rosen
How do I get TextScripts to sit on the same baseline as DynamicTexts within a 
Dynamics context? Everything I've tried leaves all or some of them sitting 
higher or lower. 

MWE of the problem:

<<
  \new Voice { \repeat unfold 6 { c'4 } }
  \new Dynamics { s2\f-"Text" s-"Text" s^"Text" }
  \new Voice { \repeat unfold 6 { c'4 } }
>>

DR




Re: ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Ralph Palmer
On Fri, Dec 27, 2019 at 5:21 AM Wilbert Berendsen  wrote:

> Dear Friends,
>
> Frescobaldi 3.1 has been released! There are many new features.
>
>
Wonderful!

> I am very grateful to many co-developers that now contribute on a
> regular basis: Urs Liska, Peter Bjuhr, and many others.
>

Many thanks to all of you. I use Frescobaldi so much.


> Download the source tarball at:
> https://github.com/frescobaldi/frescobaldi/releases
>
> Note that Frescobaldi is now part of the GitHub organisation with the
> same name :-) to reflect that I'm certainly not the only one managing
> this project :-)
>
> Note to distributors and users of a git checkout: the MO (Message
> Object) files with the translations are not in git anymore, but they are
> built manually before packaging a source tarball.See INSTALL. When
> installing from the source tarball it is not needed to build the MO
> files.
>
> Other notes:
>
> - A recent version of the poppler library is needed to make vector
>   graphics drawing and copying in the Music View work well.
>
> - Frescobaldi does not use QtWebkit anymore, but instead now depends on
>   QtWebEngine and its related modules.
>

I confess that I'm a bit of a novice regarding installation via tarball.

I'm running Ubuntu 18.04.3 LTS.

I cannot find Frescobaldi 3.1 in my Ubuntu Software app.

I downloaded the tarball, but I'm unsure where to put it and/or extract it.
I tried putting it in its own directory in my /home directory, then
extracting it there, but I still cannot figure out how to install it, even
after reading the install file. I would greatly appreciate some further
advice about how, what, and where I need to install Frescobaldi 3.1 and
associated  required files. For example, do I need to separately download
and install Python 3.8.1? If I'm installing on my machine, do I need
QtWebEngine? (I can't find that through Ubuntu Software, either.) Or should
I wait until the Ubuntu Software application recognizes Frescobaldi 3.1?

(I *am* trying to learn Linux from the command line, but it takes a while
and my elderly brain is slow on the uptake.)

Many thanks to everyone who helps so much with Lilypond and Frescobaldi!

All the best,

Ralph

-- 
Ralph Palmer
Brattleboro, VT
USA
(he, him, his)
palmer.r.vio...@gmail.com


Python and Visual Studio

2019-12-27 Thread Peter Gentry
It seems there is a way to switch between 3.7 and 2.7 BUT it is complex and
opaque. It needs careful downloading of Python 3.7 and some other mysterious
messing with "Shebangs" whatever they are and using strange characters such
as  Greek "lambda" (not on my keyboards). It would seem the game is not
worth the candle so 3.7 is in the dustbin and all back to normal. 

 

It is a shame though that 3.7 and Lilypond cannot co-exist easily on Windows
10 at any rate.

 

Regards Peter

 



ANN: Frescobaldi 3.1 has been released!

2019-12-27 Thread Wilbert Berendsen
Dear Friends,

Frescobaldi 3.1 has been released! There are many new features.

Most notably:

- A new Fonts dialog to select fonts for text, and with more recent
  LilyPond versions, also for music.

- The Music View is completely rewritten under the hood. New
  possiblities:

  * Copy selected music to PDF, SVG or EPS in addition to PNG and JPG.

  * Zoom much deeper than ever before: thanks to tile-based rendering
the Music View can zoom in virtually unlimited.

  * New layout modes: horizontal/vertical, continuous/non continuous,
rotation, etc.

And there are many other little feature improvements and bug fixes.
Lastly, many improvements under the hood pave the way for new exiting
future possibilities, such as good multicore compile support, and
support for much more file formats in the Manuscript viewer etc.

I am very grateful to many co-developers that now contribute on a
regular basis: Urs Liska, Peter Bjuhr, and many others.

See all changes in the ChangeLog:
https://github.com/frescobaldi/frescobaldi/blob/master/ChangeLog

Download the source tarball at:
https://github.com/frescobaldi/frescobaldi/releases

Please give packagers some time to prepare Windows/MacOSX installers,
they will be announced when ready.

Note that Frescobaldi is now part of the GitHub organisation with the
same name :-) to reflect that I'm certainly not the only one managing
this project :-)

Note to distributors and users of a git checkout: the MO (Message
Object) files with the translations are not in git anymore, but they are
built manually before packaging a source tarball.See INSTALL. When
installing from the source tarball it is not needed to build the MO
files.

Other notes:

- A recent version of the poppler library is needed to make vector
  graphics drawing and copying in the Music View work well.

- Frescobaldi does not use QtWebkit anymore, but instead now depends on
  QtWebEngine and its related modules.

Thanks to ALL the translators and contributors!
Enjoy!
Merry Christmas and happy new year!

|_|  .  |) |) \./
| | /-\ |  |   |
' ''   ''  '   '
 . .  _ |  |
 |\| |- \/\/
 ' '  ~
\./  _  .  |)
 |  |- /-\ |\
 '   ~'   '' '  


-- 
Wilbert Berendsen (www.wilbertberendsen.nl)