Lilypond developing: getting started

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Lilypond developing: getting started

Kieren MacMillan
Hello, all!

I'm very interested in getting involved in Lilypond development. I  
have a fair bit of experience in both computer programming  
(databases, Java, XML/XSLT, etc.) and music (Master of Music in  
Composition, Bachelor of Music in Piano Performance, etc.) -- in  
fact, I currently make about half my living wage in each of those  
disciplines.

Right now, I'm finishing up a big commission (a chamber opera), and  
have two more coming down the pipe. However, I would like to start in  
to helping the Lilypond codebase in any way I can, immediately upon  
completing the current score (should be in about two weeks).

In order to prepare for that, I have a few preliminary questions...  =)

1. How much of the code is in C++, and how much in Scheme? Does the  
roadmap see this balance changing in any way, and if so in what  
direction? [n.b. I have very little experience with either C++ or  
Scheme specifically.]

2. Consequently, can I get away with learning one or the other, and  
if so which one would you prefer I learn? In other words, where would  
my learning curve best be applied, given the needs of Lilypond  
development over the next few months (and possibly years)?.

3. I would probably also be willing to take on the Newsletter Editor  
position (but I do want to roll up my sleeves and actually do some  
bit-pushing as well) -- is there an opportunity for me to start to  
learn some of the internal workings of Lilypond as a result of  
"editing the newsletter"?

Onward and upward!
Kieren.


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Lilypond developing: getting started

Han-Wen Nienhuys-2
Kieren Richard MacMillan schreef:

> Right now, I'm finishing up a big commission (a chamber opera), and have
> two more coming down the pipe. However, I would like to start in to
> helping the Lilypond codebase in any way I can, immediately upon
> completing the current score (should be in about two weeks).
>
> In order to prepare for that, I have a few preliminary questions...  =)
>
> 1. How much of the code is in C++, and how much in Scheme? Does the
> roadmap see this balance changing in any way, and if so in what
> direction? [n.b. I have very little experience with either C++ or Scheme
> specifically.]

Most of the code still is C++, but it uses Scheme heavily for
infrastructure. In terms of line count, it's 80% C++ and 20% Scheme, but
Scheme is much more compact than C++. C++ will probably be more familiar
for someone with Java experience.

> 2. Consequently, can I get away with learning one or the other, and if
> so which one would you prefer I learn? In other words, where would my


> learning curve best be applied, given the needs of Lilypond development
> over the next few months (and possibly years)?.

I don't know what will happen with Lily development, we don't have a plan :)

> 3. I would probably also be willing to take on the Newsletter Editor
> position (but I do want to roll up my sleeves and actually do some
> bit-pushing as well) -- is there an opportunity for me to start to learn
> some of the internal workings of Lilypond as a result of "editing the
> newsletter"?

I think it's not really the best task to get acquainted with the internals.

However, if you want to learn, it's easier to start with a goal, and
start to work from there.  For example, there is currently a nasty
backlog of bugreports. You could try your hand at fixing a simple bug.
That's often a good way to learn your way around the code as well.

Also, there is still a lot of work to be done on the website (which is
python based ATM), and probably a lot less intimidating than LilyPond.
Pedro Kroeger recently studied the source code, he might also be able to
give you pointers.

--

Han-Wen Nienhuys - [hidden email] - http://www.xs4all.nl/~hanwen

LilyPond Software Design
  -- Code for Music Notation
http://www.lilypond-design.com



_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Lilypond developing: getting started

Kieren MacMillan
Han-Wen:

> I don't know what will happen with Lily development, we don't have  
> a plan :)

My kind of programmers!  ;-)

> However, if you want to learn, it's easier to start with a goal,  
> and start to work from there.
> For example, there is currently a nasty backlog of bugreports.
> You could try your hand at fixing a simple bug.
> That's often a good way to learn your way around the code as well.

Sounds like a good place to start -- where can I get a hold of:
    (a) the entire bug report list; and,
    (b) a "grading" for each (i.e., which are the "simple" ones)?

Thanks,
Kieren.


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Lilypond developing: getting started

Graham Percival-2

On 26-May-06, at 6:32 PM, Kieren Richard MacMillan wrote:

> Han-Wen:
>
>> However, if you want to learn, it's easier to start with a goal, and
>> start to work from there.
>> For example, there is currently a nasty backlog of bugreports.
>> You could try your hand at fixing a simple bug.
>> That's often a good way to learn your way around the code as well.
>
> Sounds like a good place to start -- where can I get a hold of:
>    (a) the entire bug report list; and,
>    (b) a "grading" for each (i.e., which are the "simple" ones)?

Currently,
http://lilypond.org/bugs/v2.8/
There's also a CVS module "bugs".  However, we plan on setting up a bug
tracker soon (roundup.sourceforge.net).


There are two other possibilities for useful tasks which expose you to
a lot of lilypond:
1)  clean up the "tricks and tips" document.  Some of the current
snippets are broken, and others are simply out of date.  We have a
volunteer to rewrite the old \applyMusic examples to use music
functions, but all the rest of the snippets should be looked at.  This
is also a great way to learn about some neat lilypond features which
you might otherwise never learn about.  :)
Actually, given your background and the types of questions you ask on
-user, I think this would be an excellent job for you.  It would
probably take about five hours (one-time project).

2)  Mailist support / data-miner.  Answer as many questions as you can,
and if the docs need to be clarified, write that clarification.  The
doc part of this would probably be about two hours a week; answering
questions could be as much or as little as you want.

Cheers,
- Graham



_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Lilypond developing: getting started

Pedro Kröger
In reply to this post by Han-Wen Nienhuys-2
Han-Wen Nienhuys <[hidden email]> writes:

> Pedro Kroeger recently studied the source code, he might also be able
> to give you pointers.

right. I'm also thinking about writing someting about it as soon as I
get some free time.

Pedro


_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel
Reply | Threaded
Open this post in threaded view
|

Re: Lilypond developing: getting started

Erik Sandberg
In reply to this post by Kieren MacMillan
Citerar Kieren Richard MacMillan <[hidden email]>:

> 1. How much of the code is in C++, and how much in Scheme? Does the  
> roadmap see this balance changing in any way, and if so in what  
> direction? [n.b. I have very little experience with either C++ or  
> Scheme specifically.]

If you only can learn one of them, I think it should be Scheme: You need to
understand Scheme in order to understand much of the c++ code, anyways.

In any case, you may find my master thesis useful, depending on which parts you
want to work with. See home.student.uu.se/ersa9195/report.pdf
It doesn't say much about back-end (layout), but it tells you a lot about how
the front-end (language, music representation) works.

The thesis work is currently in the process of being implemented.

Erik



_______________________________________________
lilypond-devel mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-devel