Roadmap to lily code

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

Roadmap to lily code

Mehmet Okonsar-3
Hello users and creators of the best music notation program in the world!

What can you suggest for learning Scheme?
A set of few links for getting from almost 0 up to Lilypond source.
Recommended readings textbooks and on-line tutorials..
Thanks



-------------
Best regards,
Mehmet Okonşar, pianist-composer
www.okonsar.com
[hidden email]



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

Re: Roadmap to lily code

D Josiah Boothby
Regarding scheme, I can't really help you and would welcome additional
explanations. However, in general, the easiest way to learn Lilypond (or
at least what worked for me) is to go to the mutopia website and download
lilypond sources. Copy and paste until you get comfortable starting from
scratch (at which point you'll probably continue copying and pasting
because you may find that it takes less time).

Also, the LSR (lilypond snippet repository) can be quite useful, but
unfortunately, I have not spent enough time there to tell you how useful
it is.

Josiah

On Mon, 5 Dec 2005, Mehmet Okonsar wrote:

> Hello users and creators of the best music notation program in the world!
>
> What can you suggest for learning Scheme?
> A set of few links for getting from almost 0 up to Lilypond source.
> Recommended readings textbooks and on-line tutorials..
> Thanks
>
>
>
> -------------
> Best regards,
> Mehmet Okonşar, pianist-composer
> www.okonsar.com
> [hidden email]
>
>
>
> _______________________________________________
> lilypond-user mailing list
> [hidden email]
> http://lists.gnu.org/mailman/listinfo/lilypond-user
>
_______________________________________________
lilypond-user mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/lilypond-user
Reply | Threaded
Open this post in threaded view
|

Re: Roadmap to lily code

Mats Bengtsson-6
I would start the other way around, namely in the LSR or (more or less
equivalently)
with the Regression Tests and Tips and Tricks documents.

For Scheme, see "Appendix B Scheme tutorial" and the links therein.
See also http://mitpress.mit.edu/sicp/ for a book that's a standard
reference
in computer science and uses Scheme throughout.

   /Mats


D Josiah Boothby wrote:

> Regarding scheme, I can't really help you and would welcome additional
> explanations. However, in general, the easiest way to learn Lilypond
> (or at least what worked for me) is to go to the mutopia website and
> download lilypond sources. Copy and paste until you get comfortable
> starting from scratch (at which point you'll probably continue copying
> and pasting because you may find that it takes less time).
>
> Also, the LSR (lilypond snippet repository) can be quite useful, but
> unfortunately, I have not spent enough time there to tell you how
> useful it is.
>
> Josiah
>
> On Mon, 5 Dec 2005, Mehmet Okonsar wrote:
>
>> Hello users and creators of the best music notation program in the
>> world!
>>
>> What can you suggest for learning Scheme?
>> A set of few links for getting from almost 0 up to Lilypond source.
>> Recommended readings textbooks and on-line tutorials..
>> Thanks
>>
>>
>>
>> -------------
>> Best regards,
>> Mehmet Okonşar, pianist-composer
>> www.okonsar.com
>> [hidden email]
>>
>>
>>
>> _______________________________________________
>> lilypond-user mailing list
>> [hidden email]
>> http://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
>>
>------------------------------------------------------------------------
>
>_______________________________________________
>lilypond-user mailing list
>[hidden email]
>http://lists.gnu.org/mailman/listinfo/lilypond-user
>  
>

--
=============================================
        Mats Bengtsson
        Signal Processing
        Signals, Sensors and Systems
        Royal Institute of Technology
        SE-100 44  STOCKHOLM
        Sweden
        Phone: (+46) 8 790 8463
        Fax:   (+46) 8 790 7260
        Email: [hidden email]
        WWW: http://www.s3.kth.se/~mabe
=============================================



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

Re: Roadmap to lily code

Erik Sandberg
In reply to this post by Mehmet Okonsar-3
On Monday 05 December 2005 18.17, Mehmet Okonsar wrote:
> Hello users and creators of the best music notation program in the world!
>
> What can you suggest for learning Scheme?
> A set of few links for getting from almost 0 up to Lilypond source.
> Recommended readings textbooks and on-line tutorials..
> Thanks

You can check out schemers.org.

--
Erik


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

Re: Roadmap to lily code

Donald Axel
On Tue, 6 Dec 2005 19:48:34 +0100
Erik wrote:

> On Monday 05 December 2005 18.17, Mehmet Okonsar wrote:
> > Hello users and creators of the best music notation program in
> > the world!
> >
> > What can you suggest for learning Scheme?
> > A set of few links for getting from almost 0 up to Lilypond
> > source. Recommended readings textbooks and on-line tutorials..
> > Thanks
>
> You can check out schemers.org.

I will not turn this into a discussion about Scheme (we could
maybe find another list) but I think that some words are in place.
I was interested in understanding why a programmer would choose
Scheme (or Lisp) for a programming language and I found only half
answers. You cannot make pointer-mistakes in Scheme, for example.

I found that my RedHat has a nice scheme-interpreter, University
of Massachusetts at Boston scheme, sounds nice. I tried to find
out how a programmer would read a string and e.g. cut the first
letter (character) and put it into a variable.

It is easy to understand that Scheme makes a new variable each
time you get something which has to be stored. Changing strings
is not possible in scheme; you create a new one and overwrite or
delete the old one, I think. Correct me if I am wrong (but see
the quote below from wikipedia first).

However I wanted to know how this language would cut strings and I
never found out - I even think that UMB-scheme cannot assign the
first half of a string to another (new) string.

Shame on me, sort of, I couldn't go on especially when I got the
advice to try to understand what you actually **can do** with
Scheme, because every operation translated into machine code or
C-code in my head. I am still wondering why you cannot take the
first half of a string ... So I need a good introduction to "the
rationale behind Scheme", and I think I have found such one on
Wikipedia:

http://en.wikipedia.org/wiki/Scheme_programming_language

"The dialect of Lisp known as Scheme was originally an attempt by
Gerald Jay Sussman and Guy Steele during Autumn 1975 to explicate
for themselves some aspects of Carl Hewitt's theory of actors as a
model of computation. Hewitt's model was object-oriented (and
influenced by Smalltalk); every object was a computationally
active entity capable of receiving and reacting to messages. The
objects were called actors, and the messages themselves were also
actors. An actor could have arbitrarily many acquaintances; that
is, it could "know about" (in Hewitt's language) other actors and
send them messages or send acquaintances as (parts of) messages.
Message-passing was the only means of interaction. Functional
interactions were modeled with the use of continuations; one might
send the actor named "factorial" the number 5 and another actor to
which to send the eventually computed value (presumably 120)."


When I read such stuff I wonder why a message isn't an object. And
how do they propose to cut a string ... (enough said;-)




--
dax2-tele2adsl:dk -- http://d-axel.dk/  Donald Axel


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

Re: Roadmap to lily code

Erik Sandberg
On Tuesday 06 December 2005 20.49, dax2 wrote:

> On Tue, 6 Dec 2005 19:48:34 +0100
>
> Erik wrote:
> > On Monday 05 December 2005 18.17, Mehmet Okonsar wrote:
> > > Hello users and creators of the best music notation program in
> > > the world!
> > >
> > > What can you suggest for learning Scheme?
> > > A set of few links for getting from almost 0 up to Lilypond
> > > source. Recommended readings textbooks and on-line tutorials..
> > > Thanks
> >
> > You can check out schemers.org.
>
> I will not turn this into a discussion about Scheme (we could
> maybe find another list) but I think that some words are in place.
> I was interested in understanding why a programmer would choose
> Scheme (or Lisp) for a programming language and I found only half
> answers. You cannot make pointer-mistakes in Scheme, for example.
>
> I found that my RedHat has a nice scheme-interpreter, University
> of Massachusetts at Boston scheme, sounds nice. I tried to find
> out how a programmer would read a string and e.g. cut the first
> letter (character) and put it into a variable.

This is not a good example of what you use functional languages for. For tasks
involving string handling, languages such as Perl, Python or sed are often
used. (or, alternatively, a language which is relatively close to assembler,
like C, will do if you're very concerned with speed).

Scheme can be a good choice if you want to solve algorithmic problems, or if
you want to do nice things with functions.

I guess Guile was chosen partly because that Scheme implementation existed and
integrated well with C++ and with lily's parser.

Here's a page which promotes lisp-like languages (it's funny reading, and it
also explains some concepts)
http://www.paulgraham.com/icad.html

--
Erik


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

Re: Roadmap to lily code

Han-Wen Nienhuys
In reply to this post by Donald Axel
dax2 wrote:
> When I read such stuff I wonder why a message isn't an object. And
> how do they propose to cut a string ... (enough said;-)

the Scheme standard is in R5RS, and IIRC, it doesn't specify how strings
should behave in detail. Different implementations may have different
methods. In any case, modifying values is against the spirit of
functional programming, so you should use (substring .. ) anyway.


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


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

Re: Roadmap to lily code

Han-Wen Nienhuys
In reply to this post by Erik Sandberg
Erik Sandberg wrote:
> I guess Guile was chosen partly because that Scheme implementation existed and
> integrated well with C++ and with lily's parser.

the reasons were political and practical. Political, because GUILE
Scheme was supposed to be The One True GNU extension language, and
practical because the prefix nature made it easy to add the # hack to
LilyPond.

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


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

Re: Roadmap to lily code

Darius Blasband
Interesting question though: if you had to do it again, would you still
consider Scheme, or would you rather go for Python....

D.


Han-Wen Nienhuys wrote:

> Erik Sandberg wrote:
>
>> I guess Guile was chosen partly because that Scheme implementation
>> existed and integrated well with C++ and with lily's parser.
>
>
> the reasons were political and practical. Political, because GUILE
> Scheme was supposed to be The One True GNU extension language, and
> practical because the prefix nature made it easy to add the # hack to
> LilyPond.
>




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

Re: Roadmap to lily code

Han-Wen Nienhuys
Darius Blasband wrote:
> Interesting question though: if you had to do it again, would you still
> consider Scheme, or would you rather go for Python....
>

Yes, that's an intriguing question.  I'm not sure, really. The # hack
could also have been done in Python, by requiring parentheses, I guess.
I do wonder how what the impact on performance would have been. Python
objects are more heavyweight than SCMs, and the Garbage Collection
opened a lot of possibilities in developing Lily.

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


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

Re: Roadmap to lily code

Darius Blasband
Han-Wen Nienhuys wrote:

> Darius Blasband wrote:
>
>> Interesting question though: if you had to do it again, would you
>> still consider Scheme, or would you rather go for Python....
>>
>
> Yes, that's an intriguing question.  I'm not sure, really. The # hack
> could also have been done in Python, by requiring parentheses, I guess.

On the positive side, I guess - Nicolas might contradict me here - that
Python would have enabled far more people to hack with
the internals., as the procedural-OO paradigm is more popular than
functional programming. Besides, as far as I know, I would assume
that Python provides enough functional programming primitives for the
cases where you truly needed them.

> I do wonder how what the impact on performance would have been. Python
> objects are more heavyweight than SCMs, and the Garbage Collection
> opened a lot of possibilities in developing Lily.
>
I though Python had a GC... Did I miss anything ?

D.




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

Re: Roadmap to lily code

Han-Wen Nienhuys
Darius Blasband wrote:
> On the positive side, I guess - Nicolas might contradict me here - that
> Python would have enabled far more people to hack with
> the internals., as the procedural-OO paradigm is more popular than
> functional programming. Besides, as far as I know, I would assume
> that Python provides enough functional programming primitives for the
> cases where you truly needed them.

Yes, that's also something to wonder about.

>> I do wonder how what the impact on performance would have been. Python
>> objects are more heavyweight than SCMs, and the Garbage Collection
>> opened a lot of possibilities in developing Lily.
>>
> I though Python had a GC... Did I miss anything ?

It didn't 7 years ago.

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


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

Re: Roadmap to lily code

andrea valle
In reply to this post by Han-Wen Nienhuys
How much for a migration to python as a sponsored feature :-)?

Best

-a-



On 7 Dec 2005, at 10:39, Han-Wen Nienhuys wrote:

> Darius Blasband wrote:
>> Interesting question though: if you had to do it again, would you
>> still consider Scheme, or would you rather go for Python....


Andrea Valle
DAMS - Facoltà di Scienze della Formazione
Università degli Studi di Torino
[hidden email]


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

Re: Roadmap to lily code

Sven Axelsson-3
In reply to this post by Han-Wen Nienhuys
On 07/12/05, Han-Wen Nienhuys <[hidden email]> wrote:

> Darius Blasband wrote:
> > Interesting question though: if you had to do it again, would you still
> > consider Scheme, or would you rather go for Python....
> >
>
> Yes, that's an intriguing question.  I'm not sure, really. The # hack
> could also have been done in Python, by requiring parentheses, I guess.
> I do wonder how what the impact on performance would have been. Python
> objects are more heavyweight than SCMs, and the Garbage Collection
> opened a lot of possibilities in developing Lily.

I guess that the Python syntax (the indentation rules) would have made
it a bit messy. Since we're speculating anyways; perhaps an embedded
C++ interpreter would have given hacking opportunities to the most
people. Here is such a beast:
http://www.softintegration.com/products/sdk/embedch/

It is not GPL though,so I guess that would have been a problem for Lilypond.
--
Sven Axelsson


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

Re: Roadmap to lily code

Han-Wen Nienhuys
Sven Axelsson wrote:
>
>
> I guess that the Python syntax (the indentation rules) would have made
> it a bit messy. Since we're speculating anyways; perhaps an embedded
> C++ interpreter would have given hacking opportunities to the most
> people. Here is such a beast:

that would be counterproductive. We're have been desperately trying to
flush all C++-isms down the toilet for years now :)


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


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

Re: Roadmap to lily code

Sven Axelsson-3
On 07/12/05, Han-Wen Nienhuys <[hidden email]> wrote:
> Sven Axelsson wrote:
> > I guess that the Python syntax (the indentation rules) would have made
> > it a bit messy. Since we're speculating anyways; perhaps an embedded
> > C++ interpreter would have given hacking opportunities to the most
> > people. Here is such a beast:
>
> that would be counterproductive. We're have been desperately trying to
> flush all C++-isms down the toilet for years now :)

Sure, I can appreciate that. But it is still probably what is best
known by the casual Lilypond hacker.

--
Sven Axelsson


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

Re: Roadmap to lily code

Han-Wen Nienhuys
In reply to this post by andrea valle
andrea valle wrote:
> How much for a migration to python as a sponsored feature :-)?
>  

5 digits.

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


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

Re: Roadmap to lily code

Darius Blasband
Han-Wen Nienhuys wrote:

> andrea valle wrote:
>
>> How much for a migration to python as a sponsored feature :-)?
>>  
>
>
> 5 digits.
>

OK. What are the first two of these five digits ?

D.



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

Re: Roadmap to lily code

Christian Ebert
In reply to this post by Han-Wen Nienhuys
* Han-Wen Nienhuys on Thursday, December 08, 2005:
> andrea valle wrote:
>> How much for a migration to python as a sponsored feature :-)?
>
> 5 digits.

10000 cent is a bit cheap ;-)

c
--
_B A U S T E L L E N_ lesen!  --->> <http://www.blacktrash.org/baustellen.html>



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

Re: Roadmap to lily code

Han-Wen Nienhuys
In reply to this post by Darius Blasband
Darius Blasband wrote:
>>> How much for a migration to python as a sponsored feature :-)?

>> 5 digits.

> OK. What are the first two of these five digits ?

I really don't know. If anyone is serious about ponying up this much
money, he/she can contact me, my rough guess is between 0.5 and 1.5
years of full-time work, so you can work out the math.

I'm also not sure it's a good idea. If you want python, it would be
better to start afresh with a python version of LilyPond, and move
speed-critical things to C(++). Then, end-result will be more "pythonic"
I imagine that the end result will be slower than the current
GUILE/Scheme combo.

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


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