Re: eps/svg export

2024-02-24 Thread cordelia
Yes, SVG seems ok, but EPS still have some issues.

> On 24 Feb 2024, at 11:37, Martin Tarenskeen  wrote:
> 
> Have you tried opening them in any other application with/without problems>
> 
> Op zaterdag 24 februari 2024 om 09:02:23 +01:00:00 schreef 
> corde...@disroot.org:
>> Hi everyone,
>> 
>> I'm encountering an issue while attempting to separate a LilyPond EPS/SVG 
>> file and import it into Affinity Publisher.
>> 
>> I'm having trouble opening the SVG or EPS formats, as both seem to be 
>> corrupted. I suspect that Affinity Publisher might be contributing to the 
>> problem. Has anyone else experienced this issue or found a resolution?
>> 
>> I use this code:
>> lilypond -duse-paper-size-for-page=#f -dno-gs-load-fonts -dinclude-eps-fonts 
>> --eps input.ly
>> 
>> Your insights and suggestions would be greatly appreciated.
>> 
>> Thank you,
>> 
>> 
>> 



Re: eps/svg export

2024-02-24 Thread Martin Tarenskeen
Have you tried opening them in any other application with/without 
problems>


Op zaterdag 24 februari 2024 om 09:02:23 +01:00:00 schreef 
corde...@disroot.org:

Hi everyone,

I'm encountering an issue while attempting to separate a LilyPond 
EPS/SVG file and import it into Affinity Publisher.


I'm having trouble opening the SVG or EPS formats, as both seem to be 
corrupted. I suspect that Affinity Publisher might be contributing to 
the problem. Has anyone else experienced this issue or found a 
resolution?


I use this code:
lilypond -duse-paper-size-for-page=#f -dno-gs-load-fonts 
-dinclude-eps-fonts --eps input.ly


Your insights and suggestions would be greatly appreciated.

Thank you,







eps/svg export

2024-02-24 Thread cordelia
Hi everyone,

I'm encountering an issue while attempting to separate a LilyPond EPS/SVG file 
and import it into Affinity Publisher.

I'm having trouble opening the SVG or EPS formats, as both seem to be 
corrupted. I suspect that Affinity Publisher might be contributing to the 
problem. Has anyone else experienced this issue or found a resolution?

I use this code:
lilypond -duse-paper-size-for-page=#f -dno-gs-load-fonts -dinclude-eps-fonts 
--eps input.ly

Your insights and suggestions would be greatly appreciated.

Thank you,





Re: tspan in SVG export

2023-11-23 Thread Michael Werner
Hi Johannes,

On Thu, Nov 23, 2023 at 10:37 AM Johannes Keller 
wrote:

> thank you! I tried this, but got "fatal error: compiled without
> CAIRO_BACKEND". Does this mean that I need to compile Lilypond myself,
> or is there an easier way? I work on Arch Linux, using the official
> "lilypond" package (which ships Lilypond 2.24.2 at the moment).
>

I'm on KUbuntu myself. There are pre-made binary tarballs on the Lilypond
site you can use. Go to http://lilypond.org/index.html and on the right
side of the page are two download links - one for the current stable
release (currently 2.24.3) and one for the current development version
(currently 2.25.10). Follow whichever one you want, download the tar.gz and
unpack it into the directory of your choice. It'll then be pretty much
ready to use. I've got a lilypond directory in my home directory I unpack
them into, but really you can put them pretty much wherever you want.
-- 
Michael


Re: tspan in SVG export

2023-11-23 Thread K. Blum

Hi Johannes,

Am 23.11.2023 um 15:26 schrieb Johannes Keller:

I tried this, but got "fatal error: compiled without
CAIRO_BACKEND". Does this mean that I need to compile Lilypond myself,
or is there an easier way? I work on Arch Linux, using the official
"lilypond" package (which ships Lilypond 2.24.2 at the moment).


being a Windows user, I cannot be much of help.
In another thread I heard that it should be sufficent to get the
official binaries:
https://www.mail-archive.com/lilypond-user@gnu.org/msg151471.html

As an alternative, you can get the same results by converting your PDF
file to SVG with the pdf2svg command.
Install the "pdf2svg" package via your package manager or in the
terminal with:
sudo apt-get install pdf2svg

Does that help?

Cheers,
Klaus


Re: tspan in SVG export

2023-11-23 Thread Johannes Keller
Hi Klaus

thank you! I tried this, but got "fatal error: compiled without
CAIRO_BACKEND". Does this mean that I need to compile Lilypond myself,
or is there an easier way? I work on Arch Linux, using the official
"lilypond" package (which ships Lilypond 2.24.2 at the moment).

Best,

Johannes






"K. Blum"  writes:

> Hi Johannes,
>
> Am 22.11.2023 um 18:01 schrieb lilypond-user-requ...@gnu.org:
>> On most browsers there is a large gap between 'of' and 'terza'. I noticed
>> that lilypond exports such a situation as individual  elements
>> with absolute coordinates (as in ).
>>
>> Is there a way to let lilypond combine these words into a single 
>> element, using  elements to define the formatting?
>
> I don't know how to achieve this, but you could have your output
> produced by the Cairo backend.
> (Add '--svg' and '-dbackend=cairo' as command line options, see
> https://www.mail-archive.com/lilypond-devel@gnu.org/msg77712.html )
>
> This should look the same with any browser.
> Drawback: It is graphical output and doesn't contain searchable text.
>
> Cheers,
> Klaus



Re: tspan in SVG export

2023-11-22 Thread K. Blum

Hi Johannes,

Am 22.11.2023 um 18:01 schrieb lilypond-user-requ...@gnu.org:

On most browsers there is a large gap between 'of' and 'terza'. I noticed
that lilypond exports such a situation as individual  elements
with absolute coordinates (as in ).

Is there a way to let lilypond combine these words into a single 
element, using  elements to define the formatting?


I don't know how to achieve this, but you could have your output
produced by the Cairo backend.
(Add '--svg' and '-dbackend=cairo' as command line options, see
https://www.mail-archive.com/lilypond-devel@gnu.org/msg77712.html )

This should look the same with any browser.
Drawback: It is graphical output and doesn't contain searchable text.

Cheers,
Klaus



tspan in SVG export

2023-11-22 Thread Johannes Keller
Hello!

I use lilypond with the "-dbackend=svg" option. The text in the
resulting SVG files looks very different depending on the browser used
to render it. This concerns text elements with a mix of normal and
italic text, for example:

step of _terza minore_

('terza minore' in italics)

On most browsers there is a large gap between 'of' and 'terza'. I noticed
that lilypond exports such a situation as individual  elements
with absolute coordinates (as in ).

Is there a way to let lilypond combine these words into a single 
element, using  elements to define the formatting? Below I
include an excerpts of an original SVG file and a solution that would
solve the problem.

Thank you!

Johannes



Lilypond source:

\left-align { \concat { \normal-text "step of " \italic "terza minore" } }


Original Lilypond export:



step of 





terza minore




Solution:



step of terza minore





Re: Export to XML

2022-08-30 Thread Jean Abou Samra

  
  
Le 30/08/2022 à 12:55, nitra...@posteo.net a
  écrit :


  
A MusicXML export integrated into LilyPond has been discussed repeatedly,
and everybody agrees that it is desirable, but it has not been implemented
so far because, well, it's quite easier said than done. In a free (libre)
/ open source project, the only way to be sure something will get done
is to do it yourself.

  
  
I didn't want to sound like complaining! I understand it should be a lot of
work to provide. I wasn't sure it was not implemented for technical or ethical
reasons.



  
  I understand. I would say it is unimplemented not for ethical
  reasons,
  nor even for technical reasons, but simply resource reasons —
  unlike most
  of the other problems that are discussed frequently (grace
  synchronization,
  cross-voice spanners), it isn't made hard by the way LilyPond is
  designed,
  it's just a big chunk of work that needs people with all of time,
  motivation and competence to tackle it.
  

  




Re: Export to XML

2022-08-30 Thread nitram45
> A MusicXML export integrated into LilyPond has been discussed repeatedly,
> and everybody agrees that it is desirable, but it has not been implemented
> so far because, well, it's quite easier said than done. In a free (libre)
> / open source project, the only way to be sure something will get done
> is to do it yourself.

I didn't want to sound like complaining! I understand it should be a lot of
work to provide. I wasn't sure it was not implemented for technical or ethical
reasons.



Re: Export to XML

2022-08-30 Thread Jean Abou Samra

  
  

  

Le 30/08/2022 à
11:59, nitra...@posteo.net a écrit :
  

  Dear all,

[...]

2) I tried the OpenLilylib package. I wasn't familiar with that tool and
had to struggle a bit with the installation. But still, with the
export-example.ly seen in the manual, I get this error message:

|  GNU LilyPond 2.22.2
|  Traitement de « export-example.ly »
|  Analyse...
|  
|  oll-core: library infrastructure successfully loaded.
|  Interprétation en cours de la musique...
|  init exportHumdrum: "export-example.krn"
|  init Staff 1
|  init Voice 1/1 (1)
|  init Voice 1/2 (2)
|  init Staff 2
|  init Voice 1/ (3)
|  init Voice 2/ (1)
|  init Voice 2/mel (2)/home/remy/.config/lilypond/openlilylib/lilypond-export/api.scm:278:48: In _expression_ (ly:grob-properties grob):
|  /home/remy/.config/lilypond/openlilylib/lilypond-export/api.scm:278:48: Unbound variable: ly:grob-properties

And I only get the PDF as an output. I don't know what I missed here?


  
  
  This sounds like this OLL package has not been updated for
  LilyPond
  version 2.22.
  
  


  6) Last point: I made some month ago, a short presentation and introduction
to LilyPond for my colleagues in my music institution. Beyond the fact it
was quite a challenge to try and convince them of the utility to take some
time and learn that great tool, I received that question I couldn't answer
at the time: is it possible to import or export in XML? I haven't have a
use for that kind of feature until now, and I don't know how the commercial
softwares handle that, but still, wouldn't that be a great argument to
convince the people to go for it? Final thought, I don't know how Urs did
manage to convince publishers about LilyPond and what responses he got (I
would be curious though), but I am pretty sure that kind of limitation in
importing/exporting in XML would be nowdays a dealbreaker for publishing
companies, don't you agree?



  
  
  A MusicXML export integrated into LilyPond has been discussed
  repeatedly,
  and everybody agrees that it is desirable, but it has not been
  implemented
  so far because, well, it's quite easier said than done. In a free
  (libre)
  / open source project, the only way to be sure something will get
  done
  is to do it yourself.
  
  Regards,
  Jean
  

  




Re: Export to XML

2022-08-30 Thread nitram45
Dear all,

Thank you for your comments about that situation. I tried what Jean
suggested :

1) The XML export in Frescobaldi did work but the result was very
unsatisfactory. I even tried to simplify as much as I could (erased all
tweaks, custom commands, fingerings) and only kept the music notes. But
still, the result when imported in Finale (2014) was terrible (some voices
were displaced!).

2) I tried the OpenLilylib package. I wasn't familiar with that tool and
had to struggle a bit with the installation. But still, with the
export-example.ly seen in the manual, I get this error message:

|  GNU LilyPond 2.22.2
|  Traitement de « export-example.ly »
|  Analyse...
|  
|  oll-core: library infrastructure successfully loaded.
|  Interprétation en cours de la musique...
|  init exportHumdrum: "export-example.krn"
|  init Staff 1
|  init Voice 1/1 (1)
|  init Voice 1/2 (2)
|  init Staff 2
|  init Voice 1/ (3)
|  init Voice 2/ (1)
|  init Voice 2/mel 
(2)/home/remy/.config/lilypond/openlilylib/lilypond-export/api.scm:278:48: In 
expression (ly:grob-properties grob):
|  /home/remy/.config/lilypond/openlilylib/lilypond-export/api.scm:278:48: 
Unbound variable: ly:grob-properties

And I only get the PDF as an output. I don't know what I missed here?

3) I tried in the same old Finale version to import my PDF and I have to
admit the result was for now the most satisfactory... I am pretty convinced
now that Schott uses Sibelius as I read those fonts in some PDF examples
they put online (maybe this will be of interest for some of you):
| SchottMusicSibeliusStandard
| SchottMusicSibeliusText
| CenturySchoolbook-Bold
| TimesNewRoman
| OpusText
| OpusFiguredBassStd
| LinotypeSyntaxCom-Regular

4) I don't know if the fact I could not provide a workable file for them
would be a deal breaker... I hope not as I "imagined" the work of a
publishing company to be able to engrave from scratch any score... I could
also mimic their own house styling in LilyPond, but I would be very
surprised they ask for that and agree with Andrew, something would be wrong
if so. So if I can't export in XML, my best bet would be for them to typeset
from scratch, or to import the PDF in their own software and see if that
can provide a good initial base...

5) To answer Andrew about the copyright and financial deal, I haven't
received a concrete proposal yet and cannot say how it would appear. I know
the incomes won't be very substantial, but still I see that as on
opportunity to reach more people. But I would be curious to know what you
meant by self-publishing? I, for sure, like to buy my scores on paper and
that is an aspect I like in those old publishing companies...

6) Last point: I made some month ago, a short presentation and introduction
to LilyPond for my colleagues in my music institution. Beyond the fact it
was quite a challenge to try and convince them of the utility to take some
time and learn that great tool, I received that question I couldn't answer
at the time: is it possible to import or export in XML? I haven't have a
use for that kind of feature until now, and I don't know how the commercial
softwares handle that, but still, wouldn't that be a great argument to
convince the people to go for it? Final thought, I don't know how Urs did
manage to convince publishers about LilyPond and what responses he got (I
would be curious though), but I am pretty sure that kind of limitation in
importing/exporting in XML would be nowdays a dealbreaker for publishing
companies, don't you agree?



Re: Export to XML

2022-08-30 Thread Jacques Menu
Hello Andrew,

> In your workflow, why the double export? if the result is fine from Lilypond 
> why then export from MuseScore?

I’d say it is to refine the score with MuseScore to fix the imperfect 
Lily->MusicXML export.

JM




Re: Export to XML

2022-08-27 Thread Andrew Bernard
I thought the musicxml export is only experimental/preliminary. How 
developed is it exactly?


The OP seems to have tuned and tweaked his engraving extensively for the 
best appearance (OP to confirm...). Is this tool capable of capturing 
all such fine tweaks? Or is this beyond MusicXML anyway?


In your workflow, why the double export? if the result is fine from 
Lilypond why then export from MuseScore?


Musescore simply refuses to install or uninstall earlier version on my 
Windows 11 Insider Preview, FWIW. Just mentioning (not very happy about 
that!)



Andrew


On 26/08/2022 6:30 pm, m.tarensk...@kpnmail.nl wrote:

This is what I would do, using only Open Source software:
- convert my lilypond files to musicxml using python-ly (or 
frescobaldi, which uses python-ly)
- load the result in Musesscore to check if the conversion succeeded 
(sometimes it fails comlletely), and/or if errors can easily be corrected.

- use Musescore to export the result again to musicxml
- Let the people who insist using Sibelius/Finale import the musicxml 
file and apply their preferred housestyles to it.






Re: Export to XML

2022-08-26 Thread Paul Hodges

From: Andrew Bernard  
Subject: Re: Export to XML 

Unless they accept a PDF 
from you and print that or reset from scratch I think you are stuck.


My son is arranging the publication of the remaining works of a recently 
deceased composer, and the republication properly typeset of some works already 
published in MS form.  The publisher is Novello (Wise group), and they are 
accepting PDFs for print.  I have done a couple of works using LilyPond - 
another person has done some using Finale; my son has prompted us to bring our 
styles as reasonably close as we can to the style used by Novello in the works 
they have previously typeset, within the limitations of each of our software 
(basically I have changed the music font, and the thicknesses of some lines), 
and Novello have not asked for more.


Paul

Re: Export to XML

2022-08-26 Thread m.tarensk...@kpnmail.nl
This is what I would do, using only Open Source software:- convert my lilypond files to musicxml using python-ly (or frescobaldi, which uses python-ly)- load the result in Musesscore to check if the conversion succeeded (sometimes it fails comlletely), and/or if errors can easily be corrected.- use Musescore to export the result again to musicxml- Let the people who insist using Sibelius/Finale import the musicxml file and apply their preferred housestyles to it.MTVerzonden vanaf mijn Huawei mobiele telefoon Oorspronkelijk bericht Onderwerp: Re: Export to XMLVan: Jean Abou Samra Aan: nitra...@posteo.net,lilypond-user@gnu.orgCc: Jacques Menu ,Andrew Bernard Le 25/08/2022 à 14:43, nitra...@posteo.net a écrit :> Dear LilyPond users,>> I used to post questions on the LilyPond forums few years back when it was> possible to post and edit messages directly online (on nabble.com if I> recall correctly). But since it was closed, I didn't take the time to> subscribe to the mailing list and haven't try that way. I somehow managed> to find answers to my questions myself, but today I would need some advice.>> I used to be an intense Finale then Sibelius user and I learnt LilyPond> back in 2017. Since then, it is my only tool to engrave my scores and I have> moved progressively my workflow on Linux. Hence I cannot (and doesn't want) to> go back on those proprietary software and it also changed my use of LilyPond (I> replaced frescobaldi by vim, I use a lot of separate folders for each> projects and program some Makefiles to link everything smoothly, ...).>> I received some good news recently. A big music publisher (Schott Music Group),> is interested in publishing some of my compositions I made for my piano students> and it should be released in a near future. I engraved my score with great care,> and as I said, using a Makefile and some unix architecture for that particular> project. However, as you might guess, they want to engrave it with their own> editorial chart and within their music software (I am not sure of which one they> are using yet).>> I proposed to send them my LilyPond files but I have been confirmed yesterday> that they cannot process those... They told me an XML file might help them> though. I looked if it was possible to export in XML but I read the result was> bad and LilyPond wasn't made for that task... So here's my question: what would> you suggest I could do to export my scores and help them prepare the album?>> Thanks for the advices!>Frescobaldi has an experimental feature to export LilyPond codeto MusicXML. Check "Enable experimental features" in the settingsand (after restarting Frescobaldi) you get a button File > Export > Export to MusicXML.There is experimental openLilyLib package:https://github.com/openlilylib/lilypond-exportBoth are experimental, but maybe one of them will work reasonablyfor you.Best,Jean

Re: Export to XML

2022-08-26 Thread Jean Abou Samra

Le 25/08/2022 à 14:43, nitra...@posteo.net a écrit :

Dear LilyPond users,

I used to post questions on the LilyPond forums few years back when it was
possible to post and edit messages directly online (on nabble.com if I
recall correctly). But since it was closed, I didn't take the time to
subscribe to the mailing list and haven't try that way. I somehow managed
to find answers to my questions myself, but today I would need some advice.

I used to be an intense Finale then Sibelius user and I learnt LilyPond
back in 2017. Since then, it is my only tool to engrave my scores and I have
moved progressively my workflow on Linux. Hence I cannot (and doesn't want) to
go back on those proprietary software and it also changed my use of LilyPond (I
replaced frescobaldi by vim, I use a lot of separate folders for each
projects and program some Makefiles to link everything smoothly, ...).

I received some good news recently. A big music publisher (Schott Music Group),
is interested in publishing some of my compositions I made for my piano students
and it should be released in a near future. I engraved my score with great care,
and as I said, using a Makefile and some unix architecture for that particular
project. However, as you might guess, they want to engrave it with their own
editorial chart and within their music software (I am not sure of which one they
are using yet).

I proposed to send them my LilyPond files but I have been confirmed yesterday
that they cannot process those... They told me an XML file might help them
though. I looked if it was possible to export in XML but I read the result was
bad and LilyPond wasn't made for that task... So here's my question: what would
you suggest I could do to export my scores and help them prepare the album?

Thanks for the advices!




Frescobaldi has an experimental feature to export LilyPond code
to MusicXML. Check "Enable experimental features" in the settings
and (after restarting Frescobaldi) you get a button File > Export
> Export to MusicXML.

There is experimental openLilyLib package:
https://github.com/openlilylib/lilypond-export

Both are experimental, but maybe one of them will work reasonably
for you.

Best,
Jean




Re: Export to XML

2022-08-26 Thread Andrew Bernard
People have made styles and fonts for Finale and Sibelius that mimic 
quite closely Henle Verlag and Barenreiter. But it's a huge amount of 
work, and only because they like it, not for submission.


Surely Schott is not expecting you to create a complete house style in 
an entirely different program. Something is wrong if so.


And, Schott will own the copyright and you will earn a pittance. Is it 
really worth it? There are so many ways to self publish now. If you do 
have an especially favorable financial deal with Schott you may have to 
ditch all your fine work and reset in Finale or Sibelius, whatever.


Some time ago Urs Liska started a sort of campaign drive to convince 
major publishers to at least accept Lilypond, if not convert to it. But 
sadly that did not seem to gain any traction.



On 26/08/2022 5:45 pm, Jacques Menu wrote:

Maybe one way could be to mimic this publishers look as much as possible, 
supposing that’s OK for them…

I did that once for a very small company : for our own performance needs, I had 
already typeset the score we were to play from their original, handwritten by 
the composer, in the first place.





Re: Export to XML

2022-08-26 Thread Jacques Menu
Hello,

Maybe one way could be to mimic this publishers look as much as possible, 
supposing that’s OK for them… 

I did that once for a very small company : for our own performance needs, I had 
already typeset the score we were to play from their original, handwritten by 
the composer, in the first place.

JM

> Le 26 août 2022 à 08:59, Andrew Bernard  a écrit :
> 
> I have no idea what software Schott Music Group uses for engraving, but it's 
> disappointing nowadays that many of the larger publisher are demanding that 
> composers do their work for them and requesting finished work, at least 
> finished to the point they can apply their house style. I don't think any of 
> the big names use Lilypond, and as far as I recall various efforts to get 
> Lilypond to export MusicXML (with all its limitations)  have not come to any 
> fruition. Unless they accept a PDF from you and print that or reset from 
> scratch I think you are stuck. Sorry. I think the silence on the list re your 
> question is also confirmation that there is not an answer to this. I may be 
> wrong!
> 
> Andrew
> 
> 
> On 25/08/2022 10:43 pm, nitra...@posteo.net wrote:
>> I proposed to send them my LilyPond files but I have been confirmed yesterday
>> that they cannot process those... They told me an XML file might help them
>> though. I looked if it was possible to export in XML but I read the result 
>> was
>> bad and LilyPond wasn't made for that task... So here's my question: what 
>> would
>> you suggest I could do to export my scores and help them prepare the album?
>> 
>> Thanks for the advices!
>> 
> 




Re: Export to XML

2022-08-26 Thread Andrew Bernard
I have no idea what software Schott Music Group uses for engraving, but 
it's disappointing nowadays that many of the larger publisher are 
demanding that composers do their work for them and requesting finished 
work, at least finished to the point they can apply their house style. I 
don't think any of the big names use Lilypond, and as far as I recall 
various efforts to get Lilypond to export MusicXML (with all its 
limitations)  have not come to any fruition. Unless they accept a PDF 
from you and print that or reset from scratch I think you are stuck. 
Sorry. I think the silence on the list re your question is also 
confirmation that there is not an answer to this. I may be wrong!


Andrew


On 25/08/2022 10:43 pm, nitra...@posteo.net wrote:

I proposed to send them my LilyPond files but I have been confirmed yesterday
that they cannot process those... They told me an XML file might help them
though. I looked if it was possible to export in XML but I read the result was
bad and LilyPond wasn't made for that task... So here's my question: what would
you suggest I could do to export my scores and help them prepare the album?

Thanks for the advices!





Export to XML

2022-08-25 Thread nitram45
Dear LilyPond users,

I used to post questions on the LilyPond forums few years back when it was
possible to post and edit messages directly online (on nabble.com if I
recall correctly). But since it was closed, I didn't take the time to
subscribe to the mailing list and haven't try that way. I somehow managed
to find answers to my questions myself, but today I would need some advice.

I used to be an intense Finale then Sibelius user and I learnt LilyPond
back in 2017. Since then, it is my only tool to engrave my scores and I have
moved progressively my workflow on Linux. Hence I cannot (and doesn't want) to
go back on those proprietary software and it also changed my use of LilyPond (I
replaced frescobaldi by vim, I use a lot of separate folders for each
projects and program some Makefiles to link everything smoothly, ...). 

I received some good news recently. A big music publisher (Schott Music Group),
is interested in publishing some of my compositions I made for my piano students
and it should be released in a near future. I engraved my score with great care,
and as I said, using a Makefile and some unix architecture for that particular
project. However, as you might guess, they want to engrave it with their own
editorial chart and within their music software (I am not sure of which one they
are using yet).

I proposed to send them my LilyPond files but I have been confirmed yesterday
that they cannot process those... They told me an XML file might help them
though. I looked if it was possible to export in XML but I read the result was
bad and LilyPond wasn't made for that task... So here's my question: what would
you suggest I could do to export my scores and help them prepare the album? 

Thanks for the advices!



Re: question about arranger.ly, export notes as text.

2022-08-01 Thread Gilles Thibault

Le 2022-08-01 20:08, Eef Weenink a écrit :

I could solve my issue with the workaround:

\displayLilyMusic { \viola }



Yes. arranger.ly uses display-lily-music which is the scheme version of 
\displayLilyMusic but has an additionnal parameter : the port which can 
be a file

#(let ((port (open-file )))
   (display-lily-music viola port)
   (close-port port))
display-lily-music makes a line break when the music has a BarCheck |
arranger.ly adds a BarCheck after each bars, being careful however, not 
to cut for example a multiMeasureRest R1*8 into R1 | R1 | R1 | R1 | R1 | 
R1 | R1 | R1 )


--
Gilles



Re: question about arranger.ly, export notes as text.

2022-08-01 Thread Eef Weenink
Merci beaucoup!! 

> Op 1 aug. 2022, om 21:13 heeft Gilles Thibault  het 
> volgende geschreven:
> 
> Le 2022-07-30 22:46, Eef Weenink a écrit :
>> It gives error;
> 
> Ah yes damn, the latest version of arranger.ly has a bug on line 112. [(= n 
> 0) crashes when n is not a number)]
> I had reorganized this portion of code but I did not see this error because 
> it only impacts a very small number of functions (including 
> export-instruments!).
> Sorry about that.
> I uploaded the new version (see link below). As only arranger.ly is concerned 
> here is the direct link for this file.
> 
>   http://gillesth.free.fr/Lilypond/arranger.ly
> 
> I also very slightly modified your code so that it can adapt to arranger.ly
> Everything should be fine now
> 
> Good reception.
> 
> Links
> %%%
> 
> Github
> https://github.com/gilles-th/arranger.ly
> 
> Direct access :
> http://gillesth.free.fr/Lilypond/arranger-GIT-copy/arranger.ly.zip
> 
> %%%
> 
> export-instruments test
> %%%
> \version "2.22.0"
> 
> \include "arranger.ly"
> 
> \header {
>  title = "Romance Oubliée"
>  composer = "Liszt, Ferenc (1880)"
>  tagline = "Arrangement Eef Weenink"
> }
> 
> \paper {
>  #(set-paper-size "a4")
> }
> 
> \layout {
>  \context {
>\Voice
>\consists "Melody_engraver"
>\override Stem #'neutral-direction = #'()
>  }
> }
> 
> global = {
>  \key e \minor
>  % This function below does not yet exist in my version 2.22.0
>  %\twoCompoundMeters #'(9 8) #'(3 4)   % uncomment please
>  \time 9/8
>  \partial 4. s4.
>  s4.*3*18
>  %\twoCompoundMeters #'(6 8) #'(2 4)
>  \time 6/8
>  s4.*2*71
>  \bar "|."
> }
> 
> #(init '(viola)) % you have to call init before using other function ! (see 
> doc)
> 
> #(rm 'viola '(1 -4.) #{ \relative c' {
>  c8\downbow_( \mf ^\markup {\italic "Andante malinconico"} b a
>  e'4. \< f2. \! )  | % 1
>  r2.c8_( b a  | % 2
>  f'4. \< fis2. \! )  | % 3
>  r2. fis,8\downbow ( e dis | % 4
>  a' g fis ) c' (b a g fis a )| % 5
>  c (b a) dis\upbow (c b a b c) | % 6
>  dis ( e eis fis4 ) r8 g\upbow_"espr." ( fis e) | % 7
>  b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 8
>  b4.\> ( fis4) \!  r8 fis( g \acciaccatura { b16 } a8)  | % 9
>  c,4.~ c8  b( \acciaccatura { d16} c8 b4 g'8)   | % 10
>  fis4.( e4) r8 g\upbow( fis e)   | % 11
>  b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 12
>  b4.( e,4->) r8 es( b' a ) | % 13
>  a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16 fis g) }  | % 14
>  fis4( e8 fis4) r8 es( b' a ) | % 15
>  a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16_"dim." fis g) }  | % 16
>  fis4 \>( e8 fis2.) \! | % 17
>  R4.*3  | % 18
> 
>  R2.  | % 19
>  r4 r8 \p \  fis8 e dis) a'4. \> ^~ ^(  % 21
>  a8 [ g fis]) fis^--  \! r8 r
>  f4.\downbow(  \acciaccatura { a16} g4 fis8)  % 22
>  %verder met pagina 3
> } #})
> 
> #(export-instruments '(global viola) "exported-file.ly" #t)
> 
>  %
> 
> \score {
>  \new Staff \with {
>instrumentName = "Altviool"
>shortInstrumentName = "Avl."
>\consists "Merge_rests_engraver"
>printPartCombineTexts = ##f
>  }
> << \clef alto \global \viola >>
>  \layout { }
> }
> 
> 
> 
> 
> -- 
> Gilles



Re: question about arranger.ly, export notes as text.

2022-08-01 Thread Gilles Thibault

Le 2022-07-30 22:46, Eef Weenink a écrit :

It gives error;


Ah yes damn, the latest version of arranger.ly has a bug on line 112. 
[(= n 0) crashes when n is not a number)]
I had reorganized this portion of code but I did not see this error 
because it only impacts a very small number of functions (including 
export-instruments!).

Sorry about that.
I uploaded the new version (see link below). As only arranger.ly is 
concerned here is the direct link for this file.


   http://gillesth.free.fr/Lilypond/arranger.ly

I also very slightly modified your code so that it can adapt to 
arranger.ly

Everything should be fine now

Good reception.

Links
%%%

Github
https://github.com/gilles-th/arranger.ly

Direct access :
http://gillesth.free.fr/Lilypond/arranger-GIT-copy/arranger.ly.zip

%%%

export-instruments test
%%%
\version "2.22.0"

\include "arranger.ly"

\header {
  title = "Romance Oubliée"
  composer = "Liszt, Ferenc (1880)"
  tagline = "Arrangement Eef Weenink"
}

\paper {
  #(set-paper-size "a4")
}

\layout {
  \context {
\Voice
\consists "Melody_engraver"
\override Stem #'neutral-direction = #'()
  }
}

global = {
  \key e \minor
  % This function below does not yet exist in my version 2.22.0
  %\twoCompoundMeters #'(9 8) #'(3 4)   % uncomment please
  \time 9/8
  \partial 4. s4.
  s4.*3*18
  %\twoCompoundMeters #'(6 8) #'(2 4)
  \time 6/8
  s4.*2*71
  \bar "|."
}

#(init '(viola)) % you have to call init before using other function ! 
(see doc)


#(rm 'viola '(1 -4.) #{ \relative c' {
  c8\downbow_( \mf ^\markup {\italic "Andante malinconico"} b a
  e'4. \< f2. \! )  | % 1
  r2.c8_( b a  | % 2
  f'4. \< fis2. \! )  | % 3
  r2. fis,8\downbow ( e dis | % 4
  a' g fis ) c' (b a g fis a )| % 5
  c (b a) dis\upbow (c b a b c) | % 6
  dis ( e eis fis4 ) r8 g\upbow_"espr." ( fis e) | % 7
  b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 8
  b4.\> ( fis4) \!  r8 fis( g \acciaccatura { b16 } a8)  | % 9
  c,4.~ c8  b( \acciaccatura { d16} c8 b4 g'8)   | % 10
  fis4.( e4) r8 g\upbow( fis e)   | % 11
  b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 12
  b4.( e,4->) r8 es( b' a ) | % 13
  a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16 fis g) }  | % 14
  fis4( e8 fis4) r8 es( b' a ) | % 15
  a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16_"dim." fis g) }  | % 16
  fis4 \>( e8 fis2.) \! | % 17
  R4.*3  | % 18

  R2.  | % 19
  r4 r8 \p \ ^~ ^(  % 21
  a8 [ g fis]) fis^--  \! r8 r
  f4.\downbow(  \acciaccatura { a16} g4 fis8)  % 22
  %verder met pagina 3
 } #})

#(export-instruments '(global viola) "exported-file.ly" #t)

  %

\score {
  \new Staff \with {
instrumentName = "Altviool"
shortInstrumentName = "Avl."
\consists "Merge_rests_engraver"
printPartCombineTexts = ##f
  }
 << \clef alto \global \viola >>
  \layout { }
}




--
Gilles



Re: question about arranger.ly, export notes as text.

2022-08-01 Thread Eef Weenink
I could solve my issue with the workaround:

\displayLilyMusic { \viola }

and later copy paste the viola part from the logfile into my score again.

regards, Eef




Op 30 jul. 2022, om 22:46 heeft Eef Weenink 
mailto:h.e.ween...@de-erve.nl>> het volgende geschreven:

It gives error;
"72:2: fout: GUILE signaleerde een fout voor de hier beginnende 
expressie"

 makes a file: in file is only:

%%%%%% instruments export : za 30 jul 22:36:19 2022 %%

I tried it with this file: ( a bit long ... but should be)


\version "2.22.2"

\include "arranger.ly<http://arranger.ly/>"

\header {
  title = "Romance Oubliée"
  composer = "Liszt, Ferenc (1880)"
  tagline = "Arrangement Eef Weenink"
}

\paper {
  #(set-paper-size "a4")
}

\layout {
  \context {
\Voice
\consists "Melody_engraver"
\override Stem #'neutral-direction = #'()
  }
}

global = {
\key e \minor
%  \twoCompoundMeters #'(9 8) #'(3 4)
\time 9/8
  \partial 8*3 s8*3

 s4. *3 *18
%\twoCompoundMeters #'(6 8) #'(2 4)
\time 6/8
  s4.*2*71
  \bar "|."
}

viola = \relative c' {
  \partial 8*3
c8\downbow_( \mf ^\markup {\italic "Andante malinconico"} b a e'4. \< 
f2. \! )  | % 1
r2.c8_( b a  | % 2
f'4. \< fis2. \! )  | % 3
r2. fis,8\downbow ( e dis | % 4
a' g fis ) c' (b a g fis a )| % 5
c (b a) dis\upbow (c b a b c) | % 6
dis ( e eis fis4 ) r8 g\upbow_"espr." ( fis e) | % 7
b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 8
b4.\> ( fis4) \!  r8 fis( g \acciaccatura { b16 } a8)  | % 9
c,4.~ c8  b( \acciaccatura { d16} c8 b4 g'8)   | % 10
fis4.( e4) r8 g\upbow( fis e)   | % 11
 b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 12
   b4.( e,4->) r8 es( b' a ) | % 13
   a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16 fis g) }  | % 14
   fis4( e8 fis4) r8 es( b' a ) | % 15
a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16_"dim." fis g) }  | % 16
fis4 \>( e8 fis2.) \! | % 17
R4.*3  | % 18

R2.  | % 19
r4 r8 \p \ ^~ ^(  % 21
a8 [ g fis]) fis^--  \! r8 r
f4.\downbow(  \acciaccatura { a16} g4 fis8)  % 22
%verder met pagina 3
}

#(begin
(export-instruments 'viola "exported-file.ly<http://exported-file.ly/>" #t)
)

\score {
  \new Staff \with {
instrumentName = "Altviool"
shortInstrumentName = "Avl."
\consists "Merge_rests_engraver"
printPartCombineTexts = ##f
  } {
\clef alto
\partCombine \global  \viola
  }
  \layout { }
}





Re: question about arranger.ly, export notes as text.

2022-07-30 Thread Eef Weenink
It gives error;
"72:2<0>: fout: GUILE signaleerde een fout voor de hier beginnende expressie"

 makes a file: in file is only:

%%%%%% instruments export : za 30 jul 22:36:19 2022 %%

I tried it with this file: ( a bit long ... but should be)


\version "2.22.2"

\include "arranger.ly<http://arranger.ly>"

\header {
  title = "Romance Oubliée"
  composer = "Liszt, Ferenc (1880)"
  tagline = "Arrangement Eef Weenink"
}

\paper {
  #(set-paper-size "a4")
}

\layout {
  \context {
\Voice
\consists "Melody_engraver"
\override Stem #'neutral-direction = #'()
  }
}

global = {
\key e \minor
%  \twoCompoundMeters #'(9 8) #'(3 4)
\time 9/8
  \partial 8*3 s8*3

 s4. *3 *18
%\twoCompoundMeters #'(6 8) #'(2 4)
\time 6/8
  s4.*2*71
  \bar "|."
}

viola = \relative c' {
  \partial 8*3
c8\downbow_( \mf ^\markup {\italic "Andante malinconico"} b a e'4. \< 
f2. \! )  | % 1
r2.c8_( b a  | % 2
f'4. \< fis2. \! )  | % 3
r2. fis,8\downbow ( e dis | % 4
a' g fis ) c' (b a g fis a )| % 5
c (b a) dis\upbow (c b a b c) | % 6
dis ( e eis fis4 ) r8 g\upbow_"espr." ( fis e) | % 7
b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 8
b4.\> ( fis4) \!  r8 fis( g \acciaccatura { b16 } a8)  | % 9
c,4.~ c8  b( \acciaccatura { d16} c8 b4 g'8)   | % 10
fis4.( e4) r8 g\upbow( fis e)   | % 11
 b'4.~ b8 b(  c b  \acciaccatura { d16 } c8 b)  | % 12
   b4.( e,4->) r8 es( b' a ) | % 13
   a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16 fis g) }  | % 14
   fis4( e8 fis4) r8 es( b' a ) | % 15
a4. d,4 ( e!8 fis4 \tuplet 3/2 { e16_"dim." fis g) }  | % 16
fis4 \>( e8 fis2.) \! | % 17
R4.*3  | % 18

R2.  | % 19
r4 r8 \p \ ^~ ^(  % 21
a8 [ g fis]) fis^--  \! r8 r
f4.\downbow(  \acciaccatura { a16} g4 fis8)  % 22
%verder met pagina 3
}

#(begin
(export-instruments 'viola "exported-file.ly<http://exported-file.ly>" #t)
)

\score {
  \new Staff \with {
instrumentName = "Altviool"
shortInstrumentName = "Avl."
\consists "Merge_rests_engraver"
printPartCombineTexts = ##f
  } {
\clef alto
\partCombine \global  \viola
  }
  \layout { }
}




Re: question about arranger.ly, export notes as text.

2022-07-30 Thread Gilles Thibault

In the manual is says"

" Once the arrangement is finished, it can be exported to usual 
LilyPond source:


   flute = {...}
   clar = {...}



From arrangerDoc.pdf :

export-instruments syntax

  (export-instruments instruments filename #:optional overwrite?)

So something like

  (export-instruments '(flute clar...) "exported-file.ly" #f)

should produce in the current directory, a file called 
"exported-file.ly", with the definition of flute and clar.



Is this the case ? It's a problem if not !


--
Gilles



question about arranger.ly, export notes as text.

2022-07-29 Thread Eef Weenink
OK, my arrangement is finished, now I want to export it to make a nice, clean 
original. So I am searching for a way to transfer the score (per instrument) to 
a text file or export in logfile etcetera, so I can use that.
But no luck yet.

In the manual is says"

" Once the arrangement is finished, it can be exported to usual LilyPond source:

   flute = {...}
   clar = {...}


"

And also there is mentioned export-instruments.

I did get a lot or errors, and a file with only a description of the instument, 
but no "notes"

Did seach in archives on "export" "text", but not a result I could use.

Anybody an idea on how to get this done?

Regards, Eef


Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-08 Thread Jan-Peter Voigt



> Am 08.10.2021 um 12:04 schrieb David Kastrup :
> 
> Jan-Peter Voigt  writes:
> 
>> Hi all,
>> 
>> probably what I am writing now is not new to most of you. About a year
>> ago there was a discussion regarding the license of Lilypond, triggered
>> by Urs' question about the future of OLL. Again and again the
>> documentation was referred to, which says that Lilypond is a compiler
>> that translates the source code into a PDF. For God's sake, I don't want
>> to discuss the licensing consequences again, but I want to point out
>> that this representation is not exactly complete. In fact, each source
>> file is translated into a Lilypond internal executable, the execution of
>> which then generates the PDF.
> 
> Uh, no?  Calling LilyPond's internal representation of music an
> "executable" is nonsensical since it does not imply any actions but is a
> structural representation of music.
Ok, my designation as internal executable is certainly not a good picture.
My point is that this process is not a pure translation language A to language 
B.
Whatsoever, this is not the topic I want to discuss.
> There never is any linear
> representation being "executed", and source files are interpreted rather
> than compiled, with no file-level representation ever being explicit.
Well at least a (Scheme) Engraver can be used to instruct that a note head be
painted red if it is the third moment in the measure. Alternatively, this 
information
can be given to each affected notehead via override. The source file is 
interpreted,
as you write, and not compiled, as written in the documentation.
(https://lilypond.org/windows.html, https://lilypond.org/macos-x.html, 
https://lilypond.org/unix.html: "Compiling a file")
> That's not an academic difference since it is a non-trivial question
> just what the structure of a MusicXML file is supposed to represent from
> a given LilyPond input file.
Yes, that is essentially what I wanted to say.

Jan-Peter




Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-08 Thread David Kastrup
Jan-Peter Voigt  writes:

> Hi all,
>
> probably what I am writing now is not new to most of you. About a year
> ago there was a discussion regarding the license of Lilypond, triggered
> by Urs' question about the future of OLL. Again and again the
> documentation was referred to, which says that Lilypond is a compiler
> that translates the source code into a PDF. For God's sake, I don't want
> to discuss the licensing consequences again, but I want to point out
> that this representation is not exactly complete. In fact, each source
> file is translated into a Lilypond internal executable, the execution of
> which then generates the PDF.

Uh, no?  Calling LilyPond's internal representation of music an
"executable" is nonsensical since it does not imply any actions but is a
structural representation of music.  There never is any linear
representation being "executed", and source files are interpreted rather
than compiled, with no file-level representation ever being explicit.

That's not an academic difference since it is a non-trivial question
just what the structure of a MusicXML file is supposed to represent from
a given LilyPond input file.

-- 
David Kastrup



Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-08 Thread Jan-Peter Voigt
Hi all,

probably what I am writing now is not new to most of you. About a year
ago there was a discussion regarding the license of Lilypond, triggered
by Urs' question about the future of OLL. Again and again the
documentation was referred to, which says that Lilypond is a compiler
that translates the source code into a PDF. For God's sake, I don't want
to discuss the licensing consequences again, but I want to point out
that this representation is not exactly complete. In fact, each source
file is translated into a Lilypond internal executable, the execution of
which then generates the PDF. This architecture is representable in XML,
if it is possible at all, only with extensions to MEI or MusicXML. So
the goal should only be to implement the graphical representation
accordingly.
But this also means that structures that serve a better organization of
the lilypond source code will most likely be lost during export and
re-import.

Several solutions for the export have now been mentioned. Behind these
are three concepts, all of which have their justification:
1. convert source-based (python-ly accessible through frescobaldi).
2. lilypond internal generation of an intermediate code
3. scheme based generation of an intermediate code

If the sources comply, i.e. do not contain Scheme, then the python-ly
solution is quite charming, fast and batchable. But I would find the
internal generation of an intermediate code, as envisioned and developed
by Jacques, the nicest. The Scheme based solution I started from the
pragmatic consideration that if it works, it can be quickly adapted and
deployed in different environments.

I'm very glad to see this discussion revisited. Maybe something more can
be developed together in this direction. For this reason, I am also
pushing the discussion to the devel list. ;-)

I'll be on the road for the next week, but I plan to get back to the
topic after that.

Cheers,

Jan-Peter


Am 07.10.21 um 22:51 schrieb Thomas Morley:
> Am Do., 7. Okt. 2021 um 13:32 Uhr schrieb Jean Abou Samra 
> :
>>
>> Harm,
>>
>> Le 07/10/2021 à 11:46, Thomas Morley a écrit :
>>> Not sure Jan-Peter's approach is the best method ...
>>
>> What makes you think so?
>>
>> Best,
>> Jean
>
> Maybe my wording was misleading.
>
> I tested ly->musicxml with
> (1) openlilylib, i.e. Jan-Peter
> (2) python-ly
> (3) Frescobaldi
> (4) https://github.com/de-wolff/lilypond.git
>
> Then tried reimporting the resulting xml-file via
> (a) musicxml2ly
> (b) xml2ly
>
> All results were terrible. Here I stopped frustrated.
> I did not look into any code, thus I simply don't know which one is
> the most promising approach.
>
> Cheers,
>   Harm
>




Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-08 Thread Jan-Peter Voigt
Hello Peter, and all,

I spotted the problem with the OLL export-solution in 2.22+:
In api.scm ll. 278,279 the call to ly:grob-properties fails. In that
acknowledger block the stem direction is recorded. I'll look how to fix
that later. If you like to try it out, you can temporarily just delete
or comment that block (ll. 274-281).

Cheers,

Jan-Peter

Am 07.10.21 um 11:49 schrieb Jan-Peter Voigt:
> Hello Peter,
>
> yes, I still receive the messages from the list, but since I have
> changed jobs, my commitment to Lilypond has fallen behind a bit.
> But I hope to curate and update my code soon so that it can serve as a
> starting point for further development. Of course, Jacque's work should
> not be lost sight of, as native support would be nice. But maybe the
> scheme-engraver based solution can push the issue a bit.
> This topic has been on my mind for quite some time. Since Lilypond does
> not offer XML export, its use is problematic in many areas. If I want to
> offer something to a publisher, I can't get anywhere with Lilypond in
> most cases. If I want to archive the notes in a structured way, I can
> come up with 1001 solutions in Scheme that fill a database. But if I
> have curated data in MEI format (or MusicXML), I can systematically feed
> a database (e.g. eXist) with it and provide a REST API afterwards to
> build fancy Webapps.
>
> Best regards,
>
> Jan-Peter
>
>
>
> Am 07.10.21 um 11:30 schrieb Peter Toye:
>> The potential need has gone away now - my Sibelius user has told me that
>> he uses ScoreMuse to export the PDF into a suitable format for Sibelius.
>> Looks to me like an expensive way of doing it, but if he can afford
>> Sibelius he can probably afford ScoreMuse as well.
>>
>>  
>>
>> I agree that exchanging music information between different engravers is
>> an extremely complex problem and I don't underestimate the difficulty.
>>
>>  
>>
>> I tried Jan-Peter's code on Github, but it seems to be broken on recent
>> versions of LilyPond. I'm told it works on 19.0  but I don't have
>> that version any more. And I don't have a contact for him to ask - is he
>> on this mailing list?
>>
>>
>> Best regards,
>>
>>
>> Peter
>>
>> mailto:lilyp...@ptoye.com <mailto:lilyp...@ptoye.com>
>>
>> www.ptoye.com <https://www.ptoye.com>
>>
>>
>> -
>>
>> Wednesday, October 6, 2021, 8:05:12 PM, Jean Abou Samra wrote:
>>
>>
>> Le 05/10/2021 à 13:08, Peter Toye a écrit :
>>
>>
>> Sorry - edited subject to get the linking correct
>>
>>
>>  Harm,
>>
>>
>> 
>> https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
>> 
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>
>>  >
>> 
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
>> 
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>>
>>  has
>> > a discussion about this as well. I've started looking at >
>> the OpenLilyLib solution at the bottom of the thread but it
>> doesn't > work on later versions of LilyPond.
>>
>>
>> It would seem to me that using LP's parsing mechanisms is the
>> right > way to go about it, and I'd offer to help if my health
>> allowed. Is > there anyone on this mailing list who knows about it?
>>
>>
>>
>>
>> About the parsing? Certainly, but the potentiel
>> project spans many different areas of LilyPond.
>> And he design space is vast.
>>
>>
>> With Jacques Menu, we some had private discussions
>> about this. It may be feasible to implement XML export
>> by utilizing Jacque's musicformats library (see
>> his post). So far I only have rough ideas about
>> the LilyPond part, and it is not my current priority.
>>
>>
>> I think the most advanced solution so far is Jan-Peter's
>> https://github.com/openlilylib/lilypond-export
>> <https://github.com/openlilylib/lilypond-export>
>> https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html
>> <https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html>
>> (CCing him). One could start off from that.
>>
>>
>> It's something I will probably need soon.
>>
>>
>>
>>
>> By do means do try to help out, but don't
>> hold your breathe for it. It is a large
>> endeavor.
>>
>>
>> Best,
>> Jean
>>
>
>




Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-08 Thread Jacques Menu
Hello Thomas,

> Le 7 oct. 2021 à 22:51, Thomas Morley  a écrit :
> 
> Am Do., 7. Okt. 2021 um 13:32 Uhr schrieb Jean Abou Samra 
> :
>> 
>> Harm,
>> 
>> Le 07/10/2021 à 11:46, Thomas Morley a écrit :
>>> Not sure Jan-Peter's approach is the best method ...
>> 
>> What makes you think so?
>> 
>> Best,
>> Jean
> 
> Maybe my wording was misleading.
> 
> I tested ly->musicxml with
> (1) openlilylib, i.e. Jan-Peter
> (2) python-ly
> (3) Frescobaldi
> (4) https://github.com/de-wolff/lilypond.git
> 
> Then tried reimporting the resulting xml-file via
> (a) musicxml2ly
> (b) xml2ly
> 
> All results were terrible. Here I stopped frustrated.
> I did not look into any code, thus I simply don't know which one is
> the most promising approach.

Were the bad results due to 1-4 essentially, or were a and b part of the 
quality problem?

JM




Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Jean Abou Samra




Le 07/10/2021 à 22:51, Thomas Morley a écrit :

Am Do., 7. Okt. 2021 um 13:32 Uhr schrieb Jean Abou Samra :

Harm,

Le 07/10/2021 à 11:46, Thomas Morley a écrit :

Not sure Jan-Peter's approach is the best method ...

What makes you think so?

Best,
Jean

Maybe my wording was misleading.

I tested ly->musicxml with
(1) openlilylib, i.e. Jan-Peter
(2) python-ly
(3) Frescobaldi



I thought these two were equivalent — aren't they?



(4) https://github.com/de-wolff/lilypond.git

Then tried reimporting the resulting xml-file via
(a) musicxml2ly
(b) xml2ly

All results were terrible. Here I stopped frustrated.
I did not look into any code, thus I simply don't know which one is
the most promising approach.



If you want my take: Jan-Peter's. Translators are the
only reliable way to get all special timing right (lyrics,
quoted music, combined parts, etc.) without a lot of code
duplication with iterators.

Best,
Jean



Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Thomas Morley
Am Do., 7. Okt. 2021 um 13:32 Uhr schrieb Jean Abou Samra :
>
> Harm,
>
> Le 07/10/2021 à 11:46, Thomas Morley a écrit :
> > Not sure Jan-Peter's approach is the best method ...
>
> What makes you think so?
>
> Best,
> Jean

Maybe my wording was misleading.

I tested ly->musicxml with
(1) openlilylib, i.e. Jan-Peter
(2) python-ly
(3) Frescobaldi
(4) https://github.com/de-wolff/lilypond.git

Then tried reimporting the resulting xml-file via
(a) musicxml2ly
(b) xml2ly

All results were terrible. Here I stopped frustrated.
I did not look into any code, thus I simply don't know which one is
the most promising approach.

Cheers,
  Harm



Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Jean Abou Samra

Harm,

Le 07/10/2021 à 11:46, Thomas Morley a écrit :

Not sure Jan-Peter's approach is the best method ...


What makes you think so?

Best,
Jean



Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Peter Toye
Thanks very much Harm, but as I no longer need it, I shan't go ahead. If I need 
it later I'll resurrect this thread.
 
The reason I like Jan-Peter's approach is that it appears to abstract the music 
from the details of presentation. But I've not looked into it much. 


Best regards,

Peter
mailto:lilyp...@ptoye.com
www.ptoye.com

-
Thursday, October 7, 2021, 10:46:44 AM, Thomas Morley wrote:

> Am Do., 7. Okt. 2021 um 11:30 Uhr schrieb Peter Toye :


>> The potential need has gone away now - my Sibelius user has told me that he 
>> uses ScoreMuse to export the PDF into a suitable format for Sibelius. Looks 
>> to me like an expensive way of doing it, but if he can afford Sibelius he 
>> can probably afford ScoreMuse as well.

>> I agree that exchanging music information between different engravers is an 
>> extremely complex problem and I don't underestimate the difficulty.

>> I tried Jan-Peter's code on Github, but it seems to be broken on recent 
>> versions of LilyPond. I'm told it works on 19.0  but I don't have that 
>> version any more. And I don't have a contact for him to ask - is he on this 
>> mailing list?

> Not sure Jan-Peter's approach is the best method ...
> Anyway, applying the following diff makes it work with recent versions
> (although you'll get a bunch of messages):

> ~/openlilylib/lilypond-export (master)$ git diff
> diff --git a/api.scm b/api.scm
> index 8307dc5..3bfa69a 100644
> --- a/api.scm
> +++ b/api.scm
> @@ -275,8 +275,8 @@
>           (let ((musicstep (ly:context-property context ctprop::export-step))
>                 (staff-id (ly:context-property context ctprop::staff-id))
>                 (voice-id (ly:context-property context ctprop::voice-id)))
> -           (ly:message "stem info ~A" (map car (ly:grob-properties grob)))
> -           (tree-set! musicstep `(,staff-id ,voice-id stem dir)
> (ly:grob-properties grob)) ;(ly:stem::calc-direction grob))
> +           (ly:message "stem info ~A" (map car
> (ly:grob-basic-properties grob)))
> +           (tree-set! musicstep `(,staff-id ,voice-id stem dir)
> (ly:grob-basic-properties grob)) ;(ly:stem::calc-direction grob))
>             ))
>          )


> Cheers,
>   Harm

Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Peter Toye

Hello Jan-Peter,
 
As I wrote, my personal immediate need has now gone away.
 
Everyone seems to agree that some form of exchange mechanism between music 
engravers is needed, but there are many different exchange formats and with 
such a complex subject writing an exporter is a really heavy task. I can only 
admire and thank you for your work and hope it can continue. Let's hope that it 
can be done without too many people pulling in different directions. I wish I 
were able to help.


Best regards,

Peter
mailto:lilyp...@ptoye.com
www.ptoye.com

-

> Message: 2
> Date: Thu, 7 Oct 2021 11:49:29 +0200
> From: Jan-Peter Voigt 
> To: lilypond-user@gnu.org
> Subject: Re: Export from LilyPond to MusicXML (Thomas Morley)
> Message-ID: 
> Content-Type: text/plain; charset=utf-8

> Hello Peter,

> yes, I still receive the messages from the list, but since I have
> changed jobs, my commitment to Lilypond has fallen behind a bit.
> But I hope to curate and update my code soon so that it can serve as a
> starting point for further development. Of course, Jacque's work should
> not be lost sight of, as native support would be nice. But maybe the
> scheme-engraver based solution can push the issue a bit.
> This topic has been on my mind for quite some time. Since Lilypond does
> not offer XML export, its use is problematic in many areas. If I want to
> offer something to a publisher, I can't get anywhere with Lilypond in
> most cases. If I want to archive the notes in a structured way, I can
> come up with 1001 solutions in Scheme that fill a database. But if I
> have curated data in MEI format (or MusicXML), I can systematically feed
> a database (e.g. eXist) with it and provide a REST API afterwards to
> build fancy Webapps.

> Best regards,

> Jan-Peter



> Am 07.10.21 um 11:30 schrieb Peter Toye:

>> The potential need has gone away now - my Sibelius user has told me that
>> he uses ScoreMuse to export the PDF into a suitable format for Sibelius.
>> Looks to me like an expensive way of doing it, but if he can afford
>> Sibelius he can probably afford ScoreMuse as well.

>>  

>> I agree that exchanging music information between different engravers is
>> an extremely complex problem and I don't underestimate the difficulty.

>>  

>> I tried Jan-Peter's code on Github, but it seems to be broken on recent
>> versions of LilyPond. I'm told it works on 19.0  but I don't have
>> that version any more. And I don't have a contact for him to ask - is he
>> on this mailing list?

>> Best regards,

>> Peter

>> mailto:lilyp...@ptoye.com <mailto:lilyp...@ptoye.com>

>> www.ptoye.com <https://www.ptoye.com>

>> -

>> Wednesday, October 6, 2021, 8:05:12 PM, Jean Abou Samra wrote:

>>     Le 05/10/2021 à 13:08, Peter Toye a écrit :

>>         Sorry - edited subject to get the linking correct

>>          Harm,

>>         
>> https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
>>         
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>
>>  >
>>         
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
>>         
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>>
>>  has
>>         > a discussion about this as well. I've started looking at >
>>         the OpenLilyLib solution at the bottom of the thread but it
>>         doesn't > work on later versions of LilyPond.

>>         It would seem to me that using LP's parsing mechanisms is the
>>         right > way to go about it, and I'd offer to help if my health
>>         allowed. Is > there anyone on this mailing list who knows about it?

>>     About the parsing? Certainly, but the potentiel
>>     project spans many different areas of LilyPond.
>>     And he design space is vast.

>>     With Jacques Menu, we some had private discussions
>>     about this. It may be feasible to implement XML export
>>     by utilizing Jacque's musicformats library (see
>>     his post). So far I only have rough ideas about
>>     the LilyPond part, and it is not my current priority.

>>     I think the most advanced solution so far is Jan-Peter's
>>     https://github.com/openlilylib/lilypond-export
>>     <https://github.com/openlilylib/lilypond-export>
>>     https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html
>>     <https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html>
>>     (CCing him). One could start off from that.

>>         It's something I will probably need soon.

>>     By do means do try to help out, but don't
>>     hold your breathe for it. It is a large
>>     endeavor.

>>     Best,
>>     Jean




> --


Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Jan-Peter Voigt
Hello Peter,

yes, I still receive the messages from the list, but since I have
changed jobs, my commitment to Lilypond has fallen behind a bit.
But I hope to curate and update my code soon so that it can serve as a
starting point for further development. Of course, Jacque's work should
not be lost sight of, as native support would be nice. But maybe the
scheme-engraver based solution can push the issue a bit.
This topic has been on my mind for quite some time. Since Lilypond does
not offer XML export, its use is problematic in many areas. If I want to
offer something to a publisher, I can't get anywhere with Lilypond in
most cases. If I want to archive the notes in a structured way, I can
come up with 1001 solutions in Scheme that fill a database. But if I
have curated data in MEI format (or MusicXML), I can systematically feed
a database (e.g. eXist) with it and provide a REST API afterwards to
build fancy Webapps.

Best regards,

Jan-Peter



Am 07.10.21 um 11:30 schrieb Peter Toye:
> The potential need has gone away now - my Sibelius user has told me that
> he uses ScoreMuse to export the PDF into a suitable format for Sibelius.
> Looks to me like an expensive way of doing it, but if he can afford
> Sibelius he can probably afford ScoreMuse as well.
>
>  
>
> I agree that exchanging music information between different engravers is
> an extremely complex problem and I don't underestimate the difficulty.
>
>  
>
> I tried Jan-Peter's code on Github, but it seems to be broken on recent
> versions of LilyPond. I'm told it works on 19.0  but I don't have
> that version any more. And I don't have a contact for him to ask - is he
> on this mailing list?
>
>
> Best regards,
>
>
> Peter
>
> mailto:lilyp...@ptoye.com <mailto:lilyp...@ptoye.com>
>
> www.ptoye.com <https://www.ptoye.com>
>
>
> -
>
> Wednesday, October 6, 2021, 8:05:12 PM, Jean Abou Samra wrote:
>
>
> Le 05/10/2021 à 13:08, Peter Toye a écrit :
>
>
> Sorry - edited subject to get the linking correct
>
>
>  Harm,
>
>
> 
> https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
> 
> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>
>  >
> 
> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
> 
> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>>
>  has
> > a discussion about this as well. I've started looking at >
> the OpenLilyLib solution at the bottom of the thread but it
> doesn't > work on later versions of LilyPond.
>
>
> It would seem to me that using LP's parsing mechanisms is the
> right > way to go about it, and I'd offer to help if my health
> allowed. Is > there anyone on this mailing list who knows about it?
>
>
>
>
> About the parsing? Certainly, but the potentiel
> project spans many different areas of LilyPond.
> And he design space is vast.
>
>
> With Jacques Menu, we some had private discussions
> about this. It may be feasible to implement XML export
> by utilizing Jacque's musicformats library (see
> his post). So far I only have rough ideas about
> the LilyPond part, and it is not my current priority.
>
>
> I think the most advanced solution so far is Jan-Peter's
> https://github.com/openlilylib/lilypond-export
> <https://github.com/openlilylib/lilypond-export>
> https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html
> <https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html>
> (CCing him). One could start off from that.
>
>
> It's something I will probably need soon.
>
>
>
>
> By do means do try to help out, but don't
> hold your breathe for it. It is a large
> endeavor.
>
>
> Best,
> Jean
>




Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Thomas Morley
Am Do., 7. Okt. 2021 um 11:30 Uhr schrieb Peter Toye :
>
> The potential need has gone away now - my Sibelius user has told me that he 
> uses ScoreMuse to export the PDF into a suitable format for Sibelius. Looks 
> to me like an expensive way of doing it, but if he can afford Sibelius he can 
> probably afford ScoreMuse as well.
>
>
>
> I agree that exchanging music information between different engravers is an 
> extremely complex problem and I don't underestimate the difficulty.
>
>
>
> I tried Jan-Peter's code on Github, but it seems to be broken on recent 
> versions of LilyPond. I'm told it works on 19.0  but I don't have that 
> version any more. And I don't have a contact for him to ask - is he on this 
> mailing list?

Not sure Jan-Peter's approach is the best method ...
Anyway, applying the following diff makes it work with recent versions
(although you'll get a bunch of messages):

~/openlilylib/lilypond-export (master)$ git diff
diff --git a/api.scm b/api.scm
index 8307dc5..3bfa69a 100644
--- a/api.scm
+++ b/api.scm
@@ -275,8 +275,8 @@
  (let ((musicstep (ly:context-property context ctprop::export-step))
(staff-id (ly:context-property context ctprop::staff-id))
(voice-id (ly:context-property context ctprop::voice-id)))
-   (ly:message "stem info ~A" (map car (ly:grob-properties grob)))
-   (tree-set! musicstep `(,staff-id ,voice-id stem dir)
(ly:grob-properties grob)) ;(ly:stem::calc-direction grob))
+   (ly:message "stem info ~A" (map car
(ly:grob-basic-properties grob)))
+   (tree-set! musicstep `(,staff-id ,voice-id stem dir)
(ly:grob-basic-properties grob)) ;(ly:stem::calc-direction grob))
))
 )


Cheers,
  Harm



Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-07 Thread Peter Toye
The potential need has gone away now - my Sibelius user has told me that he 
uses ScoreMuse to export the PDF into a suitable format for Sibelius. Looks to 
me like an expensive way of doing it, but if he can afford Sibelius he can 
probably afford ScoreMuse as well.
 
I agree that exchanging music information between different engravers is an 
extremely complex problem and I don't underestimate the difficulty.
 
I tried Jan-Peter's code on Github, but it seems to be broken on recent 
versions of LilyPond. I'm told it works on 19.0  but I don't have that version 
any more. And I don't have a contact for him to ask - is he on this mailing 
list?

Best regards,

Peter
mailto:lilyp...@ptoye.com
www.ptoye.com

-
Wednesday, October 6, 2021, 8:05:12 PM, Jean Abou Samra wrote:

> Le 05/10/2021 à 13:08, Peter Toye a écrit :


>> Sorry - edited subject to get the linking correct

>>  Harm,

>> https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
>>  > 
>> <https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706>
>>  has > a discussion about this as well. I've started looking at > the 
>> OpenLilyLib solution at the bottom of the thread but it doesn't > work on 
>> later versions of LilyPond.

>> It would seem to me that using LP's parsing mechanisms is the right > way to 
>> go about it, and I'd offer to help if my health allowed. Is > there anyone 
>> on this mailing list who knows about it?


> About the parsing? Certainly, but the potentiel
> project spans many different areas of LilyPond.
> And he design space is vast.

> With Jacques Menu, we some had private discussions
> about this. It may be feasible to implement XML export
> by utilizing Jacque's musicformats library (see
> his post). So far I only have rough ideas about
> the LilyPond part, and it is not my current priority.

> I think the most advanced solution so far is Jan-Peter's
> https://github.com/openlilylib/lilypond-export
> https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html
> (CCing him). One could start off from that.

>> It's something I will probably need soon.


> By do means do try to help out, but don't
> hold your breathe for it. It is a large
> endeavor.

> Best,
> Jean

Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-06 Thread Jean Abou Samra

Le 05/10/2021 à 13:08, Peter Toye a écrit :


Sorry - edited subject to get the linking correct

 Harm,

https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706 
<https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706> has 
a discussion about this as well. I've started looking at 
the OpenLilyLib solution at the bottom of the thread but it doesn't 
work on later versions of LilyPond.


It would seem to me that using LP's parsing mechanisms is the right 
way to go about it, and I'd offer to help if my health allowed. Is 
there anyone on this mailing list who knows about it?





About the parsing? Certainly, but the potentiel
project spans many different areas of LilyPond.
And he design space is vast.

With Jacques Menu, we some had private discussions
about this. It may be feasible to implement XML export
by utilizing Jacque's musicformats library (see
his post). So far I only have rough ideas about
the LilyPond part, and it is not my current priority.

I think the most advanced solution so far is Jan-Peter's
https://github.com/openlilylib/lilypond-export
https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html
(CCing him). One could start off from that.


It's something I will probably need soon.




By do means do try to help out, but don't
hold your breathe for it. It is a large
endeavor.

Best,
Jean



Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-05 Thread Peter Toye
Agreed, but it's possible that someone here might know more about this project 
and now it's getting on.


Best regards,

Peter
mailto:lilyp...@ptoye.com
www.ptoye.com

-
Tuesday, October 5, 2021, 12:53:43 PM, m.tarensk...@kpnmail.nl wrote:

> lilypond-to-musicxml export is a frequentlly asked, but easier said than 
> done, feature request, that pops up from time to time. And everytime it 
> doesn't reach a point beyond discussions and experimental or quite incomplete 
> implementations. Apparently both MusicXML and LilyPond are complex beasts - I 
> am not complaining.

> MT



> Verzonden vanaf mijn Huawei mobiele telefoon

Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-05 Thread m.tarensk...@kpnmail.nl
lilypond-to-musicxml export is a frequentlly asked, but easier said than done, feature request, that pops up from time to time. And everytime it doesn't reach a point beyond discussions and experimental or quite incomplete implementations. Apparently both MusicXML and LilyPond are complex beasts -  I am not complaining.MTVerzonden vanaf mijn Huawei mobiele telefoon

Re: Export from LilyPond to MusicXML (Thomas Morley)

2021-10-05 Thread Peter Toye

Sorry - edited subject to get the linking correct
 
 Harm,
 
 
https://music.stackexchange.com/questions/42315/lilypond-to-musicxml-to-sibelius#73706
 has a discussion about this as well. I've started looking at the OpenLilyLib 
solution at the bottom of the thread but it doesn't work on later versions of 
LilyPond.
 
It would seem to me that using LP's parsing mechanisms is the right way to go 
about it, and I'd offer to help if my health allowed. Is there anyone on this 
mailing list who knows about it? It's something I will probably need soon.


Best regards,

Peter
mailto:lilyp...@ptoye.com
www.ptoye.com

-
Tuesday, September 28, 2021, 6:58:40 AM, lilypond-user-requ...@gnu.org wrote:


> --

> Message: 2
> Date: Tue, 28 Sep 2021 00:53:16 +0200
> From: Thomas Morley 
> To: Jacques Menu 
> Cc: "lilypond-user Mailing List (lilypond-user@gnu.org)"
>         , Dominique Fober 
> Subject: Re: Export from LilyPond to MusicXML
> Message-ID:
>         
> Content-Type: text/plain; charset="UTF-8"

> Hi Jacques,

> Am Mo., 27. Sept. 2021 um 00:48 Uhr schrieb Jacques Menu
> :


>> Hello folks,

>> The recent posts on this subject show there is interest in the matter. Sorry 
>> for the length of this one...

> Tbh, most of the mor detailed stuff is way over my head..


>> My work was initially homed by Grame’s libmusicxml2 library as an example of 
>> what it could be used for, in the lilypond branch at 
>> https://github.com/grame-cncm/libmusicxml/tree/lilypond.

>> Dom Fober, the author and maintainer of libmusicxml2, and I decided some 
>> time ago to separate things for practical reasons, and I now push to the 
>> GitHub repository I created at https://github.com/jacques-menu/musicformats.

> Good to know.

>> I’m currenly finalizing version 1.0.0, which explains why the test and 
>> master branches are not up to date - only the dev branch is currently.


>> The musicformats library is structured along the lines shown at page 16 in 
>> https://github.com/jacques-menu/musicformats/blob/dev/doc/maintainersGuideToMusicFormats/maintainersGuideToMusicformats.pdf
>>  (the users’s guide is not yet ‘usable’, sorry).

>> The central component of musicformats is MSR (Music Score Representation), 
>> from which various formats can be obtained.

>> In this picture, we see that we could create MusicXML output from within the 
>> LilyPond implementation going along the LilyPond - LPSR - MSR - MXSR  - 
>> MusicMXL path. The missing part would be the creation of an LPSR (LilyPond 
>> Score Representation), the others already exist.

>> As an example, the LPSR representation and LilyPond output produced by:

>> xml2ly basic/HelloWorld.xml -display-lpsr > LPSR_contents.txt 2>&1

>> are in the attached LPSR_contents.txt file.

>> The resulting score is:

>> Jean and I have had discussions as to how the export to MusicXML could be 
>> tackled on the LilyPond side, but nothing concrete yet. Some of the 
>> information needed is readily accessible inside LilyPond, but grabbing the 
>> remaining part is not easy.

>> The musicformats repository contains examples using the library to create 
>> scores in C++ applications, among them:

>> jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > 
>> Mikrokosmos3Wandering -a
>> What Mikrokosmos3Wandering does:

>>     This multi-pass generator creates a textual representation
>>     of Zoltán Kodály's Mikrokosmos III Wandering score.
>>     It performs various passes depending on the output generated.

>>     Other passes are performed according to the options, such as
>>     displaying views of the internal data or printing a summary of the score.

>>     The activity log and warning/error messages go to standard error.

>> jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > 
>> Mikrokosmos3Wandering -apropos generate
>> --- Help for atom "generate" in subgroup "Generated output"
>>     -generate, -gen GENERATED_OUTPUT_KIND
>>           Generate GENERATED_OUTPUT_KIND code to the output.
>>             The 5 generated output kinds available are:
>>             braille, guido, lilypond, midi and musicxml.
>>             The default is 'LilyPond output'.

>> (midi output is actually not yet available, though)

>> For example, one can run:

>> jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > 
>> Mikrokosmos3Wandering -generate  musicxml  -o Mikrokosmos3Wandering.xml 
>> -trace=passes

>> %--
>>   Pass 1: Creating the MSR score

Re: Export from LilyPond to MusicXML

2021-09-27 Thread Thomas Morley
Hi Jacques,

Am Mo., 27. Sept. 2021 um 00:48 Uhr schrieb Jacques Menu
:
>
> Hello folks,
>
> The recent posts on this subject show there is interest in the matter. Sorry 
> for the length of this one...

Tbh, most of the mor detailed stuff is way over my head..
>
> My work was initially homed by Grame’s libmusicxml2 library as an example of 
> what it could be used for, in the lilypond branch at 
> https://github.com/grame-cncm/libmusicxml/tree/lilypond.
>
> Dom Fober, the author and maintainer of libmusicxml2, and I decided some time 
> ago to separate things for practical reasons, and I now push to the GitHub 
> repository I created at https://github.com/jacques-menu/musicformats.

Good to know.

> I’m currenly finalizing version 1.0.0, which explains why the test and master 
> branches are not up to date - only the dev branch is currently.
>
> The musicformats library is structured along the lines shown at page 16 in 
> https://github.com/jacques-menu/musicformats/blob/dev/doc/maintainersGuideToMusicFormats/maintainersGuideToMusicformats.pdf
>  (the users’s guide is not yet ‘usable’, sorry).
>
> The central component of musicformats is MSR (Music Score Representation), 
> from which various formats can be obtained.
>
> In this picture, we see that we could create MusicXML output from within the 
> LilyPond implementation going along the LilyPond - LPSR - MSR - MXSR  - 
> MusicMXL path. The missing part would be the creation of an LPSR (LilyPond 
> Score Representation), the others already exist.
>
> As an example, the LPSR representation and LilyPond output produced by:
>
> xml2ly basic/HelloWorld.xml -display-lpsr > LPSR_contents.txt 2>&1
>
> are in the attached LPSR_contents.txt file.
>
> The resulting score is:
>
>
> Jean and I have had discussions as to how the export to MusicXML could be 
> tackled on the LilyPond side, but nothing concrete yet. Some of the 
> information needed is readily accessible inside LilyPond, but grabbing the 
> remaining part is not easy.
>
> The musicformats repository contains examples using the library to create 
> scores in C++ applications, among them:
>
> jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > 
> Mikrokosmos3Wandering -a
> What Mikrokosmos3Wandering does:
>
> This multi-pass generator creates a textual representation
> of Zoltán Kodály's Mikrokosmos III Wandering score.
> It performs various passes depending on the output generated.
>
> Other passes are performed according to the options, such as
> displaying views of the internal data or printing a summary of the score.
>
> The activity log and warning/error messages go to standard error.
>
> jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > 
> Mikrokosmos3Wandering -apropos generate
> --- Help for atom "generate" in subgroup "Generated output"
> -generate, -gen GENERATED_OUTPUT_KIND
>   Generate GENERATED_OUTPUT_KIND code to the output.
> The 5 generated output kinds available are:
> braille, guido, lilypond, midi and musicxml.
> The default is 'LilyPond output'.
>
> (midi output is actually not yet available, though)
>
> For example, one can run:
>
> jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > 
> Mikrokosmos3Wandering -generate  musicxml  -o Mikrokosmos3Wandering.xml 
> -trace=passes
>
> %--
>   Pass 1: Creating the MSR score with the functions
> %--
> *** MusicXML warning *** :91: The staffMeasuresSlicesSequence of staff 
> "Part_OnlyPart_Staff_One" is null
> *** MusicXML warning *** :91: The staffMeasuresSlicesSequence of staff 
> "Part_OnlyPart_Staff_Two" is null
>
> %--
>   Pass 2: Convert the MSR score into a second MSR
> %--
>
> %--
>   Pass 3: Translating the MSR into an MXSR
> %--
>
> %--
>   Pass 4: Convert the MXSR into MusicXML text
> %--
>
> Opening file 'Mikrokosmos3Wandering.xml' for writing
> Warning message(s) were issued for input line 91
>
>
> This creates file Mikrokosmos3Wandering.xml, attached.
>
>
> The functionality of musicformats is available as API C++ functions. For 
> example, conversion from MusicXML data to LilyPond

Export from LilyPond to MusicXML

2021-09-26 Thread Jacques Menu
Hello folks,The recent posts on this subject show there is interest in the matter. Sorry for the length of this one...My work was initially homed by Grame’s libmusicxml2 library as an example of what it could be used for, in the lilypond branch at https://github.com/grame-cncm/libmusicxml/tree/lilypond.Dom Fober, the author and maintainer of libmusicxml2, and I decided some time ago to separate things for practical reasons, and I now push to the GitHub repository I created at https://github.com/jacques-menu/musicformats.I’m currenly finalizing version 1.0.0, which explains why the test and master branches are not up to date - only the dev branch is currently.The musicformats library is structured along the lines shown at page 16 in https://github.com/jacques-menu/musicformats/blob/dev/doc/maintainersGuideToMusicFormats/maintainersGuideToMusicformats.pdf (the users’s guide is not yet ‘usable’, sorry).The central component of musicformats is MSR (Music Score Representation), from which various formats can be obtained.In this picture, we see that we could create MusicXML output from within the LilyPond implementation going along the LilyPond - LPSR - MSR - MXSR  - MusicMXL path. The missing part would be the creation of an LPSR (LilyPond Score Representation), the others already exist.As an example, the LPSR representation and LilyPond output produced by:	xml2ly basic/HelloWorld.xml -display-lpsr > LPSR_contents.txt 2>&1are in the attached LPSR_contents.txt file. The resulting score is:Jean and I have had discussions as to how the export to MusicXML could be tackled on the LilyPond side, but nothing concrete yet. Some of the information needed is readily accessible inside LilyPond, but grabbing the remaining part is not easy. The musicformats repository contains examples using the library to create scores in C++ applications, among them:jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > Mikrokosmos3Wandering -aWhat Mikrokosmos3Wandering does:    This multi-pass generator creates a textual representation    of Zoltán Kodály's Mikrokosmos III Wandering score.    It performs various passes depending on the output generated.    Other passes are performed according to the options, such as    displaying views of the internal data or printing a summary of the score.    The activity log and warning/error messages go to standard error.jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > Mikrokosmos3Wandering -apropos generate--- Help for atom "generate" in subgroup "Generated output"    -generate, -gen GENERATED_OUTPUT_KIND          Generate GENERATED_OUTPUT_KIND code to the output.            The 5 generated output kinds available are:            braille, guido, lilypond, midi and musicxml.            The default is 'LilyPond output'.(midi output is actually not yet available, though)For example, one can run:jacquesmenu@macmini: ~/musicformats-git-dev/files/musicxml > Mikrokosmos3Wandering -generate  musicxml  -o Mikrokosmos3Wandering.xml -trace=passes%--  Pass 1: Creating the MSR score with the functions%--*** MusicXML warning *** :91: The staffMeasuresSlicesSequence of staff "Part_OnlyPart_Staff_One" is null*** MusicXML warning *** :91: The staffMeasuresSlicesSequence of staff "Part_OnlyPart_Staff_Two" is null%--  Pass 2: Convert the MSR score into a second MSR%--%--  Pass 3: Translating the MSR into an MXSR%--%--  Pass 4: Convert the MXSR into MusicXML text%--Opening file 'Mikrokosmos3Wandering.xml' for writingWarning message(s) were issued for input line 91This creates file Mikrokosmos3Wandering.xml, attached.The functionality of musicformats is available as API C++ functions. For example, conversion from MusicXML data to LilyPond, as used by xml2ly and Grame’s experimental web site at https://libmusicxml.grame.fr, is available through these functions:/*!  \brief Converts a MusicXML representation to the LilyPond format.  \param file a file name  \param out the output stream  \return an error code (\c musicFormatsError::k_NoError when success)*/EXP musicFormatsError musicxmlfile2lilypond (  const char *file, const optionsVector& options, std::ostream& out, std::ostream& err);/*!  \brief Converts a MusicXML representation to the LilyPond format.  \param fd a file descriptor  \param out the output stream  \return an error code (\c musicFormatsError::k_NoError when success)*/EXP musicFormatsError musicxmlfd2lilypond (  FILE* fd, const optionsVector& opt

Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Matt Hood
That's quite handy to know, thanks for your response Carl.

Cheers,
Matt.

On Wed, Jun 30, 2021 at 2:35 AM Carl Sorensen  wrote:
>
>
>
> On 6/29/21, 2:43 AM, "lilypond-user on behalf of Matt Hood" 
>  mattho...@gmail.com> wrote:
>
> Hi everyone,
>
> I'm working with lilypond output in the browser, using its SVG export
> function. Lilypond permits attaching attributes to particular kinds of
> grobs, e.g.:
>
> {
>   \override NoteHead.output-attributes =
>   #'((class . "NoteHead"))
>   c
> }
>
> The above will cause all NoteHead objects to have the following SVG:
>
> 
>   ...NoteHead grob SVG elements...
> 
>
> My question is: how can I make it so that all graphical objects have
> their name in the class attribute?
>
> I've tried using the following scheme function:
>
> #(define (add-class grob grob-origin context)
>  (let (name (cdr (assoc 'name
> (ly:grob-property grob 'meta
> (set! (ly:grob-property grob 'output-attributes) '((class
> . name)
>
> This successfully (I believe) extracts the correct name, and assigns
> it to the output-attributes field. As per the instructions in the
> lilypond documentation, I then attempted to use \applyOutput Score
> #add-class to apply this function to all graphical objects, but it
> didn't supply all of the required objects. My attempted code is below:
>
> \applyOutput Score #add-class
> \score {
> \new RhythmicStaff {
>   c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
> }
> }
>
> If I add a print call to the add-class function, I can see that it was
> called for the objects with the following names from which crucial
> objects such as NoteHead are missing:
>
> NonMusicalPaperColumn
> PaperColumn
> Clef
> TimeSignature
> LedgerLineSpanner
> StaffSymbol
> VerticalAxisGroup
> SystemStartBar
> SpacingSpanner
> VerticalAlignment
> StaffSpacing
> BreakAlignment
> LeftEdge
> BreakAlignGroup
> BreakAlignGroup
> BreakAlignGroup
>
> Matt, I'm not an expert on \applyOutput, but it appears to me these are all 
> grobs created by engravers that live in the Score context by default.
>
> You may wish to try \applyOutput to Staff and Voice as well.
>
> Haven't tried it, and don't know if it will work, but it's an idea.
>
> HTH,
>
> Carl
>
>



Fwd: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Matt Hood
On Wed, Jun 30, 2021 at 3:32 AM Aaron Hill  wrote:
>
> On 2021-06-29 9:43 am, Jean Abou Samra wrote:
> > However, this problem can be solved by writing
> > an engraver (those are the powerful tools that
> > \applyOutput uses under the hood).
> >
> > \version "2.22.0"
> >
> > \layout {
> >   \context {
> > \Score
> > \consists
> >   #(lambda (context)
> >  (make-engraver
> >(acknowledgers
> >  ((grob-interface engraver grob source-engraver)
> > (set! (ly:grob-property grob 'output-attributes)
> >   `((class . ,(grob::name grob
> >   }
> > }
> >
> > <<
> >   { c d e f }
> >   \\
> >   { g a b c' }
> >>>
>
> NOTE: You might want this engraver to *append* to the class attribute,
> so you can still specify classes on an individual basis:
>
> 
> \version "2.22.0"
>
> SvgAddClassName =
> #(lambda (ctxt)
>(define (add-class-name grob)
> (let* ((attribs (ly:grob-property grob 'output-attributes '()))
>(class (ly:assoc-get 'class attribs '()))
>(name (grob::name grob)))
>  (set! class (if (null? class) name (format #f "~a ~a" class name)))
>  (set! attribs (assoc-set! attribs 'class class))
>  (ly:grob-set-property! grob 'output-attributes attribs)))
>(make-engraver
> (acknowledgers
>  ((grob-interface engraver grob source)
>   (add-class-name grob)
>
> \layout { \context { \Score \consists \SvgAddClassName } }
>
> { \tweak output-attributes #'((class . foo)) b'4 }
> 
>
>
> -- Aaron Hill

Hi Aaron, thanks for your response and solution. I just tried it out
and it works an absolute treat!

Thanks for taking the time to put it together, I really appreciate it.

Cheers,
Matt.



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Matt Hood
P.S. (Sorry to be spamming the list!)

> Out of curiosity: what tool is this for?

A browser-based rhythm game I'm putting together, which makes use of
Lilypond's fantastic proportional notation feature. The addition of
classes is used to separate moving objects (NoteHead, Stem, BarLine,
etc) from non-moving objects (StaffLine, Clef, TimeSignature).

Cheers,
Matt.

On Wed, Jun 30, 2021 at 2:43 AM Jean Abou Samra  wrote:
>
> Hello,
>
> > Le 29/06/2021 10:42, Matt Hood  a écrit :
> >
> >
> > Hi everyone,
> >
> > I'm working with lilypond output in the browser, using its SVG export
> > function. Lilypond permits attaching attributes to particular kinds of
> > grobs, e.g.:
> >
> > {
> > \override NoteHead.output-attributes =
> > #'((class . "NoteHead"))
> > c
> > }
> >
> > The above will cause all NoteHead objects to have the following SVG:
> >
> > 
> > ...NoteHead grob SVG elements...
> > 
> >
> > My question is: how can I make it so that all graphical objects have
> > their name in the class attribute?
> >
> > I've tried using the following scheme function:
> >
> > #(define (add-class grob grob-origin context)
> > (let (name (cdr (assoc 'name
>
> This lacks a pair of parentheses around the
> bindings. You might have posted the wrong
> version of your code.
>
> > (ly:grob-property grob 'meta
> > (set! (ly:grob-property grob 'output-attributes) '((class
> > . name)
>
> '((class . name)) is literally a list containing a
> list of the symbols 'class and 'name, which is not
> very useful ;-) You rather want quasiquoting:
> `((class . ,name)).
>
> >
> > This successfully (I believe) extracts the correct name, and assigns
> > it to the output-attributes field. As per the instructions in the
> > lilypond documentation, I then attempted to use \applyOutput Score
> > #add-class to apply this function to all graphical objects, but it
> > didn't supply all of the required objects. My attempted code is below:
> >
> > \applyOutput Score #add-class
> > \score {
> > \new RhythmicStaff {
> > c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
> > }
> > }
> >
> > If I add a print call to the add-class function, I can see that it was
> > called for the objects with the following names from which crucial
> > objects such as NoteHead are missing:
> >
> > NonMusicalPaperColumn
> > PaperColumn
> > Clef
> > TimeSignature
> > LedgerLineSpanner
> > StaffSymbol
> > VerticalAxisGroup
> > SystemStartBar
> > SpacingSpanner
> > VerticalAlignment
> > StaffSpacing
> > BreakAlignment
> > LeftEdge
> > BreakAlignGroup
> > BreakAlignGroup
> > BreakAlignGroup
>
> I'm not sure how you got this output. The way
> the code is written, the \applyOutput is separate
> from the main \score, so it is a score of its own
> containing no actual music. If you move it to
> the beginning of the music, you should get at
> least one NoteHead, as illustrated here:
>
> \version "2.22.0"
>
> {
>   \applyOutput Score
> #(lambda (grob origin context)
>(ly:message "~s" grob)
>(set! (ly:grob-property grob 'color)
>  red))
>   <<
> { c d e f }
> \\
> { g a b c' }
>   >>
> }
>
> This also shows the reason why \applyOutput
> isn't working as you are expecting. \applyOutput
> applies to one single time step. Think of it
> as a \once \override. I don't think there
> currently exists an equivalent of \applyOutput
> for the whole score (perhaps because there were
> not many use cases before output-attributes).
>
> However, this problem can be solved by writing
> an engraver (those are the powerful tools that
> \applyOutput uses under the hood).
>
> \version "2.22.0"
>
> \layout {
>   \context {
> \Score
> \consists
>   #(lambda (context)
>  (make-engraver
>(acknowledgers
>  ((grob-interface engraver grob source-engraver)
> (set! (ly:grob-property grob 'output-attributes)
>   `((class . ,(grob::name grob
>   }
> }
>
> <<
>   { c d e f }
>   \\
>   { g a b c' }
> >>
>
>
> Out of curiosity: what tool is this for?
>
> Best,
> Jean



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Matt Hood
On Wed, Jun 30, 2021 at 2:43 AM Jean Abou Samra  wrote:
>
> Hello,
>
>...
>
> I'm not sure how you got this output. The way
> the code is written, the \applyOutput is separate
> from the main \score, so it is a score of its own
> containing no actual music. If you move it to
> the beginning of the music, you should get at
> least one NoteHead, as illustrated here:
>
> \version "2.22.0"
>
> {
>   \applyOutput Score
> #(lambda (grob origin context)
>(ly:message "~s" grob)
>(set! (ly:grob-property grob 'color)
>  red))
>   <<
> { c d e f }
> \\
> { g a b c' }
>   >>
> }
>
> This also shows the reason why \applyOutput
> isn't working as you are expecting. \applyOutput
> applies to one single time step. Think of it
> as a \once \override. I don't think there
> currently exists an equivalent of \applyOutput
> for the whole score (perhaps because there were
> not many use cases before output-attributes).
>
> However, this problem can be solved by writing
> an engraver (those are the powerful tools that
> \applyOutput uses under the hood).
>
> \version "2.22.0"
>
> \layout {
>   \context {
> \Score
> \consists
>   #(lambda (context)
>  (make-engraver
>(acknowledgers
>  ((grob-interface engraver grob source-engraver)
> (set! (ly:grob-property grob 'output-attributes)
>   `((class . ,(grob::name grob
>   }
> }
>
> <<
>   { c d e f }
>   \\
>   { g a b c' }
> >>
>
>
> Out of curiosity: what tool is this for?
>
> Best,
> Jean

Thanks for picking up on those errors in the scheme function, Jean. I
may have been a little cavelier in copying over the minimal code
examples, and I hadn't picked up the quoting error. The output came
from inserting (display name "\n"), to observe the output in the
compilation process. I tried a variety of locations to place
\applyOutput Score #add-class and this one gave me the most objects.

Thanks for getting the ball rolling with the suggestion of a custom
engraver - it looks like I have some documentation to read! They seem
wonderfully useful.

I really appreciate your response - thank you again.

Cheers,
Matt.



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Jean Abou Samra


> Le 29/06/2021 23:42, Jean Abou Samra  a écrit :
> 
> That being said, I'm not sure I would want to see something
> along the lines of publicizing nested_property_alist. We already
> use ly:assoc-get nearly everywhere (through the alias assoc-get),
> and while more convenient thanks to the optional default value
> parameter, it is not as efficient as assq-ref when, as is often
> the case, the keys are symbols, which can be cheaply compared
> with eq?. My concern is that code may then be written that
> copies the data n times if doing n insertions instead of just
> working on a copy made once. So this would warrant some thinking
> and perhaps a structure of our own. The challenge will be in
> trying to make it work more or less seamlessly with standard
> Guile libraries.


And of course I forgot to say what had triggered the reply in
the first place: I think it would be more useful to support
callbacks for subproperties.

Jean



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Jean Abou Samra


> Le 29/06/2021 22:45, David Kastrup  a écrit :
> 
> 
> Aaron Hill  writes:
> 
> > On 2021-06-29 1:20 pm, David Kastrup wrote:
> > >> 
> > >> \version "2.22.0"
> > >> SvgAddClassName =
> > >> #(lambda (ctxt)
> > >> (define (add-class-name grob)
> > >> (let* ((attribs (ly:grob-property grob 'output-attributes '()))
> > >> (class (ly:assoc-get 'class attribs '()))
> > >> (name (grob::name grob)))
> > >> (set! class (if (null? class) name (format #f "~a ~a" class
> > >> name)))
> > >> (set! attribs (assoc-set! attribs 'class class))
> > >> (ly:grob-set-property! grob 'output-attributes attribs)))
> > >> (make-engraver
> > >> (acknowledgers
> > >> ((grob-interface engraver grob source)
> > >> (add-class-name grob)
> > > That assoc-set! looks like a stinker. Doesn't it mess with shared
> > > data
> > > structures?
> > Hrm... would it be better to explicitly alist-copy the result from
> > ly:assoc-get? Actually, I guess you could do:
> > 
> > (alist-cons 'class ... (alist-delete 'class attribs))
> > 
> Either that or not even bother about deleting the other entry.
> 
> > ...since the SRFI says that alist-delete does not modify the original
> > structure, only that it might return an alist with a common tail.
> > And on this point, should LilyPond provide an ly:assoc-set to pair
> > with ly:assoc-get that avoids potential issues with shared structures?
> I am not sure that we'd want our own modifiers for basic data
> structures. Though there may be a point in unifying hash tables,
> association lists, vectors into a common data structure and provide
> caching accessors for that.
> 
> I mean, stuff like notename languages and drum tables and so are already
> an awkward mixture.


My single biggest annoyance and hair pulling source with
Guile is its lack of good data structures. We use alists
almost ubiquitously, going against all rules of computational
complexity, but hash tables are much less convenient to
create for a user, and much more complicated to work on
with all standard functional primitives like map, filter,
filter-map, fold, reduce, partition, etc. etc. etc.
(they might also be less memory-efficient if I recall
correctly).

The use of alists is pervasive enough that switching to
better structures might yield speedups. For example, a
different storage for prob and grob properties (I think
you had something based on vectors at some point?).

There is a similar hiatus between arrays of grobs and lists
of grobs due to the differing programming styles in C++
and Scheme.

Recent Guile has something called "VLists" that could help here:

https://www.gnu.org/software/guile/manual/html_node/VLists.html

I have no idea about the extent to which this could match our
use cases. The implementation is Scheme-only, and it would be
ironic if switching to algorithms with better complexity led
to a performance degradation (see the caveat about vlist-cons
in the documentation page).

To address Aaron's question more specifically and with shorter-term
perspectives, one could add a Scheme interface for nested_property_alist
in nested-property.cc (I *think* it has no side effects, too late
to check today). It wouldn't exactly match this case, however:

attrs = #'((name . NAME) (class . CLASS) (whatever . WHATEVER))
#(define (printit grob)
   (ly:message "~a" (ly:grob-property grob 'output-attributes)))
{
  \override NoteHead.output-attributes = #attrs
  \override NoteHead.output-attributes.class = #'NEWCLASS
  \override NoteHead.after-line-breaking = #printit
  c
}

We might be able to make it set the value, though
(again, I'm not looking hard at the code).

That being said, I'm not sure I would want to see something
along the lines of publicizing nested_property_alist. We already
use ly:assoc-get nearly everywhere (through the alias assoc-get),
and while more convenient thanks to the optional default value
parameter, it is not as efficient as assq-ref when, as is often
the case, the keys are symbols, which can be cheaply compared
with eq?. My concern is that code may then be written that
copies the data n times if doing n insertions instead of just
working on a copy made once. So this would warrant some thinking
and perhaps a structure of our own. The challenge will be in
trying to make it work more or less seamlessly with standard
Guile libraries.

My 2 cents,
Jean



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread David Kastrup
Aaron Hill  writes:

> On 2021-06-29 1:45 pm, David Kastrup wrote:
>> Aaron Hill  writes:
>>> Hrm... would it be better to explicitly alist-copy the result from
>>> ly:assoc-get?  Actually, I guess you could do:
>>> 
>>> (alist-cons 'class ... (alist-delete 'class attribs))
>>> 
>> Either that or not even bother about deleting the other entry.
>
> If you don't remove the old entry, then the SVG looks like this:
>
> 
>
> I am fairly certain that it is not valid to have the same attribute
> name twice in an element in SGML.

Uh, ok.  I was thinking of an alist as a canonical data structure and
there overriding at the front is permissable.  But if it is used in that
manner...

-- 
David Kastrup



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Carl Sorensen


On 6/29/21, 2:55 PM, "lilypond-user on behalf of Aaron Hill" 
 wrote:

On 2021-06-29 1:45 pm, David Kastrup wrote:
> Aaron Hill  writes:
>> Hrm... would it be better to explicitly alist-copy the result from
>> ly:assoc-get?  Actually, I guess you could do:
>> 
>> 
>> (alist-cons 'class ... (alist-delete 'class attribs))
>> 
> 
> Either that or not even bother about deleting the other entry.

If you don't remove the old entry, then the SVG looks like this:



I am fairly certain that it is not valid to have the same attribute name 
twice in an element in SGML.

You could do alist-copy, then assoc-set! on the copy. 

Carl



-- Aaron Hill





Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Aaron Hill

On 2021-06-29 1:45 pm, David Kastrup wrote:

Aaron Hill  writes:

Hrm... would it be better to explicitly alist-copy the result from
ly:assoc-get?  Actually, I guess you could do:


(alist-cons 'class ... (alist-delete 'class attribs))



Either that or not even bother about deleting the other entry.


If you don't remove the old entry, then the SVG looks like this:



I am fairly certain that it is not valid to have the same attribute name 
twice in an element in SGML.



-- Aaron Hill



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread David Kastrup
Aaron Hill  writes:

> On 2021-06-29 1:20 pm, David Kastrup wrote:
>>> 
>>> \version "2.22.0"
>>> SvgAddClassName =
>>> #(lambda (ctxt)
>>>   (define (add-class-name grob)
>>>(let* ((attribs (ly:grob-property grob 'output-attributes '()))
>>>   (class (ly:assoc-get 'class attribs '()))
>>>   (name (grob::name grob)))
>>> (set! class (if (null? class) name (format #f "~a ~a" class
>>> name)))
>>> (set! attribs (assoc-set! attribs 'class class))
>>> (ly:grob-set-property! grob 'output-attributes attribs)))
>>>   (make-engraver
>>>(acknowledgers
>>> ((grob-interface engraver grob source)
>>>  (add-class-name grob)
>> That assoc-set! looks like a stinker.  Doesn't it mess with shared
>> data
>> structures?
>
> Hrm... would it be better to explicitly alist-copy the result from
> ly:assoc-get?  Actually, I guess you could do:
>
> 
> (alist-cons 'class ... (alist-delete 'class attribs))
> 

Either that or not even bother about deleting the other entry.

> ...since the SRFI says that alist-delete does not modify the original
> structure, only that it might return an alist with a common tail.
>
> And on this point, should LilyPond provide an ly:assoc-set to pair
> with ly:assoc-get that avoids potential issues with shared structures?

I am not sure that we'd want our own modifiers for basic data
structures.  Though there may be a point in unifying hash tables,
association lists, vectors into a common data structure and provide
caching accessors for that.

I mean, stuff like notename languages and drum tables and so are already
an awkward mixture.

-- 
David Kastrup



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Aaron Hill

On 2021-06-29 1:20 pm, David Kastrup wrote:


\version "2.22.0"

SvgAddClassName =
#(lambda (ctxt)
  (define (add-class-name grob)
   (let* ((attribs (ly:grob-property grob 'output-attributes '()))
  (class (ly:assoc-get 'class attribs '()))
  (name (grob::name grob)))
(set! class (if (null? class) name (format #f "~a ~a" class 
name)))

(set! attribs (assoc-set! attribs 'class class))
(ly:grob-set-property! grob 'output-attributes attribs)))
  (make-engraver
   (acknowledgers
((grob-interface engraver grob source)
 (add-class-name grob)


That assoc-set! looks like a stinker.  Doesn't it mess with shared data
structures?


Hrm... would it be better to explicitly alist-copy the result from 
ly:assoc-get?  Actually, I guess you could do:



(alist-cons 'class ... (alist-delete 'class attribs))


...since the SRFI says that alist-delete does not modify the original 
structure, only that it might return an alist with a common tail.


And on this point, should LilyPond provide an ly:assoc-set to pair with 
ly:assoc-get that avoids potential issues with shared structures?



-- Aaron Hill



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Carl Sorensen


On 6/29/21, 2:14 PM, "Aaron Hill"  wrote:

On 2021-06-29 12:45 pm, Carl Sorensen wrote:
> I believe that the logical implications of side-effects are not very
> concerning when local variables are set!, so there's probably very
> little or no downside to the set!s in Aaron's code.  In fact, it's
> possible that Aaron's code will use less heap space by re-using class
> instead of adding a new variable grob-class-name.  But I can't help
> myself; I want to avoid the grief  Sussman would give me over two
> unneeded set! calls.

I prefer that pattern of set! calls because it helps you avoid nesting 
S-expressions too deeply, which I feel greatly improves readability and 
maintainability.  It is the same reason I bothered to define the 
add-class-name procedure, so that it would not be nested within the 
engraver definition itself, better separating concerns.

Additionally, I have taken flack for pushing some of the more functional 
elements of Scheme programming.  (Mention the word "lambda" once, and 
everyone assumes you are a pure functional zealot.)  Regardless, I have 
tended to favor a more imperative approach lately, something that is 
likely to be more consumable for users of LilyPond.

I don't disagree with your assessment.

Thanks,

Carl
 



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread David Kastrup
Aaron Hill  writes:

> On 2021-06-29 9:43 am, Jean Abou Samra wrote:
>> However, this problem can be solved by writing
>> an engraver (those are the powerful tools that
>> \applyOutput uses under the hood).
>> \version "2.22.0"
>> \layout {
>>   \context {
>> \Score
>> \consists
>>   #(lambda (context)
>>  (make-engraver
>>(acknowledgers
>>  ((grob-interface engraver grob source-engraver)
>> (set! (ly:grob-property grob 'output-attributes)
>>   `((class . ,(grob::name grob
>>   }
>> }
>> <<
>>   { c d e f }
>>   \\
>>   { g a b c' }
 
>
> NOTE: You might want this engraver to *append* to the class attribute,
> so you can still specify classes on an individual basis:
>
> 
> \version "2.22.0"
>
> SvgAddClassName =
> #(lambda (ctxt)
>   (define (add-class-name grob)
>(let* ((attribs (ly:grob-property grob 'output-attributes '()))
>   (class (ly:assoc-get 'class attribs '()))
>   (name (grob::name grob)))
> (set! class (if (null? class) name (format #f "~a ~a" class name)))
> (set! attribs (assoc-set! attribs 'class class))
> (ly:grob-set-property! grob 'output-attributes attribs)))
>   (make-engraver
>(acknowledgers
> ((grob-interface engraver grob source)
>  (add-class-name grob)

That assoc-set! looks like a stinker.  Doesn't it mess with shared data
structures?

>
> \layout { \context { \Score \consists \SvgAddClassName } }
>
> { \tweak output-attributes #'((class . foo)) b'4 }
> 
>
>
> -- Aaron Hill
>
>

-- 
David Kastrup



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Aaron Hill

On 2021-06-29 12:45 pm, Carl Sorensen wrote:

I believe that the logical implications of side-effects are not very
concerning when local variables are set!, so there's probably very
little or no downside to the set!s in Aaron's code.  In fact, it's
possible that Aaron's code will use less heap space by re-using class
instead of adding a new variable grob-class-name.  But I can't help
myself; I want to avoid the grief  Sussman would give me over two
unneeded set! calls.


I prefer that pattern of set! calls because it helps you avoid nesting 
S-expressions too deeply, which I feel greatly improves readability and 
maintainability.  It is the same reason I bothered to define the 
add-class-name procedure, so that it would not be nested within the 
engraver definition itself, better separating concerns.


Additionally, I have taken flack for pushing some of the more functional 
elements of Scheme programming.  (Mention the word "lambda" once, and 
everyone assumes you are a pure functional zealot.)  Regardless, I have 
tended to favor a more imperative approach lately, something that is 
likely to be more consumable for users of LilyPond.



-- Aaron Hill



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Carl Sorensen


On 6/29/21, 11:33 AM, "lilypond-user on behalf of Aaron Hill" 
 wrote:

On 2021-06-29 9:43 am, Jean Abou Samra wrote:
> However, this problem can be solved by writing
> an engraver (those are the powerful tools that
> \applyOutput uses under the hood).
> 
> \version "2.22.0"
> 
> \layout {
>   \context {
> \Score
> \consists
>   #(lambda (context)
>  (make-engraver
>(acknowledgers
>  ((grob-interface engraver grob source-engraver)
> (set! (ly:grob-property grob 'output-attributes)
>   `((class . ,(grob::name grob
>   }
> }
> 
> <<
>   { c d e f }
>   \\
>   { g a b c' }
>>> 

NOTE: You might want this engraver to *append* to the class attribute, 
so you can still specify classes on an individual basis:

Great idea, and nice implementation, Aaron!


\version "2.22.0"

SvgAddClassName =
#(lambda (ctxt)
   (define (add-class-name grob)
(let* ((attribs (ly:grob-property grob 'output-attributes '()))
   (class (ly:assoc-get 'class attribs '()))
   (name (grob::name grob)))
 (set! class (if (null? class) name (format #f "~a ~a" class name)))
 (set! attribs (assoc-set! attribs 'class class))
 (ly:grob-set-property! grob 'output-attributes attribs)))
   (make-engraver
(acknowledgers
 ((grob-interface engraver grob source)
  (add-class-name grob)

\layout { \context { \Score \consists \SvgAddClassName } }

{ \tweak output-attributes #'((class . foo)) b'4 }


When I learned Scheme 36 years ago from the CS guys at MIT, they really frowned 
on using set! (side-effects of code were avoided as much as possible).

So I rewrote the code using only the necessary set! functions


\version "2.20.0"

SvgAddClassName =
#(lambda (ctxt)
   (define (add-class-name grob)
(let* ((attribs (ly:grob-property grob 'output-attributes '()))
   (class (ly:assoc-get 'class attribs '()))
   (name (grob::name grob))
   (grob-class-name (if (null? class)
name
(format #f "~a ~a" class name
 (ly:grob-set-property! grob 'output-attributes (assoc-set! attribs 'class 
grob-class-name
   (make-engraver
(acknowledgers
 ((grob-interface engraver grob source)
  (add-class-name grob)

\layout { \context { \Score \consists \SvgAddClassName } }

{ \tweak output-attributes #'((class . foo)) b'4 }


I believe that the logical implications of side-effects are not very concerning 
when local variables are set!, so there's probably very little or no downside 
to the set!s in Aaron's code.  In fact, it's possible that Aaron's code will 
use less heap space by re-using class instead of adding a new variable 
grob-class-name.  But I can't help myself; I want to avoid the grief  Sussman 
would give me over two unneeded set! calls.

Carl





Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Aaron Hill

On 2021-06-29 9:43 am, Jean Abou Samra wrote:

However, this problem can be solved by writing
an engraver (those are the powerful tools that
\applyOutput uses under the hood).

\version "2.22.0"

\layout {
  \context {
\Score
\consists
  #(lambda (context)
 (make-engraver
   (acknowledgers
 ((grob-interface engraver grob source-engraver)
(set! (ly:grob-property grob 'output-attributes)
  `((class . ,(grob::name grob
  }
}

<<
  { c d e f }
  \\
  { g a b c' }




NOTE: You might want this engraver to *append* to the class attribute, 
so you can still specify classes on an individual basis:



\version "2.22.0"

SvgAddClassName =
#(lambda (ctxt)
  (define (add-class-name grob)
   (let* ((attribs (ly:grob-property grob 'output-attributes '()))
  (class (ly:assoc-get 'class attribs '()))
  (name (grob::name grob)))
(set! class (if (null? class) name (format #f "~a ~a" class name)))
(set! attribs (assoc-set! attribs 'class class))
(ly:grob-set-property! grob 'output-attributes attribs)))
  (make-engraver
   (acknowledgers
((grob-interface engraver grob source)
 (add-class-name grob)

\layout { \context { \Score \consists \SvgAddClassName } }

{ \tweak output-attributes #'((class . foo)) b'4 }



-- Aaron Hill



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Jean Abou Samra
Hello,

> Le 29/06/2021 10:42, Matt Hood  a écrit :
> 
> 
> Hi everyone,
> 
> I'm working with lilypond output in the browser, using its SVG export
> function. Lilypond permits attaching attributes to particular kinds of
> grobs, e.g.:
> 
> {
> \override NoteHead.output-attributes =
> #'((class . "NoteHead"))
> c
> }
> 
> The above will cause all NoteHead objects to have the following SVG:
> 
> 
> ...NoteHead grob SVG elements...
> 
> 
> My question is: how can I make it so that all graphical objects have
> their name in the class attribute?
> 
> I've tried using the following scheme function:
> 
> #(define (add-class grob grob-origin context)
> (let (name (cdr (assoc 'name

This lacks a pair of parentheses around the
bindings. You might have posted the wrong
version of your code.

> (ly:grob-property grob 'meta
> (set! (ly:grob-property grob 'output-attributes) '((class
> . name)

'((class . name)) is literally a list containing a
list of the symbols 'class and 'name, which is not
very useful ;-) You rather want quasiquoting:
`((class . ,name)).

> 
> This successfully (I believe) extracts the correct name, and assigns
> it to the output-attributes field. As per the instructions in the
> lilypond documentation, I then attempted to use \applyOutput Score
> #add-class to apply this function to all graphical objects, but it
> didn't supply all of the required objects. My attempted code is below:
> 
> \applyOutput Score #add-class
> \score {
> \new RhythmicStaff {
> c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
> }
> }
> 
> If I add a print call to the add-class function, I can see that it was
> called for the objects with the following names from which crucial
> objects such as NoteHead are missing:
> 
> NonMusicalPaperColumn
> PaperColumn
> Clef
> TimeSignature
> LedgerLineSpanner
> StaffSymbol
> VerticalAxisGroup
> SystemStartBar
> SpacingSpanner
> VerticalAlignment
> StaffSpacing
> BreakAlignment
> LeftEdge
> BreakAlignGroup
> BreakAlignGroup
> BreakAlignGroup

I'm not sure how you got this output. The way
the code is written, the \applyOutput is separate
from the main \score, so it is a score of its own
containing no actual music. If you move it to
the beginning of the music, you should get at
least one NoteHead, as illustrated here:

\version "2.22.0"

{
  \applyOutput Score
#(lambda (grob origin context)
   (ly:message "~s" grob)
   (set! (ly:grob-property grob 'color)
 red))
  <<
{ c d e f }
\\
{ g a b c' }
  >>
}

This also shows the reason why \applyOutput
isn't working as you are expecting. \applyOutput
applies to one single time step. Think of it
as a \once \override. I don't think there
currently exists an equivalent of \applyOutput
for the whole score (perhaps because there were
not many use cases before output-attributes).

However, this problem can be solved by writing
an engraver (those are the powerful tools that
\applyOutput uses under the hood).

\version "2.22.0"

\layout {
  \context {
\Score
\consists
  #(lambda (context)
 (make-engraver
   (acknowledgers
 ((grob-interface engraver grob source-engraver)
(set! (ly:grob-property grob 'output-attributes)
  `((class . ,(grob::name grob
  }
}

<<
  { c d e f }
  \\
  { g a b c' }
>>


Out of curiosity: what tool is this for?

Best,
Jean



Re: SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Carl Sorensen


On 6/29/21, 2:43 AM, "lilypond-user on behalf of Matt Hood" 
 wrote:

Hi everyone,

I'm working with lilypond output in the browser, using its SVG export
function. Lilypond permits attaching attributes to particular kinds of
grobs, e.g.:

{
  \override NoteHead.output-attributes =
  #'((class . "NoteHead"))
  c
}

The above will cause all NoteHead objects to have the following SVG:


  ...NoteHead grob SVG elements...


My question is: how can I make it so that all graphical objects have
their name in the class attribute?

I've tried using the following scheme function:

#(define (add-class grob grob-origin context)
 (let (name (cdr (assoc 'name
(ly:grob-property grob 'meta
(set! (ly:grob-property grob 'output-attributes) '((class
. name)

This successfully (I believe) extracts the correct name, and assigns
it to the output-attributes field. As per the instructions in the
lilypond documentation, I then attempted to use \applyOutput Score
#add-class to apply this function to all graphical objects, but it
didn't supply all of the required objects. My attempted code is below:

\applyOutput Score #add-class
\score {
\new RhythmicStaff {
  c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
}
}

If I add a print call to the add-class function, I can see that it was
called for the objects with the following names from which crucial
objects such as NoteHead are missing:

NonMusicalPaperColumn
PaperColumn
Clef
TimeSignature
LedgerLineSpanner
StaffSymbol
VerticalAxisGroup
SystemStartBar
SpacingSpanner
VerticalAlignment
StaffSpacing
BreakAlignment
LeftEdge
BreakAlignGroup
BreakAlignGroup
BreakAlignGroup

Matt, I'm not an expert on \applyOutput, but it appears to me these are all 
grobs created by engravers that live in the Score context by default.  

You may wish to try \applyOutput to Staff and Voice as well.

Haven't tried it, and don't know if it will work, but it's an idea.

HTH,

Carl




SVG export - how might you add classes for all graphical objects?

2021-06-29 Thread Matt Hood
Hi everyone,

I'm working with lilypond output in the browser, using its SVG export
function. Lilypond permits attaching attributes to particular kinds of
grobs, e.g.:

{
  \override NoteHead.output-attributes =
  #'((class . "NoteHead"))
  c
}

The above will cause all NoteHead objects to have the following SVG:


  ...NoteHead grob SVG elements...


My question is: how can I make it so that all graphical objects have
their name in the class attribute?

I've tried using the following scheme function:

#(define (add-class grob grob-origin context)
 (let (name (cdr (assoc 'name
(ly:grob-property grob 'meta
(set! (ly:grob-property grob 'output-attributes) '((class
. name)

This successfully (I believe) extracts the correct name, and assigns
it to the output-attributes field. As per the instructions in the
lilypond documentation, I then attempted to use \applyOutput Score
#add-class to apply this function to all graphical objects, but it
didn't supply all of the required objects. My attempted code is below:

\applyOutput Score #add-class
\score {
\new RhythmicStaff {
  c'2 c'16 c' c' c' \tuplet 5/4 { c'16 c' c' c' c' }
}
}

If I add a print call to the add-class function, I can see that it was
called for the objects with the following names from which crucial
objects such as NoteHead are missing:

NonMusicalPaperColumn
PaperColumn
Clef
TimeSignature
LedgerLineSpanner
StaffSymbol
VerticalAxisGroup
SystemStartBar
SpacingSpanner
VerticalAlignment
StaffSpacing
BreakAlignment
LeftEdge
BreakAlignGroup
BreakAlignGroup
BreakAlignGroup

If there were a way to run add-class on all graphical objects, that
might be a good solution to the problem.

Any help would be much appreciated!

Thanks,
Matt.



Re: Export to musicxml

2020-10-02 Thread Werner LEMBERG


> What is the current state of the art with musicxml export? Any work
> being done on that?

I think the best stuff currently avaible is what Jacques is working on
in the (external) `libmusicxml` git repository (in the `lilypond`
branch).


Werner



Export to musicxml

2020-10-02 Thread Andrew Bernard
What is the current state of the art with musicxml export? Any work
being done on that?

Andrew



Re: png export resolution

2020-07-07 Thread Federico Bruni




On Tue, 14 Apr, 2020 at 08:35, Martin Tarenskeen 
 wrote:


Hi,

If I type "lilypond -dhelp" I see "resolution (101)". Do I understand 
correctly that when using the --png option the default export 
resolution is 101 dpi? I am sure there is a good reason to have 
chosen 101 and not 100, or 110?


Don't worry, I know I can change this with the -dresolution option. I 
was just wondering about that strange value.





Hi Martin

I'm cleaning my inbox and I think nobody replied to your question.

It's not only in -dhelp, this is documented also in the Usage manual.

I've tried looking at git history.
That number changed from 116 to 90 and then 101.

There was a comment explaining that number:

;; at 101.178, a staff space is exactly 7 pixels.
  (resolution 101.178 "resolution for generating bitmaps")

So the purpose would seem to have a "pixel perfect" staff space.






png export resolution

2020-04-14 Thread Martin Tarenskeen



Hi,

If I type "lilypond -dhelp" I see "resolution (101)". Do I understand 
correctly that when using the --png option the default export resolution 
is 101 dpi? I am sure there is a good reason to have chosen 101 and not 
100, or 110?


Don't worry, I know I can change this with the -dresolution option. I was 
just wondering about that strange value.


--

MT



Re: Frescobaldi, improve support for audio export

2019-10-21 Thread Urs Liska


Am 21. Oktober 2019 18:52:29 MESZ schrieb Saul Tobin 
:
>Would the bundled VLC be redundant to an existing system install of
>VLC?
>Would it be usable instead of a system install? Would the bundled VLC
>get
>updates?

As I've said several times in this thread *bundling* anything with Frescobaldi 
is not what we are talking about here.

Urs

>
>I normally have VLC installed anyway, but I'd rather not have to keep a
>separate copy on disk just for Frescobaldi.
>
>
>On Sun, Oct 20, 2019, 10:33 PM Federico Bruni 
>wrote:
>
>> Il giorno ven 18 ott 2019 alle 23:14, J Martin Rushton via
>> lilypond-user  ha scritto:
>> > There is a VLC available through flatpack, but I've not used it (so
>> > therefore cannot comment), but have seen warnings that it will pull
>in
>> > up to 1.2 GiB of other packages including the complete KDE
>> > implementation.
>>
>> $ flatpak info org.videolan.VLC | grep 'Installed'
>>Installed: 77,7 MB
>>
>> $ flatpak info org.kde.Platform//5.13 | grep Installed
>>Installed: 910,3 MB
>>
>> The KDE runtime may be used by other Qt applications installed in
>your
>> system.
>>
>> You may want to read this post by the author of Flatpak:
>>
>>
>https://blogs.gnome.org/alexl/2017/10/02/on-application-sizes-and-bloat-in-flatpak/
>>
>> In a nutshell: Flatpak is a bundling system and as such it requires
>> more disk space, but the benefits (of shipping a self-contained and
>> independent application) may offset the cost for some people,
>> especially today (as large disks are smaller and cheaper). The
>article
>> explains how ostree helps in reducing the duplication between similar
>> runtimes.
>>
>>
>>
>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>

-- 
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

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


Re: Frescobaldi, improve support for audio export

2019-10-21 Thread Saul Tobin
Would the bundled VLC be redundant to an existing system install of VLC?
Would it be usable instead of a system install? Would the bundled VLC get
updates?

I normally have VLC installed anyway, but I'd rather not have to keep a
separate copy on disk just for Frescobaldi.


On Sun, Oct 20, 2019, 10:33 PM Federico Bruni  wrote:

> Il giorno ven 18 ott 2019 alle 23:14, J Martin Rushton via
> lilypond-user  ha scritto:
> > There is a VLC available through flatpack, but I've not used it (so
> > therefore cannot comment), but have seen warnings that it will pull in
> > up to 1.2 GiB of other packages including the complete KDE
> > implementation.
>
> $ flatpak info org.videolan.VLC | grep 'Installed'
>Installed: 77,7 MB
>
> $ flatpak info org.kde.Platform//5.13 | grep Installed
>Installed: 910,3 MB
>
> The KDE runtime may be used by other Qt applications installed in your
> system.
>
> You may want to read this post by the author of Flatpak:
>
> https://blogs.gnome.org/alexl/2017/10/02/on-application-sizes-and-bloat-in-flatpak/
>
> In a nutshell: Flatpak is a bundling system and as such it requires
> more disk space, but the benefits (of shipping a self-contained and
> independent application) may offset the cost for some people,
> especially today (as large disks are smaller and cheaper). The article
> explains how ostree helps in reducing the duplication between similar
> runtimes.
>
>
>
> ___
> 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


Re: Frescobaldi, improve support for audio export

2019-10-20 Thread Federico Bruni
Il giorno ven 18 ott 2019 alle 23:14, J Martin Rushton via 
lilypond-user  ha scritto:

There is a VLC available through flatpack, but I've not used it (so
therefore cannot comment), but have seen warnings that it will pull in
up to 1.2 GiB of other packages including the complete KDE 
implementation.


$ flatpak info org.videolan.VLC | grep 'Installed'
  Installed: 77,7 MB

$ flatpak info org.kde.Platform//5.13 | grep Installed
  Installed: 910,3 MB

The KDE runtime may be used by other Qt applications installed in your 
system.


You may want to read this post by the author of Flatpak:
https://blogs.gnome.org/alexl/2017/10/02/on-application-sizes-and-bloat-in-flatpak/

In a nutshell: Flatpak is a bundling system and as such it requires 
more disk space, but the benefits (of shipping a self-contained and 
independent application) may offset the cost for some people, 
especially today (as large disks are smaller and cheaper). The article 
explains how ostree helps in reducing the duplication between similar 
runtimes.




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


Re: Frescobaldi, improve support for audio export

2019-10-19 Thread Urs Liska


Am 19.10.19 um 18:08 schrieb David Wright:

On Fri 18 Oct 2019 at 23:14:30 (+0100), Lilypond-User wrote:

On 18/10/2019 22:06, Urs Liska wrote:

Am 18. Oktober 2019 22:45:28 MESZ schrieb Karlin High :

On 10/18/2019 3:17 PM, Guy Stalnaker wrote:

So, it looks like VLC with the right syntax may be able to use
FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or other
codecs - or - output WAV file as input to lame

It's a complicated commandline but I've seen (and created) worse LOL

Complicated is not an issue - that's what Frescobaldi can manage. It has to be 
reliable and ideally cross-platform


Anyone planning on using VLC on Fedora, RHEL or CentOS needs to check
out the current situation.  For RHEL/CentOS AIUI:

7.7 VLC from the usual sources does not work (in fact crashes some updates).
8.0 VLC is not available.

There is a VLC available through flatpack, but I've not used it (so
therefore cannot comment), but have seen warnings that it will pull in
up to 1.2 GiB of other packages including the complete KDE implementation.

Perhaps much of this is because VL stands for Video-LAN, neither of
which has much to do with MIDI→MP3.

Quite honestly, I'm not sure I see the wisdom of bundling in any
or all of VLC into Frescobaldi. The hiatus in support of MIDI by
Windows versions 2.1.0 up gives an example of the kind of problems
that can ensue.



Nobody whats to *bundle* any tools with Frescobaldi ...




I would have thought that people who convert their MIDI files would
(a) have access to platform-appropriate tools already, (b) perhaps
want to use different soundfonts from those supplied, and (c) want
to use such tools on MIDI files that don't originate from F~ and LP.



... the idea is to provide a direct way to trigger the toolchain from 
Frescobaldi. For example we have an "Import MusicXML" command although 
everyone who wants to do it already has musicxml2ly installed as part of 
LilyPond. Or, to make the point even clearer: we also "bundle" LilyPond 
with Frescobaldi although people could use the command line for 
compiling their scores.


Currently this function uses a hard-coded "timidity" invocation, and my 
plan is to support a selection of external tools and a selection of 
target audio formats to choose from - when the external tool is 
available on the system.


Urs



Cheers,
David.

___
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


Re: Frescobaldi, improve support for audio export

2019-10-19 Thread David Wright
On Fri 18 Oct 2019 at 23:14:30 (+0100), Lilypond-User wrote:
> On 18/10/2019 22:06, Urs Liska wrote:
> > Am 18. Oktober 2019 22:45:28 MESZ schrieb Karlin High 
> > :
> >> On 10/18/2019 3:17 PM, Guy Stalnaker wrote:
> >>> So, it looks like VLC with the right syntax may be able to use 
> >>> FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or other 
> >>> codecs - or - output WAV file as input to lame
> >>>
> >>> It's a complicated commandline but I've seen (and created) worse LOL
> > 
> > Complicated is not an issue - that's what Frescobaldi can manage. It has to 
> > be reliable and ideally cross-platform
> > 
> Anyone planning on using VLC on Fedora, RHEL or CentOS needs to check
> out the current situation.  For RHEL/CentOS AIUI:
> 
> 7.7   VLC from the usual sources does not work (in fact crashes some updates).
> 8.0   VLC is not available.
> 
> There is a VLC available through flatpack, but I've not used it (so
> therefore cannot comment), but have seen warnings that it will pull in
> up to 1.2 GiB of other packages including the complete KDE implementation.

Perhaps much of this is because VL stands for Video-LAN, neither of
which has much to do with MIDI→MP3.

Quite honestly, I'm not sure I see the wisdom of bundling in any
or all of VLC into Frescobaldi. The hiatus in support of MIDI by
Windows versions 2.1.0 up gives an example of the kind of problems
that can ensue.

I would have thought that people who convert their MIDI files would
(a) have access to platform-appropriate tools already, (b) perhaps
want to use different soundfonts from those supplied, and (c) want
to use such tools on MIDI files that don't originate from F~ and LP.

Cheers,
David.

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


Re: VLC versions was Re:Frescobaldi, improve support for audio export

2019-10-19 Thread J Martin Rushton via lilypond-user
On 19/10/2019 13:24, Henning Hraban Ramm wrote:
> 
>> Am 2019-10-19 um 13:55 schrieb Bill via lilypond-user 
>> :
>>
>>
>> this is what I get on command line when I type
>> vlc --version:
>>
>> VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
>>
>> I'm on Linux Mint 18.? can I really be that far behind.  I did try to import 
>> a midi file and it couldn't play it nor could it export it as an mp3.
> 
> Current version is 3.0.8, see videolan.org
> 
> from https://wiki.videolan.org/Midi/:
> """
> VLC media player can play Standard MIDI File (.MID) and RIFF MIDI (.RMI) 
> files since version 0.9.0.
> Windows binary builds included MIDI support only in versions VLC media player 
> from 1.1.0 through 2.0.8. Starting from version 2.1.0, support was dropped 
> due to security issues. It was re-activated in VLC 3.0.0.
> …
> Linux 
> If the FluidSynth codec is not shown in VLC's preferences, you have to 
> install it as well as sound fonts. E.g. on Ubuntu 18.04 and derivatives it is 
> in the vlc-plugin-fluidsynthpackage, while the fluid-soundfont-gs and 
> fluid-soundfont-gm packages install some sound fonts in /usr/share/sounds/sf2.
> """
> 
> 
>> 7.7VLC from the usual sources does not work (in fact crashes some 
>> updates).
>> 8.0VLC is not available.
> 
> Don’t know where those come from.
> 
> Greetlings, Hraban
> ---
> fiëé visuëlle
> Henning Hraban Ramm
> https://www.fiee.net
> 

My original posting of 18/10/2019, 23:14 said:
%<-
Anyone planning on using VLC on Fedora, RHEL or CentOS needs to checkout
the current situation.  For RHEL/CentOS AIUI:

7.7 VLC from the usual sources does not work (in fact crashes some updates).
8.0 VLC is not available.

There is a VLC available through flatpack, but I've not used it (so
therefore cannot comment), but have seen warnings that it will pull in
up to 1.2 GiB of other packages including the complete KDE implementation.

-- 
J Martin Rushton MBCS
---%<---
Nowhere did I mention Mint.  The summary is derived from traffic on the
CentOS maillist (cen...@cantos.org) and the CentOS forums
(https://www.centos.org/forums).

JMR



signature.asc
Description: OpenPGP digital signature
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: VLC versions was Re:Frescobaldi, improve support for audio export

2019-10-19 Thread Henning Hraban Ramm

> Am 2019-10-19 um 13:55 schrieb Bill via lilypond-user :
> 
> 
> this is what I get on command line when I type
> vlc --version:
> 
> VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
> 
> I'm on Linux Mint 18.? can I really be that far behind.  I did try to import 
> a midi file and it couldn't play it nor could it export it as an mp3.

Current version is 3.0.8, see videolan.org

from https://wiki.videolan.org/Midi/:
"""
VLC media player can play Standard MIDI File (.MID) and RIFF MIDI (.RMI) files 
since version 0.9.0.
Windows binary builds included MIDI support only in versions VLC media player 
from 1.1.0 through 2.0.8. Starting from version 2.1.0, support was dropped due 
to security issues. It was re-activated in VLC 3.0.0.
…
Linux 
If the FluidSynth codec is not shown in VLC's preferences, you have to install 
it as well as sound fonts. E.g. on Ubuntu 18.04 and derivatives it is in the 
vlc-plugin-fluidsynthpackage, while the fluid-soundfont-gs and 
fluid-soundfont-gm packages install some sound fonts in /usr/share/sounds/sf2.
"""


> 7.7VLC from the usual sources does not work (in fact crashes some 
> updates).
> 8.0VLC is not available.

Don’t know where those come from.




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


VLC versions was Re:Frescobaldi, improve support for audio export

2019-10-19 Thread Bill via lilypond-user

this is what I get on command line when I type
vlc --version:
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
VLC version 2.2.2 Weatherwax (2.2.2-0-g6259d80)
Compiled by buildd on lgw01-09.buildd (Aug  8 2017 18:59:52)
Compiler: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License;
see the file named COPYING for details.
Written by the VideoLAN team; see the AUTHORS file.

 
I'm on Linux Mint 18.? can I really be that far behind.  I did try to import a 
midi file and it couldn't play it nor could it export it as an mp3.

7.7    VLC from the usual sources does not work (in fact crashes some updates).
8.0    VLC is not available.

There is a VLC available through flatpack, but I've not used it (so
therefore cannot comment), but have seen warnings that it will pull in
up to 1.2 GiB of other packages including the complete KDE implementation.

-- 
J Martin Rushton MBCS
I have not seen anything get added to lilypond proper for a long time. I may be 
wrong, but it's immensely difficult to get changes to core it would seem. Fair 
enough too. That's why openlilylib exists.

Curious,
Bill

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


Re: Frescobaldi, improve support for audio export

2019-10-18 Thread J Martin Rushton via lilypond-user
On 18/10/2019 22:06, Urs Liska wrote:
> 
> 
> Am 18. Oktober 2019 22:45:28 MESZ schrieb Karlin High :
>> On 10/18/2019 3:17 PM, Guy Stalnaker wrote:
>>> So, it looks like VLC with the right syntax may be able to use 
>>> FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or
>> other 
>>> codecs - or - output WAV file as input to lame
>>>
>>> It's a complicated commandline but I've seen (and created) worse LOL
>>
> 
> Complicated is not an issue - that's what Frescobaldi can manage. It has to 
> be reliable and ideally cross-platform
> 
>> Actually, VLC on Windows can encode MIDI to MP3 without using the 
>> command line at all. That's what I use.
> 
> The point *is* to have a command line to be able to use it from Frescobaldi.
> 
> Urs
> 
> 
Anyone planning on using VLC on Fedora, RHEL or CentOS needs to check
out the current situation.  For RHEL/CentOS AIUI:

7.7 VLC from the usual sources does not work (in fact crashes some updates).
8.0 VLC is not available.

There is a VLC available through flatpack, but I've not used it (so
therefore cannot comment), but have seen warnings that it will pull in
up to 1.2 GiB of other packages including the complete KDE implementation.

-- 
J Martin Rushton MBCS



signature.asc
Description: OpenPGP digital signature
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Frescobaldi, improve support for audio export

2019-10-18 Thread Urs Liska


Am 18. Oktober 2019 22:45:28 MESZ schrieb Karlin High :
>On 10/18/2019 3:17 PM, Guy Stalnaker wrote:
>> So, it looks like VLC with the right syntax may be able to use 
>> FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or
>other 
>> codecs - or - output WAV file as input to lame
>> 
>> It's a complicated commandline but I've seen (and created) worse LOL
>

Complicated is not an issue - that's what Frescobaldi can manage. It has to be 
reliable and ideally cross-platform

>Actually, VLC on Windows can encode MIDI to MP3 without using the 
>command line at all. That's what I use.

The point *is* to have a command line to be able to use it from Frescobaldi.

Urs


-- 
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

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


Re: Frescobaldi, improve support for audio export

2019-10-18 Thread Guy Stalnaker

Karlin,

Yes it can.

I use VLC all the time to play midi files on the Choral Public Domain 
Library :-)


But Urs was asking for a commandline tool he can wrap in a Frescobaldi 
function with possible syntax options. Thus my email with VLC 
commandline options.


On 10/18/2019 3:45 PM, Karlin High wrote:


On 10/18/2019 3:17 PM, Guy Stalnaker wrote:
So, it looks like VLC with the right syntax may be able to use 
FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or 
other codecs - or - output WAV file as input to lame


It's a complicated commandline but I've seen (and created) worse LOL


Actually, VLC on Windows can encode MIDI to MP3 without using the 
command line at all. That's what I use.


--

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

― Aristotle

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


Re: Frescobaldi, improve support for audio export

2019-10-18 Thread Karlin High

On 10/18/2019 3:17 PM, Guy Stalnaker wrote:
So, it looks like VLC with the right syntax may be able to use 
FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or other 
codecs - or - output WAV file as input to lame


It's a complicated commandline but I've seen (and created) worse LOL


Actually, VLC on Windows can encode MIDI to MP3 without using the 
command line at all. That's what I use.

--
Karlin High
Missouri, USA

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


Re: Frescobaldi, improve support for audio export

2019-10-18 Thread Guy Stalnaker

Urs,

On 10/17/2019 5:17 PM, Urs Liska wrote:

17. Oktober 2019 18:59, "Guy Stalnaker"  schrieb:


Urs,

I'm thinking you mean here "Frescobaldi on Linux" right (since you also say 
fluidsynth)?


I don't "mean" that but it seems that's what I'm talking about.
However, although I don't know much about these things resources like 
https://github.com/FluidSynth/fluidsynth/wiki/BuildingWithCMake seem to 
indicate that it *is* possible to have fluidsynth as a real Windows application.
While "possible" it is not end-user friendly. Creating the compile 
environments (four possibilities!) will inhibit most users who are 
unfamiliar with such things. Even though I am familiar with such things, 
I'd opt, as I actually did, and pay for a very usable product like 
VirtualMidiSynth which includes midi-2-mp3/wav capability.



I use
Frescobaldi primarily on Windows. And though one can use Cygwin, etc. to 
install an app like
timidity, Frescobaldi does not "see" it.


OK, then the general question seems to be: are there command line tools that 
can be used to convert MIDI to audio on Windows in a way that Frescobaldi can 
use?


Now that is a different question. I think the best option is VLC (if 
only because it's under current development and thus is not moribund as 
so much open source software is.


https://wiki.videolan.org/VLC_command-line_help

"FluidSynth MIDI synthesizer (fluidsynth)"

VLC will play midi files.

FFmpeg audio/video decoder (avcodec)

 Various audio and video decoders/encoders delivered by the FFmpeg 
library. This includes (MS)MPEG4, DivX, SV1,H261, H263, H264, WMV, WMA, 
AAC, AMR, DV, MJPEG and other codecs


File audio output (afile)

--audiofile-wav, --no-audiofile-wav
 Add WAVE header
 (default enabled)
  Instead of writing a raw file, you can add a WAV header to 
the file.


So, it looks like VLC with the right syntax may be able to use 
FluidSynth/soundfont to "play" midi and FFMpeg to encode to AAC or other 
codecs - or - output WAV file as input to lame


It's a complicated commandline but I've seen (and created) worse LOL

Guy

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

― Aristotle

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


Re: Frescobaldi, improve support for audio export

2019-10-17 Thread Henning Hraban Ramm

> Am 2019-10-18 um 00:20 schrieb Urs Liska :
> 
> But your comment reinforces my gut-feeling that the proper approach is not to 
> provide too many formats but rather a nice, well-defined selection.

Hi Urs, I agree that probably only a neglectable minority would like to fiddle 
with a lot of audio options.
For a GNU program, Ogg Vorbis makes sense. MP3 because everyone knows it. And a 
possibility to keep the WAV for further processing, e.g. in DAWs, with video or 
other encoders.
(I use a simple shell script calling timidity and lame for MIDI -> WAV -> MP3.)

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


Re: Frescobaldi, improve support for audio export

2019-10-17 Thread Saul Tobin
On Thu, Oct 17, 2019 at 3:20 PM Urs Liska  wrote:

> 17. Oktober 2019 22:19, "Saul Tobin"  schrieb:
>
> > The biggest killer-feature for me would be the ability to playback
> multiple midi files
> > simultaneously in sync (to work around the 16 track limitation).
>
> Sounds cool, but that's obviously not on the table. I think this is the
> domain of DAWs.
>

Totally understand it's not on the table or what you're working on. I don't
agree it's the domain of DAWs, however. I'm not talking about high quality
tweakable MIDI sequencing. Literally just a quick and dirty preview, like
starting multiple instances of pmidi at the same time.

>
> >
> > Audio format-wise, I think mp3 is fine. I doubt anyone particularly
> cares about lossless quality
> > for their general midi soundfont playback.
>
> Fair point. But two comments:
> - To get mp3 the MIDI is first converted to a lossless format anyway.
> - I think many people who want audio files want them to *share* them,
> either on some sort of sharing platform or to hand them over to some
> partner for whatever purpose. And for that there may be specific
> requirements.
>
> But your comment reinforces my gut-feeling that the proper approach is not
> to provide too many formats but rather a nice, well-defined selection.
>
> Urs
>
> >
> > On Thu, Oct 17, 2019, 10:34 AM Guy Stalnaker 
> wrote:
> >
> >> Urs,
> >>
> >> I'm thinking you mean here "Frescobaldi on Linux" right (since you also
> >> say fluidsynth)? I use Frescobaldi primarily on Windows. And though one
> >> can use Cygwin, etc. to install an app like timidity, Frescobaldi does
> >> not "see" it. But I can, and to, have lame installed because I can use
> >> VirtualMidiSyth to manually convert midi to mp3.
> >>
> >> Just putting this out there so you know.
> >>
> >> Regards!
> >>
> >> On 10/17/2019 9:19 AM, Urs Liska wrote:
> >>> Hi all,
> >>>
> >>> I've just started looking into how Frescobaldi provides support for
> >>> "exporting" scores to audio.
> >>>
> >>> Until now this was hardcoded to use TiMidity (and had to be activated
> as
> >>> "experimental feature").
> >>>
> >>> I have so far created functionality that
> >>>
> >>> * checks whether timidity, fluidsynth and lame are available
> >>> * populates the filter of the file dialog with all registered file
> >>> formats for the available converters (=> if (and only if) Lame is
> >>> installed the .mp3 filter will be added). You can see a screenshot
> >>> at
> >>>
> https://github.com/frescobaldi/frescobaldi/pull/1205#issuecomment-543155209
> >>>
> >>> After clicking the Save button there will be a configuration dialog
> like
> >>> we already have for the file *import* functionality. Depending on the
> >>> chosen converter/exporter tool it will be possible to configure
> selected
> >>> settings like for example audio quality, alternative soundfont (in
> >>> fluidsynth), effects.
> >>>
> >>> However, since that's not my area of expertise I'd like to ask for
> >>> suggestions (possibly with the corresponding command line invocations)
> about
> >>>
> >>> * which audio formats Frescobaldi should support (I don't think it's
> >>> good to clutter the interface with stuff that noone needs)
> >>> * which options we should make configurable for the three converter
> tools
> >>> * if there are other converters we should consider supporting
> >>>
> >>> Best
> >>> Urs
> >>>
> >>>
> >>> ___
> >>> lilypond-user mailing list
> >>> lilypond-user@gnu.org
> >>> https://lists.gnu.org/mailman/listinfo/lilypond-user
> >>>
> >>
> >> --
> >> “Happiness is the meaning and the purpose of life, the whole aim and end
> >> of human existence.”
> >> ― Aristotle
> >>
> >> ___
> >> 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


Re: Frescobaldi, improve support for audio export

2019-10-17 Thread Urs Liska
17. Oktober 2019 22:19, "Saul Tobin"  schrieb:

> The biggest killer-feature for me would be the ability to playback multiple 
> midi files
> simultaneously in sync (to work around the 16 track limitation).

Sounds cool, but that's obviously not on the table. I think this is the domain 
of DAWs.

> 
> Audio format-wise, I think mp3 is fine. I doubt anyone particularly cares 
> about lossless quality
> for their general midi soundfont playback.

Fair point. But two comments:
- To get mp3 the MIDI is first converted to a lossless format anyway.
- I think many people who want audio files want them to *share* them, either on 
some sort of sharing platform or to hand them over to some partner for whatever 
purpose. And for that there may be specific requirements. 

But your comment reinforces my gut-feeling that the proper approach is not to 
provide too many formats but rather a nice, well-defined selection.

Urs

> 
> On Thu, Oct 17, 2019, 10:34 AM Guy Stalnaker  wrote:
> 
>> Urs,
>> 
>> I'm thinking you mean here "Frescobaldi on Linux" right (since you also
>> say fluidsynth)? I use Frescobaldi primarily on Windows. And though one
>> can use Cygwin, etc. to install an app like timidity, Frescobaldi does
>> not "see" it. But I can, and to, have lame installed because I can use
>> VirtualMidiSyth to manually convert midi to mp3.
>> 
>> Just putting this out there so you know.
>> 
>> Regards!
>> 
>> On 10/17/2019 9:19 AM, Urs Liska wrote:
>>> Hi all,
>>> 
>>> I've just started looking into how Frescobaldi provides support for
>>> "exporting" scores to audio.
>>> 
>>> Until now this was hardcoded to use TiMidity (and had to be activated as
>>> "experimental feature").
>>> 
>>> I have so far created functionality that
>>> 
>>> * checks whether timidity, fluidsynth and lame are available
>>> * populates the filter of the file dialog with all registered file
>>> formats for the available converters (=> if (and only if) Lame is
>>> installed the .mp3 filter will be added). You can see a screenshot
>>> at
>>> https://github.com/frescobaldi/frescobaldi/pull/1205#issuecomment-543155209
>>> 
>>> After clicking the Save button there will be a configuration dialog like
>>> we already have for the file *import* functionality. Depending on the
>>> chosen converter/exporter tool it will be possible to configure selected
>>> settings like for example audio quality, alternative soundfont (in
>>> fluidsynth), effects.
>>> 
>>> However, since that's not my area of expertise I'd like to ask for
>>> suggestions (possibly with the corresponding command line invocations) about
>>> 
>>> * which audio formats Frescobaldi should support (I don't think it's
>>> good to clutter the interface with stuff that noone needs)
>>> * which options we should make configurable for the three converter tools
>>> * if there are other converters we should consider supporting
>>> 
>>> Best
>>> Urs
>>> 
>>> 
>>> ___
>>> lilypond-user mailing list
>>> lilypond-user@gnu.org
>>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>> 
>> 
>> --
>> “Happiness is the meaning and the purpose of life, the whole aim and end
>> of human existence.”
>> ― Aristotle
>> 
>> ___
>> 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


Re: Frescobaldi, improve support for audio export

2019-10-17 Thread Urs Liska
17. Oktober 2019 18:59, "Guy Stalnaker"  schrieb:

> Urs,
> 
> I'm thinking you mean here "Frescobaldi on Linux" right (since you also say 
> fluidsynth)? 

I don't "mean" that but it seems that's what I'm talking about. 
However, although I don't know much about these things resources like 
https://github.com/FluidSynth/fluidsynth/wiki/BuildingWithCMake seem to 
indicate that it *is* possible to have fluidsynth as a real Windows application.

> I use
> Frescobaldi primarily on Windows. And though one can use Cygwin, etc. to 
> install an app like
> timidity, Frescobaldi does not "see" it. 

OK, then the general question seems to be: are there command line tools that 
can be used to convert MIDI to audio on Windows in a way that Frescobaldi can 
use?

> But I can, and to, have lame installed because I can use
> VirtualMidiSyth to manually convert midi to mp3.

OK, a quick glance on the VirtualMidiSynth homepage made it clear that I won't 
be able to fully digest how things relate here. What would be your setup to 
"manually convert midi to mp3", is there a possibility to wrap that in a 
command line invocation?
May lack of support for Windows-specific functionality is not ideological 
(well, mostly ;-) ), but I need specific input to try making it work.

> 
> Just putting this out there so you know.
> 

Thanks
Urs
> Regards!
> 
> On 10/17/2019 9:19 AM, Urs Liska wrote:
> 
>> Hi all,
>> I've just started looking into how Frescobaldi provides support for > 
>> "exporting" scores to audio.
>> Until now this was hardcoded to use TiMidity (and had to be activated as > 
>> "experimental feature").
>> I have so far created functionality that
>> * checks whether timidity, fluidsynth and lame are available
>> * populates the filter of the file dialog with all registered file
>> formats for the available converters (=> if (and only if) Lame is
>> installed the .mp3 filter will be added). You can see a screenshot
>> at
>> https://github.com/frescobaldi/frescobaldi/pull/1205#issuecomment-543155209
>> After clicking the Save button there will be a configuration dialog like > 
>> we already have for the
>> file *import* functionality. Depending on the > chosen converter/exporter 
>> tool it will be possible
>> to configure selected > settings like for example audio quality, alternative 
>> soundfont (in >
>> fluidsynth), effects.
>> However, since that's not my area of expertise I'd like to ask for > 
>> suggestions (possibly with the
>> corresponding command line invocations) about
>> * which audio formats Frescobaldi should support (I don't think it's
>> good to clutter the interface with stuff that noone needs)
>> * which options we should make configurable for the three converter tools
>> * if there are other converters we should consider supporting
>> Best
>> Urs
>>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
> 
> -- “Happiness is the meaning and the purpose of life, the whole aim and end 
> of human existence.”
> ― Aristotle

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


Re: Frescobaldi, improve support for audio export

2019-10-17 Thread Saul Tobin
The biggest killer-feature for me would be the ability to playback multiple
midi files simultaneously in sync (to work around the 16 track limitation).

Audio format-wise, I think mp3 is fine. I doubt anyone particularly cares
about lossless quality for their general midi soundfont playback.

On Thu, Oct 17, 2019, 10:34 AM Guy Stalnaker  wrote:

> Urs,
>
> I'm thinking you mean here "Frescobaldi on Linux" right (since you also
> say fluidsynth)? I use Frescobaldi primarily on Windows. And though one
> can use Cygwin, etc. to install an app like timidity, Frescobaldi does
> not "see" it. But I can, and to, have lame installed because I can use
> VirtualMidiSyth to manually convert midi to mp3.
>
> Just putting this out there so you know.
>
> Regards!
>
> On 10/17/2019 9:19 AM, Urs Liska wrote:
> > Hi all,
> >
> > I've just started looking into how Frescobaldi provides support for
> > "exporting" scores to audio.
> >
> > Until now this was hardcoded to use TiMidity (and had to be activated as
> > "experimental feature").
> >
> > I have so far created functionality that
> >
> >   * checks whether timidity, fluidsynth and lame are available
> >   * populates the filter of the file dialog with all registered file
> > formats for the available converters (=> if (and only if) Lame is
> > installed the .mp3 filter will be added). You can see a screenshot
> > at
> >
> https://github.com/frescobaldi/frescobaldi/pull/1205#issuecomment-543155209
> >
> > After clicking the Save button there will be a configuration dialog like
> > we already have for the file *import* functionality. Depending on the
> > chosen converter/exporter tool it will be possible to configure selected
> > settings like for example audio quality, alternative soundfont (in
> > fluidsynth), effects.
> >
> > However, since that's not my area of expertise I'd like to ask for
> > suggestions (possibly with the corresponding command line invocations)
> about
> >
> >   * which audio formats Frescobaldi should support (I don't think it's
> > good to clutter the interface with stuff that noone needs)
> >   * which options we should make configurable for the three converter
> tools
> >   * if there are other converters we should consider supporting
> >
> > Best
> > Urs
> >
> >
> > ___
> > lilypond-user mailing list
> > lilypond-user@gnu.org
> > https://lists.gnu.org/mailman/listinfo/lilypond-user
> >
>
> --
> “Happiness is the meaning and the purpose of life, the whole aim and end
> of human existence.”
> ― Aristotle
>
> ___
> 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


Re: Frescobaldi, improve support for audio export

2019-10-17 Thread Guy Stalnaker

Urs,

I'm thinking you mean here "Frescobaldi on Linux" right (since you also 
say fluidsynth)? I use Frescobaldi primarily on Windows. And though one 
can use Cygwin, etc. to install an app like timidity, Frescobaldi does 
not "see" it. But I can, and to, have lame installed because I can use 
VirtualMidiSyth to manually convert midi to mp3.


Just putting this out there so you know.

Regards!

On 10/17/2019 9:19 AM, Urs Liska wrote:

Hi all,

I've just started looking into how Frescobaldi provides support for 
"exporting" scores to audio.


Until now this was hardcoded to use TiMidity (and had to be activated as 
"experimental feature").


I have so far created functionality that

  * checks whether timidity, fluidsynth and lame are available
  * populates the filter of the file dialog with all registered file
formats for the available converters (=> if (and only if) Lame is
installed the .mp3 filter will be added). You can see a screenshot
at
https://github.com/frescobaldi/frescobaldi/pull/1205#issuecomment-543155209

After clicking the Save button there will be a configuration dialog like 
we already have for the file *import* functionality. Depending on the 
chosen converter/exporter tool it will be possible to configure selected 
settings like for example audio quality, alternative soundfont (in 
fluidsynth), effects.


However, since that's not my area of expertise I'd like to ask for 
suggestions (possibly with the corresponding command line invocations) about


  * which audio formats Frescobaldi should support (I don't think it's
good to clutter the interface with stuff that noone needs)
  * which options we should make configurable for the three converter tools
  * if there are other converters we should consider supporting

Best
Urs


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



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

― Aristotle

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


Frescobaldi, improve support for audio export

2019-10-17 Thread Urs Liska

Hi all,

I've just started looking into how Frescobaldi provides support for 
"exporting" scores to audio.


Until now this was hardcoded to use TiMidity (and had to be activated as 
"experimental feature").


I have so far created functionality that

 * checks whether timidity, fluidsynth and lame are available
 * populates the filter of the file dialog with all registered file
   formats for the available converters (=> if (and only if) Lame is
   installed the .mp3 filter will be added). You can see a screenshot
   at
   https://github.com/frescobaldi/frescobaldi/pull/1205#issuecomment-543155209

After clicking the Save button there will be a configuration dialog like 
we already have for the file *import* functionality. Depending on the 
chosen converter/exporter tool it will be possible to configure selected 
settings like for example audio quality, alternative soundfont (in 
fluidsynth), effects.


However, since that's not my area of expertise I'd like to ask for 
suggestions (possibly with the corresponding command line invocations) about


 * which audio formats Frescobaldi should support (I don't think it's
   good to clutter the interface with stuff that noone needs)
 * which options we should make configurable for the three converter tools
 * if there are other converters we should consider supporting

Best
Urs

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


Fwd: [Frescobaldi] Re: export the user guide to HTML (issue 825)

2019-01-29 Thread Urs Liska
Forwarding this to lilypond-user because I think not all potential 
addressees are also subscribed to the Frescobaldi mailing list ...



 Weitergeleitete Nachricht 
Betreff:[Frescobaldi] Re: export the user guide to HTML (issue 825)
Datum:  Tue, 29 Jan 2019 23:34:24 -0800 (PST)
Von:g...@ursliska.de
Antwort an: frescoba...@googlegroups.com
An: Frescobaldi 



Am Mittwoch, 30. Januar 2019 07:23:45 UTC+1 schrieb Federico Bruni:

   Hi folks

   As you know, the current user guide for Frescobaldi 3 is available only
   within the application. Exporting it to HTML is a long standing issue
   (at least since 2016):
   <https://github.com/frescobaldi/frescobaldi/issues/825
   <https://github.com/frescobaldi/frescobaldi/issues/825>>

   There's anybody who's willing to work on it? :-)
   It would be great to get this done in the next future, as I'm working
   on the new website for Frescobaldi and it would be good to be able to
   include the HTML user manual.

   You don't have to be acquainted with Frescobaldi code base - Urs told
   me. Here's what he wrote to me:

> When displaying a page in the user guide Frescobaldi converts the
> Markdown file to HTML and then loads that in the text browser
   widget.
> So it should be *fairly* straightforward to write a harvesting tool
> that does that for the whole structure - it's basically about
> *managing*, not about doing the basic work.
> It should be equally possible to implement that within Frescobaldi
> ("Export User Guide") or as a standalone tool. The latter would look
> more natural to me while the former might be easier to do.

   
<https://github.com/frescobaldi/frescobaldi/tree/master/frescobaldi_app/userguide
   
<https://github.com/frescobaldi/frescobaldi/tree/master/frescobaldi_app/userguide>>


   Any volunteer?


Let me just add that this would be a great way to support Frescobaldi 
development with a medium-commitment contribution ;-)


Urs


   Thanks
   Federico

   PS
   The website I'm working on is generated with Hugo from Markdown
   sources.
   In theory I may add above userguide as a git submodule in a content
   directory and let Hugo convert it to HTML. This would work if the user
   guide files were simple Markdown, but they contain variables and other
   stuff which only Frescobaldi scripts can understand.



--
Frescobaldi homepage: http://www.frescobaldi.org/
Mailing list: http://groups.google.com/group/frescobaldi
Issue tracker: https://github.com/wbsoft/frescobaldi/issues
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


SVG export failed w/ Gonville

2018-03-02 Thread takumi ikeda
%% Unfortunately, SVG exporting failed with Gonville font. I'd like to
just report. (T.I)

\version "2.19.61"

\paper {
  #(define fonts
 (set-global-fonts
  #:music "gonville" ;"cannot find SVG font #f" ??
  #:brace "gonville"
  #:factor (/ staff-height pt 20)
  ))
}

\new GrandStaff <<
  {
ges''4 \ppp e'' cis''2 \trill
  }
  {
R1
  }
>>

%% cmd.exe >> lilypond -dbackend=svg ***.ly

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


Another request : Please add OpenMusic to "Programs that export to Lilypond"

2017-07-21 Thread Karim Haddad

 Hi ,

  Another missing "programs that can export LilyPond code"
is OpenMusic ( http://repmus.ircam.fr/openmusic/home ).
Is it a is a visual programming language based on Lisp.
I have written a library that can export OM score editors to Lilypond, with 
polytempi support, and more.
It has also an import beta feature that allows to re-import exported scores to 
OpenMusic.
Personally i compose using OpenMusic environment and typeset my scores 
exclusively in The fantastatic Lilypond.

OM is free, the library also (all GNU GPL).

The library can be found here :
http://karim.haddad.free.fr/pages/downloads.html


You have also a paper here about all that :
https://hal.archives-ouvertes.fr/hal-01456511/document

Best regards.

-- 
Karim Haddad



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


Re: Please add MusicBlocks to "Programs that export to Lilypond"

2017-07-21 Thread Walter Bender
On Fri, Jul 21, 2017 at 10:57 AM, Devin Ulibarri <devin@ulibarri.website>
wrote:

> Hello,
>
> Music Blocks is a visual programming language for music developed by
> Walter Bender (SugarLabs), myself, and many kids around the globe.
>
> It exports to Lilypond, and Lilypond export has been a priority for us.
>
> We noticed this page for "Other programs that can export LilyPond code":
> http://lilypond.org/easier-editing.html
>
> Would someone mind to add Music Blocks to this page, please?
>
> Our website/blog is at musicblocks.net
> Software is at https://walterbender.github.io/musicblocks/ and code is
> publicly available at https://github.com/walterbender/musicblocks


Licensed under AGPL

>
>
> Thanks,
> Devin
>



-- 
Walter Bender
Sugar Labs
http://www.sugarlabs.org
<http://www.sugarlabs.org>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Please add MusicBlocks to "Programs that export to Lilypond"

2017-07-21 Thread Devin Ulibarri
Hello,

Music Blocks is a visual programming language for music developed by
Walter Bender (SugarLabs), myself, and many kids around the globe.

It exports to Lilypond, and Lilypond export has been a priority for us.

We noticed this page for "Other programs that can export LilyPond code":
http://lilypond.org/easier-editing.html

Would someone mind to add Music Blocks to this page, please?

Our website/blog is at musicblocks.net
Software is at https://walterbender.github.io/musicblocks/ and code is
publicly available at https://github.com/walterbender/musicblocks

Thanks,
Devin

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


Re: lilypond export

2017-06-26 Thread Paul

On 06/14/2017 09:01 AM, Jan-Peter Voigt wrote:


I have been working on an export module for lilypond.


Hi Jan-Peter,  Great to hear of your work on this.  If I can find the 
time (...) I'll try to take a look.


The exporter uses some engravers to collect all note-events and store 
them in a tree-structure.


Hmmm, I wonder if engravers have access to all they need to fully do the 
job?  Maybe so?  I just remember previous discussions on the list and 
the issue tracker describing it more as a backend like for midi, pdf, or 
svg?


In any case, kudos for your work on this,
-Paul

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


Re: OpenLilyLib (Was: Re: lilypond export)

2017-06-16 Thread Federico Bruni
Il giorno gio 15 giu 2017 alle 0:01, Urs Liska  ha 
scritto:
A) I'd be more than happy if someone could help me or take over the 
implementation of the website. Currently it is written as a 
(artificially crippled) Node/Angular application, but I'm having 
difficulties populating the datasets on the Node side. I'd be 
interested in continuing on that track, but I'd equally value a 
completely new approach, for example based on a static site builder.


Is this in some public repository?

I'm just curious to know which data need to be processed and how.
No time to help right now, but I'm about to start working on something 
which may be related (extracting data from a database and reuse it in a 
static website), so I might have some useful experience in the next 
months.





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


Re: OpenLilyLib (Was: Re: lilypond export)

2017-06-15 Thread Peter Crighton
2017-06-15 0:01 GMT+02:00 Urs Liska :

> That said, currently there are two distinct areas where any engagement
> could be fruitful:
>
> A)
> I'd be more than happy if someone could help me or take over the
> implementation of the website. Currently it is written as a
> (artificially crippled) Node/Angular application, but I'm having
> difficulties populating the datasets on the Node side.
> I'd be interested in continuing on that track, but I'd equally value a
> completely new approach, for example based on a static site builder.
>

I’d love to see openLilyLib go forward, and I’d love to be able to help
where I can. Unfortunately, my available time is quite limited, but that
can only get better over the coming months.

So, I at least want to throw out there the Kirby CMS as a possible
alternative to your present website setup. I gathered a little experience
with it, building my own website, and I found it quite easy to use and very
flexible. I love their file-based, no-database approach using Markdown
syntax, which also makes it easily possible to deploy all content via Git
(which I haven’t done yet, but I’d love to).
It is open source, but you need a licence – the personal one should
suffice, though.
I don’t know if it would make things easier than with your current
approach, but maybe something to look into?


--
Peter Crighton | Musician & Music Engraver based in Mainz, Germany
http://www.petercrighton.de
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: OpenLilyLib (Was: Re: lilypond export)

2017-06-14 Thread Urs Liska


Am 14.06.2017 um 23:14 schrieb Johan Vromans:
> On Wed, 14 Jun 2017 15:44:24 -0400, Kieren MacMillan
>  wrote:
>
>> Hi Johan,
>>
>>> When I visit https://openliliylib.org/ I get a page with text but
>>> nothing to click on. No links (except for the generic links (github  
>> Clicking on the GitHub link will take you to the current repository.
>>
>> Hope this helps!
> No, it doesn't.

Of course it doesn't. The Github link leads to an organization page,
which is not more than an uncommented collection of repositories.
Something most developers will be familiar with but not what an end user
will easily deal with.

>
> Clicking on the GitHub link will show a list of mysterious repositories.
> The only repo that makes sense is "openlilylib". Oops, it is deprecated.
>
> For the file exporter I seem to need oll-core, but this repo doesn't say
> anything about how to use it. Just scary warnings like "this code (and
> documentation) is currently in a conceptual state of pre-alpha quality".
>
> The OpenLilyLib web page talks about "Learn how to get up and running with a
> few steps" and "Browse the package list and search the full online
> documentation" but there is no way to actually achieve this.

The current state of what can be seen at openlilylib.org is the result
of commenting out the further functionality of a single-page (MEAN) web
application with which I got stuck for two different reason. On the one
hand I ran into learning problems when trying to populate my contents
from manageable files instead of hand-written JSON files. On the other
hand (and more fundamentally) the intent is to integrate openLilyLib
package documentation in the website, and that documentation system is
still non-existent.

>
> In particular, "Learn how to get up and running with a few steps" would be
> helpful, as would "Browse the package list and search the full online
> documentation".
>
> I don't want to sound negative, but I find this rather discouraging. 
>

Am 14.06.2017 um 23:26 schrieb Simon Albrecht:
>
> If there is insufficient documentation, and the whole project is in a
> kind of intermediary state that may indeed be confusing, that’s
> because Urs has been having other things on his mind, I think.
>

I would put that differently: the underlying reason is that the whole
openLilyLib thing is (apart from the numerous contributions to the
snippets repository) still very much a one-man show, and I simply can't
afford doing much more than what I really need for my own purposes. This
is a pity, but I must also say that with some notable exceptions any
calls for collaboration or support haven't returned significant feedback
yet.

Am 14.06.2017 um 23:29 schrieb Kieren MacMillan:
> Patches or other concrete contributions are gratefully accepted. 

That said, currently there are two distinct areas where any engagement
could be fruitful:

A)
I'd be more than happy if someone could help me or take over the
implementation of the website. Currently it is written as a
(artificially crippled) Node/Angular application, but I'm having
difficulties populating the datasets on the Node side.
I'd be interested in continuing on that track, but I'd equally value a
completely new approach, for example based on a static site builder.

B)
Together with Andrew Bernard and Matteo Ceccarello I've just started a
"project" with the goal of creating a toolchain to generate
documentation from openLilyLib packages
(https://github.com/openlilylib/oll-core/projects/1). This should be of
general interest as it will probably also produce a specification and
toolkit to create documentation for one's own files and libraries,
independent from the openLilyLib context.
This is a project that requires quite some discussion and planning and
later non-neglectable coding in to-be-decided languages (I'd guess
Scheme and Python). And I'd predict that this project is more likely to
succeed - and finally make openLilyLib accessible for regular use - if
there will be some collaboration/contribution.

Urs

-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org


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


Re: OpenLilyLib (Was: Re: lilypond export)

2017-06-14 Thread Kieren MacMillan
Hi Johan,

> The OpenLilyLib web page talks about "Learn how to get up and running with a
> few steps" and "Browse the package list and search the full online
> documentation" but there is no way to actually achieve this.
> 
> In particular, "Learn how to get up and running with a few steps" would be
> helpful, as would "Browse the package list and search the full online
> documentation".

Patches or other concrete contributions are gratefully accepted.

Regards,
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


  1   2   3   4   >