veltzer / openbook

OpenBook is an open source Jazz real book
https://veltzer.github.io/openbook/
GNU General Public License v3.0
274 stars 41 forks source link

Consider dropping outside dependencies and just using LilyPond #105

Open yam655 opened 4 years ago

yam655 commented 4 years ago

You seem to be using a lot of different tools to do things you can do within LilyPond directly.

Have you never seen a multi-directory, multi-file LilyPond project that can be built a number different ways? Here's an example: https://github.com/mrbeany/shipping-containers

It's from an art-album I did a while back. I wanted it to be easy to re-use, so it only depends upon LilyPond. It can be built one of five different ways out-of-the-box (Fakebook, SATB, MIDIs, A4 Songbook and Letter Songbook), plus any of the pieces of sheet music can be built adhoc.

I mean, a basic LilyPond templating/Mako replacement can be done by using LilyPond variables and a common "LilyPondLogic.lyi" include. That common file can check for global variables and adjust things right there.

I've seen the issues users have with some of the dependencies. I'm sure you have other people who would be potential users, but they get frustrated without commenting. You can get rid of all of the dependency issues.

It's a LilyPond project. There's no reason for outside dependencies.

veltzer commented 4 years ago

Will consider if I find that I can do everything I do with mako with lilypond.

andrewzah commented 2 years ago

From what I've seen, I don't think lilypond can sufficiently handle what @veltzer is trying to do here.

Your project still is hardlinking to files. I was trying to figure out how to dynamically read file directories and select files via lilypond/guile and asked on the lilypond user mailing list, but gave up.

I'm playing around with lilypond myself to see what dependencies can be eliminated, but I would imagine it still being something like lilypond + bash + scripting language at the minimum.

andrewzah commented 2 years ago

Actually, after playing more with lilypond-sandbox, it does seem possible to do everything there. But that would require us to learn Guile/Scheme.

Maybe I'll do that in the future, but for now I found it much easier just to use lilypond + rust for preprocessing in my fork.