Re: problems with learning lilypond
Regarding those questions I didn't know how to word in an understandable way; my reasons for just simply letting them sit unasked is that in my experience, it means I've missed something along the way to the problem. So just hanging tough and letting the problem sit while I go on with soe other portion of my project usually results in either finding the answer to my problem along the way as I proceed, or finding a way to ask the question. There are the times when just going back and making sure that every single render error I get is solved no matter how small, ends up making the original problem go away. At a time like this, I've very glad I didn't rush to the list and try to ask that question. It turns out that no matter how small or insignificant you think the error is, it has repercussions down the road for something else. So rather than speaking or asking in haste, I choose to keep working ahead by going back and making sure that all the little problems I think are of insignificant are taken care of. Regarding jazz chords, I can only speak from what I see on this list. Others have greater insight into the whole Lilypond development process, so I am not surprised that it was far more complex than what I saw here. I knew these were more complex problems than a simple lead sheet since I've talked with guitar players and compared the exact notes they play with the ones I know to be associated with any one chord. I learned a whole lot from that conversation, probably more than the guitar player thought that I learned. Again, it was a matter of perspective; how things look from where you are standing at the moment. As it happened, the right people spoke up at the right time. They said things in a concise way where I would have attempted (and probably failed) to say the same thing in a most awkward and round about way. There is a great deal of expertise in this group, it doesn't all come from progammers, but from everyone who uses Lilypond, it comes from everyone who uses Lillypond. Also, remember that my time zone is GMT -8, so I am one of the last people on this list to see anything posted. That affects how I see things or how I am seen to respond to things. Scheme: I know beyond a doubt that scheme is important. Understanding it can make your work much easier and a lack of understanding can make life with Lilypond a nightmare. I will eventually understand what I need to know about scheme, it just will not be this very moment If I had to say one thing that is wrong with documentation is that the people doing the documentation assume to much about the state of the reader's knowledge. What may seem obvious to you, may not be to the person reading your documentation. Unix/Linux man files are filled with some of the most information recorded anywhere. However, their terse style makes them difficult for many new users to understand. Lilypond's documentation used to be very similar in style. This is no longer the case, it has come a long way from that terse man file style to where it is now. So kudos to those who have contributed, your work is most appreciated. Also, to those who have contributed examples to the unofficial snippets repository, your contributions are high on my list of valuable contributions to Lilypond documentation. Many times I have found answers to my questions in the snippets respository when I had about given up. For me, a picture is worth a several million words. To sum up, thanks to everyone who has contributed even in a small way to Lilypond. Lilypond is as impoirtant to me as Open Office and Firefox combined. This is not hyperboly, I'd be lost without it. cheers, davidf ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Thu, Aug 13, 2009 at 04:54:15PM -0700, David Fedoruk wrote: Also, remember that my time zone is GMT -8, so I am one of the last people on this list to see anything posted. Same here, being in Burnaby. If I had to say one thing that is wrong with documentation is that the people doing the documentation assume to much about the state of the reader's knowledge. What may seem obvious to you, may not be to the person reading your documentation. I disagree here. We spent a lot of time thinking, talking, and planning out those assumptions. At the beginning of the Learning Manual, we assume that the reader knows nothing other than having a slight familiarity with their operating system. (i.e. windows users should know what a double-click is) In the middle of the LM, we assume that the reader has read (and understood) the earlier parts** of the LM -- or at least, that the reader would be willing to go back and review previous material. I agree this assumption is slightly tenuous, but if we couldn't make this assumption, the docs could easily be three times as long. ** if you find any instance where this is not true, please let us know! The LM is designed to be read sequentially, explaining each term and concept as they come... we consider any deviation from this to be a serious problem. In the Notation Reference, we assume that the user has read (and understood) the LM. Again, maybe this is a flawed assumption, but again, we could triple the doc lenth (not to mention the doc writers' workload!) otherwise. In the Internals Reference, we assume that people know a lot. Partly because this is advanced stuff, but mostly because we don't have enough doc writer effort to smooth this over. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
David Fedoruk wrote: So just hanging tough and letting the problem sit while I go on with some other portion of my project usually results in either finding the answer to my problem along the way as I proceed, or finding a way to ask the question. There are the times when just going back and making sure that every single render error I get is solved no matter how small, ends up making the original problem go away. At a time like this, I've very glad I didn't rush to the list and try to ask that question. That's a good approach. Also, remember that my time zone is GMT -8, so I am one of the last people on this list to see anything posted. That affects how I see things or how I am seen to respond to things. At least 3 of the active source-code contributors are GMT -8... If I had to say one thing that is wrong with documentation is that the people doing the documentation assume to much about the state of the reader's knowledge. What may seem obvious to you, may not be to the person reading your documentation. It's a work in progress. Specific suggestions are the most likely to get addressed. To sum up, thanks to everyone who has contributed even in a small way to Lilypond. Lilypond is as impoirtant to me as Open Office and Firefox combined. This is not hyperboly, I'd be lost without it. Don't hesitate to contribute yourself! - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
One other thing, much of the time I have questions, but do not know how to ask the question. That is extremely frustrating and I don't know if there is anything you can do about it. Sometimes i just don't know the correct terminology to use. Many things that are assumed when you are playing the music are not assumed when you are typesetting the music. I've tripped over that one many times. In most cases it is extremely helpful to provide a small image which shows the problem you have. For example, you could use a paint program of your choice to mark what you want to change. Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Yeah it's proving to be an interesting learning experience trying to wrap my head around Lilypond. I feel it is like a multi-headed beast with Scheme Lilypond script intermingled together. It makes for an interesting mix to get ones head around. The manuals are helpful but there are hugh gaps for any new and inexperienced user such as myself. As for the output and end result. Every single person to whom I have presented printouts have only ever made very positive comments, from wood-be musicians to music teachers and choir masters all are amazed when I tell them I did this with a free music sheet program under linux. I'm no musician but the first time I printed one of the sample outputs it was easy to see Lilypond really does stand out amongst the rest. Just wish I could figure out the global variable reassignment challenge so I can clean up my code and make it more presentable and easier to maintain. Simon On 12/08/2009, at 10:51, Werner LEMBERG wrote: One other thing, much of the time I have questions, but do not know how to ask the question. That is extremely frustrating and I don't know if there is anything you can do about it. Sometimes i just don't know the correct terminology to use. Many things that are assumed when you are playing the music are not assumed when you are typesetting the music. I've tripped over that one many times. In most cases it is extremely helpful to provide a small image which shows the problem you have. For example, you could use a paint program of your choice to mark what you want to change. Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
David, Thanks for your comments, and for thinking carefully about your LilyPond use. I'm not sure exactly what you hoped to have happen as a result of this post, so it's difficult for me to respond. However, I do feel like I need to clear up one point you made: On 8/11/09 7:37 PM, David Fedoruk david.fedo...@gmail.com wrote: Lilypond isn't perfect, recently the way Lilypond works with Jazz chords and lead sheets has undergone drastic change. This was a matter of those who knew something some of the developers did not know or understand taking the time to explain how things worked in real life. It is difficult to tell an expert that he may be wrong about something. Choosing words carefully gets good results, rants almost never get the required results. I disagree that the drastic changes in Jazz chords and lead sheets is due to those who knew something explaining to the developers. In my opinion, the drastic changes in Jazz chords and lead sheets is due to people who wanted to improve things getting involved in making them happen: 1) Improved FretBoards context: Carl Sorensen wanted it and went after it, including transposable fret diagrams and N.C. symbol 2) Good chord-name-exceptions lists: Rick Hansen and others provided them to the list 3) Transposable lyric chord names: Tao Cumplido decided to create them 4) Improved tablature: Marc Hohl got it implemented 5) Improved chord namer: Thomas Morgan is working on it, and I expect great results soon I expect there are more improvements that I haven't included here, but the key issue is that *somebody* decided they wanted it badly enough to figure out a way to do it. LilyPond progress is not limited by the amount the developers know; it's limited by the amount of time the developers have available to work on it. Every developer has a TODO list that's longer than they have time to deal with, so developers work on what they're interested in. And getting development done in some area you care about really means getting some developer who cares about it as well. This doesn't mean that non-developers shouldn't ask for features. Feature requests are always helpful. But the best way to get features implemented is to try to get working on them yourself and then ask for help. Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 12.08.2009, at 12:26, Simon Mackenzie wrote: Yeah it's proving to be an interesting learning experience trying to wrap my head around Lilypond. I feel it is like a multi-headed beast with Scheme Lilypond script intermingled together. It makes for an interesting mix to get ones head around. The manuals are helpful but there are hugh gaps for any new and inexperienced user such as myself. Personally, I think this is an area where knowing too much gets in the way. I, for example, have no clue about Scheme. Scheme is, as far as I'm concerned, what other people do to save typing. In fact, I'm of the opinion that there's no need to use Scheme, it's just there if you know how to use it. So, if you take Scheme out of the lilypond learning curve, it's actually not that difficult. James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
James E. Bailey wrote: Personally, I think this is an area where knowing too much gets in the way. I, for example, have no clue about Scheme. Scheme is, as far as I'm concerned, what other people do to save typing. In fact, I'm of the opinion that there's no need to use Scheme, it's just there if you know how to use it. So, if you take Scheme out of the lilypond learning curve, it's actually not that difficult. Maybe it depends on your typesetting needs. Most of my projects require scheme in one way or another. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
James E. Bailey wrote: Really? What can't you do without Scheme? Algorithmic music. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 12.08.2009, at 19:33, Mark Polesky wrote: James E. Bailey wrote: Personally, I think this is an area where knowing too much gets in the way. I, for example, have no clue about Scheme. Scheme is, as far as I'm concerned, what other people do to save typing. In fact, I'm of the opinion that there's no need to use Scheme, it's just there if you know how to use it. So, if you take Scheme out of the lilypond learning curve, it's actually not that difficult. Maybe it depends on your typesetting needs. Most of my projects require scheme in one way or another. - Mark Really? What can't you do without Scheme? James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 12.08.2009, at 20:41, Mark Polesky wrote: James E. Bailey wrote: Really? What can't you do without Scheme? Algorithmic music. - Mark Surely the calculations can be performed outside of lilypond, and then simply input into lilypond for a score, right? Or am I missing something? James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
James E. Bailey wrote: Surely the calculations can be performed outside of lilypond, and then simply input into lilypond for a score, right? Or am I missing something? Sure, but scheme can greatly facilitate things. I should clarify that algorithmic music hardly represents the bulk of my LilyPond work, but I mentioned it as an example of something the benefits from scheme. I'll try to respond differently to what you wrote earlier: Scheme is, as far as I'm concerned, what other people do to save typing. In fact, I'm of the opinion that there's no need to use Scheme, it's just there if you know how to use it. So, if you take Scheme out of the lilypond learning curve, it's actually not that difficult. I think what David was saying in his earlier post (http://lists.gnu.org/archive/html/lilypond-user/2009-08/msg00323.html) was that he's gotten to the level where he needs scheme to do what he wants. As one example, if you need your slurs and ties to hide behind time-signatures, scheme is absolutely required, as far as I see it:http://lsr.dsi.unimi.it/LSR/Item?id=613 Scheme enables far more functionality than simply saving typing. So if you find yourself needing scheme in LilyPond, you may very well find yourself fighting its counterintuitive elements. Certainly scheme isn't required to produce beautiful scores, but I typeset a lot of contemporary music, and the demands of the new notation are simply too great to avoid it. So, as I said, perhaps it just depends on your typesetting needs. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
The documentation for Lilypond has one problem; it is, as the program is itself, under development. It is screamingly frustrating for us non-programmer users. However, that said, it is changing because it is not nearly finished, it is required to print many different kinds of music. The Learning Manual was scarcely present when i started using Lilypond. It has changed and is continuing to change. That is frequently frustrating because things you knew were in a certain spot get changed. Sometimes its like quicksand. The ground changes beneath you as you walk on it. But that is life with a program under development. Even having read the Learning Manual, applying it in different situations is not always easy. Personally I have found that asking the question on the mailing list is not as helpful as spending a little time struggling with the problem. Most of the time I find solutions. Unfortunately, what I need Lilypond for isn't small projects. So even If I've gone through the Learning Manual start to finish, its still like I've been thrown into the deep end of a swimming pool and told to swim. As you can see, I haven't drowned yet. There's lots I don't understand yet but I'll get there. Since I usually am working with piano music, I have found that working with a 4 voiced template to begin with is the best way too go. Most piano music is basically four voiced music despite what you may see on the page. I learned that by working with it over a period of time. No one told me that. Because, the improvements being made to Lilypond are occurring in the development versions I have found that using them has been the best way for me to use Llilypond. That will not be true for everyone. Everyone's experience with Lilypond will be different. I know I learn best when I am working hands on. I don't learn very well from manuals with theoretical examples. So I've adjusted how I work with Llilypond to account for that. I use the snippets library a lot. Lots of the time the things I want to do are out of the ordinary anyway, but that's life with Western European Music. It is extremely complex. Call this a rant if you want, but I do not mean it as such. I'm just stating that the Lilypond documentation is not perfect, it is changing almost as we speak and patience with it is required. From the very little I have encountered with GUI music notation editors, they are not much easier than Lilypond. At least with Lilypond you can get some quick impressive results with just an editor and a command line. Scheme just frustrates me. Everytime I think I've gotten a handle on it there's a curve ball thrown at. Obviously I haven't grasped it quite yet. I'm not letting this stop me from completing projects though --- I just keep going and learning a little more each time. Patience is what is required. Despite my lack of understanding, I have managed to complete some pretty complex scores on my own. I'm just stubborn enough to keep at it. The reason that adult beginners hardly ever do well when learning to play the piano isn't because their fingers cannot do what is required, they fail because they are not patient enough to keep practising simple things until their fingers acquire the technique to do what their minds have already learned. I think Lilypond is something like that. In both cases, patience and some dogged determination are required to learn the skills needed to do what you want. One other thing, much of the time I have questions, but do not know how to ask the question. That is extremely frustrating and I don't know if there is anything you can do about it. Sometimes i just don't know the correct terminology to use. Many things that are assumed when you are playing the music are not assumed when you are typesetting the music. I've tripped over that one many times. Lilypond isn't perfect, recently the way Lilypond works with Jazz chords and lead sheets has undergone drastic change. This was a matter of those who knew something some of the developers did not know or understand taking the time to explain how things worked in real life. It is difficult to tell an expert that he may be wrong about something. Choosing words carefully gets good results, rants almost never get the required results. I don't like the quicksand any more than anyone else, but considering the state of the program, that is the way things are. Enough said. cheers, davidf -- David Fedoruk B.Mus. UBC,1986 Certificate in Internet Systems Administration, UBC, 2003 http://recordjackethistorian.wordpress.com Music is enough for one's life time, but one life time is not enough for music Sergei Rachmaninov ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Tue, Aug 11, 2009 at 06:37:19PM -0700, David Fedoruk wrote: The documentation for Lilypond has one problem; it is, as the program is itself, under development. It is screamingly frustrating for us non-programmer users. Yes, but nothing forces people to upgrade. The documentation for 2.12.1 never changes. Call this a rant if you want, but I do not mean it as such. I'm just stating that the Lilypond documentation is not perfect, it is changing almost as we speak and patience with it is required. Either patience, or work. The more people who work on the docs, the more stable they get. During the Grand Documentation Project, NR 1+2 were *almost* complete. NR 2.1 Vocal music -- for some people, the most important section -- was almost untouched, though. In the near future, that will be completely rewritten. If a few more people had been involved in GDP, this wouldn't be an issue. NR 1+2 could have been completed a year ago, and you could rely on them not changing. As it is, some of those sections (or maybe just 2.1 Vocal) /will/ change within the next year. *shrug* Just like a democracy receives the government it deserves (where that be Bush in the US, Obama in the US, Harper in Canada, or Blair in the UK... somebody bound to hate at least one of those governments ;), the users of lilypond recieve the documentation they deserve. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
David Fedoruk wrote: ... I agree with everything you've said. I used to hate LilyPond; now I'm a developer... I've experienced some pull-your-hair-out aggravating confusions, but I've stuck with it. Yes, it's a work- in-progress. Yes, it comes with no warranty. But it can be rewarding to be a part of something big. LilyPond is getting better every day. One of the ways it gets better is when frustrated users speak clearly. I was initially surprised when some of my early complaints were met with enthusiasm -- how can we make it better? what would you like to see? I think the best thing you can do is to tell us about your frustrations. Certainly try to figure things out on your own first, and of course use a diplomatic tone, but tell us what bugs you. We all know that the documentation isn't perfect, but we're all so busy with specifics that we don't have time to imagine what parts might lead to confusion. The documentation is tweaked every day. And if you're not sure how to ask the question, just do your best. Sometimes users confuse slurs and ties, for example... But the replies are usually gentle. If your question demonstrates a misconeption, we'll try to clarify it. And with regard to telling an expert that he may be wrong about something, just avoid using any tone. Insist on accuracy, from yourself and others. Choosing your words carefully is a given. Don't make any claims that you can't prove. As a word of advice, I would recommend channeling your frustrations into clearly-worded questions/suggestions. Then everyone benefits. - Mark ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Hope this helps to clarity things for you... I have been looking at ways to tidy up my lilypond scripts. So, I've made an attempt to follow the good supply of examples in the various lilypond documents. One adapted suggestion I've sourced from the Lilypond Learning Manual (5.1.3) runs as follows... MUSICBOOK.ly contains the list of all music sheets for the music book. CHORDSNOTES_###.ly contains the chords and notes for an individual music sheet. I may yet separate this into two files, say CHORDS_###;ly and NOTES_###.ly. SHEET_###.ly contains an individual music sheet. And here I may yet also separate out the lyrics into an individual file, LYRICS_###.ly. By taking this approach I feel each individual SHEET_###.ly is clear and concise to read. With the music separated into individual files I can have a person working on chords / notes and another working on the lyrics and yet another linking all the parts together. All in parallel. By re-assigning the variables lyricsOne to n (where n is the maximum number of lyrics appearing in any one music sheet for the entire book, so far 5) as well as the notes and chords variables for each music sheet I can save myself having to make 1000+ global declarations with assignments at the top level scope in my MUSICBOOK.ly. Converting 300+ music sheets and an average around 3+ verses per music sheet. Cumbersome and messy to manage. I should also add here that I am reusing the CHORDSNOTES_###.ly with lyrics in additional languages, currently two languages (Thai and Lua') but this could go as high as 5 languages (Thai, Lua', Akha, Lahu and English). Thus saving myself one hugh amount of typing. So again my question is, how can I assign a new value to a variable so I can make all this happen and keep my global declarations / assignments to an absolute minimum and meet my goal of ensuring good clarity in my lilypond code for whomever inherits my project in the future? === Start - MUSICBOOK.ly == \version blah blah \include init/init-macros.ly \include init/init-common.ly /book { \bookpart { \inlcude music/SHEET_061.ly } \bookpart { \include music/SHEET_62.ly } ... } === End - MUSICBOOK.ly == === Start - SHEET_061.ly == \version blah blah \header { } \page { } \include CHORDSNOTES_061.ly % Currently this include will fail because I need to declare variables at the top level scope. I.e. outside all existing brackets. lyricsOne = \lyricmode { % will probably also separate out the lyrics into a separate file for each sheet to aid clarity. \set stanza = 1. ชี -- วิต เรา พระ เจ้า ทรง สร้าง เป็น หน ทาง ให้ ไป สู่ ส -- วรรค์ ความ กา -- ... ชัย อ -- ภัย พวก เรา ความ ซึม เศร้า พวก เรา หาย ไป } lyricsTwo = \lyricmode { \set stanza = 2. จะ มี ใคร ที่ ไหน กัน เล่า นำ พวก เรา ช่วย ประ ชา รอด พ้น ทำ ความ ... เอ่ยไม่ เคย เลย ลืม พวก เรา } \score { \new ChordNames { \chords } \new Voice = one { \notes } \new Lyrics \lyricsto one \lyricsOne \new Lyrics \lyricsto one \lyricsTwo \layout { } \midi { } } === End - SHEET_061.ly == === Start - CHORDSNOTES_061.ly == \version blah blah chords = \chordmode { s8 s8 c4.:m s8 s4 s8 s8 s2. s8 s8 ees4. s8 s4 s8 s8 c2.:m s8 s8 ... f4.:m s8 s4 s8 s8 c2:m s4 s4 f4.:m s8 s4 s8 s8 c1:m } notes = \relative c'' { \key c \minor \fractionalTime \time 4/4 \clef treble \partial 8*2 g8[ b8] | g4. b8 f4 e8[ e8]( | c2.) g'8[ b8] | g4. c8 b4 e,8[ f8] | g2. c8[ c8] |\break ... f4. e8 c4 e8[( b8)] | c2 f4 f4 | f4. e8 c4 b8[( e8)] | c1 | \bar |. } === End - CHORDSNOTES_061.ly == Cheers Simon On 08/08/2009, at 22:30, Tim McNamara wrote: On Aug 8, 2009, at 8:54 AM, Simon Mackenzie wrote: Here is my scenario If I create a variable at the top scope how do I reassign its value in a subsequent scope eg. aVariable = \markup { \bold bananas } \book { \bookpart { \aVariable % bananas \score { aVariable = \markup { \bold now \italic { equals this string } % want to be to reassign aVariable a new value so that... \aVariable % now equals this string } } } Why do you want to change the value of \aVariable? That doesn't make any sense to me. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Aug 9, 2009, at 9:05 AM, Simon Mackenzie wrote: So again my question is, how can I assign a new value to a variable so I can make all this happen and keep my global declarations / assignments to an absolute minimum and meet my goal of ensuring good clarity in my lilypond code for whomever inherits my project in the future? I don't think you can, but there are many here who know LilyPond better than I and they may come up with something. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Sun, Aug 09, 2009 at 09:05:41PM +0700, Simon Mackenzie wrote: One adapted suggestion I've sourced from the Lilypond Learning Manual (5.1.3) runs as follows... MUSICBOOK.ly contains the list of all music sheets for the music book. I don't think that was suggested in LM 5.1.3. This isn't a good idea. You should put notes into MUSICBOOK_###.ly So again my question is, how can I assign a new value to a variable You can't. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Quoting Simon Mackenzie smac...@me.com: Ok it appears to be a scoping issue. So I need to declare variables outside the \book scope? Is this correct? But if my script file is included inside a \book scope how can i then declare new variables inside this scope? You can't! All variables are declared globally. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Simon On 08/08/2009, at 05:41, Trevor Daniels wrote: Simon Mackenzie wrote Friday, August 07, 2009 3:55 PM Eg. What does it mean on page 34 of the Learning Tutorial when it says... Variables must be defined before the main music expression. Does this mean the \score { } or does it mean the expression in which the declared variable is referenced? The former, as shown quite clearly in the template you mention below. Implied but I feel not so clearly stated. If you declare a \book scope which contains \bookpart(s) with \score(s) where are variables to be declared? If I understand this all correctly variables must be declared outside this/these scope(s)? Correct? (as you have mentioned below variables must be declared outside (adding ALL would be helpful here) braces. Because I dutifully declare my variables before the \score { } in my script file using the example template from A.1.4 Notes, lyrics and chords on page 143, again of the learning manual. End result... This error when I compile my script Unexpected string errors for every variable I've declared and no idea as to why the template example fails to perform as claimed in the documentation. harmonies = \chordmode {... melody = \lyricmode {... etc. generate Unexpected string errors The template in the manual certainly does compile without errors, as the image just below it is the direct result of a compilation. I suggest you look at the template on the website at http://lilypond.org/doc/v2.12/Documentation/user/lilypond-learning/Single-staff#Single-staff From this page you can either copypaste the code directly, or click on the image of the music to open the file directly (in the latter case you will need to delete the first three lines). These files will then compile correctly (I've just tried it). Agreed, have tested same with complete success which is why I mentioned scoping in my last post. From the error message it looks as if you are inserting braces round the whole. Variable definitions come before any braces. I'll add a bit to the manual to make that clear. Will definitely help would-be travelers such as myself, thank you. Here is my scenario If I create a variable at the top scope how do I reassign its value in a subsequent scope eg. aVariable = \markup { \bold bananas } \book { \bookpart { \aVariable % bananas \score { aVariable = \markup { \bold now \italic { equals this string } % want to be to reassign aVariable a new value so that... \aVariable % now equals this string } } } Trevor Thank you for your comments Simon ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Ahhh! Thank you. Simon On 08/08/2009, at 20:04, Mats Bengtsson wrote: Quoting Simon Mackenzie smac...@me.com: Ok it appears to be a scoping issue. So I need to declare variables outside the \book scope? Is this correct? But if my script file is included inside a \book scope how can i then declare new variables inside this scope? You can't! All variables are declared globally. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Aug 8, 2009, at 8:54 AM, Simon Mackenzie wrote: Here is my scenario If I create a variable at the top scope how do I reassign its value in a subsequent scope eg. aVariable = \markup { \bold bananas } \book { \bookpart { \aVariable % bananas \score { aVariable = \markup { \bold now \italic { equals this string } % want to be to reassign aVariable a new value so that... \aVariable % now equals this string } } } Why do you want to change the value of \aVariable? That doesn't make any sense to me. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 08.08.2009, at 17:30, Tim McNamara wrote: On Aug 8, 2009, at 8:54 AM, Simon Mackenzie wrote: Here is my scenario If I create a variable at the top scope how do I reassign its value in a subsequent scope eg. aVariable = \markup { \bold bananas } \book { \bookpart { \aVariable % bananas \score { aVariable = \markup { \bold now \italic { equals this string } % want to be to reassign aVariable a new value so that... \aVariable % now equals this string } } } Why do you want to change the value of \aVariable? That doesn't make any sense to me. I think the corollary to this would be, why not simply define two variables in the beginning? James E. Bailey ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Agreed!!! Eg. What does it mean on page 34 of the Learning Tutorial when it says... Variables must be defined before the main music expression. Does this mean the \score { } or does it mean the expression in which the declared variable is referenced? Because I dutifully declare my variables before the \score { } in my script file using the example template from A.1.4 Notes, lyrics and chords on page 143, again of the learning manual. End result... This error when I compile my script Unexpected string errors for every variable I've declared and no idea as to why the template example fails to perform as claimed in the documentation. harmonies = \chordmode {... melody = \lyricmode {... etc. generate Unexpected string errors Simon On 22/11/2008, at 06:56, John Sellers wrote: I have no argument with what you say about the documentation compared with many kinds of technical documentation, as long as you stick close to home. The Lilypond folks work hard and do a lot of nice stuff, including documentation. However, that doesn't change the facts of what I say. The origin of the problem is that developers don't have to walk the path of the newbies from beginning to end and it is very difficult to provide a whole documentation structure that is truly responsive to those kind of needs...so most technical documentation the world over never does successfully do so. HOWEVER, MAY I POINT OUT DOING SO IS PROBABLY THE MOST PRODUCTIVE THING YOU COULD DO TO LILYPOND TO ASSURE ITS FUTURE GROWTH AND SUCCESS!. Good wishes, John Sellers Federico Grau wrote: I've found the lilypond documentation to be quite good (after having been using it now for about a year). It starts with an introduction, has a friendly gentle tutorial, followed up by a detailed reference. If you're not able to use it, maybe start with a simple project. As you become more comfortable you can expand and take on more complex projects. There are plenty of example templates to get one started at the bottom of the documenation, and you'll likely end up taking the useful parts to create your own template (mine is http://www.casagrau.org/~donfede/lily/lilypond_template.ly ). happy notating, donfede On Wed, Nov 19, 2008 at 12:54:39AM -0800, John Sellers wrote: I am in Silicon Valley. I've never met and talked to another lilypond user face to face. It is lonely out here. I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! I'm very tired of having a few hours to do something different, going to lilypond documentation and getting something like use such and such to do so and so. fine so far. but how in God's Green Earth am I going to use something like: \paper {} If I don't know what context it works and what context it does not work? If like an idiot I go into my LY file and insert paper and put my between-system-space or anything ELSE on the same page with a lot of other variables which control things. Why don't they ALL work WHENEVER I try to use them...the answer is of course LACK OF CONTEXT. For correct context, I have to put the \paper {} in the right part of the program. I have to tie the variables to whatever they are going to effect. Or do I? I haven't a clue. Why.here we go againLACK OF CONTEXT. Here is one way you can solve this problem. NEVER DOCUMENT ANYTHING OUT OF CONTEXT except with a link that LEADS TO THE CORRECT CONTEXT. YOU HAVE TO BE SYSTEMATIC! Consider the following: Every feature must be documentedright? So are we talking about a desert of documented sand pebbles in a jar or are there relationships between them? WOW! there are DEPENDENCIES --- A dependences are B depends on C --- oops, C depends on A NOT GOOD. So what is one to do? Well, you could use a topological sort of all capability dependencies using generality as the sort discriminant. Find all the cycles and BREAK THEM. Organize things in this way so now you have a structure which has an entry point for the user for every feature. Look, dependency is just another way of say CONTEXT. If context goes in a circle then you end up defining A grumpet B and then defining B as anti-grumpet A, which is has no more meaning than being a tautology. In the best of all worlds, a user coming to the documentation WITH NO KNOWLEDGE OF LILYOND in wanting to do something like control vertical spacing, and if you linked back to more and more general contexts with clear examples and explanations in a systematic way, then at some point you would reach the context that includes the user's context, and there the user can make the connection of how to find the way to apply vertical spacing to his/her specific situation.
Re: problems with learning lilypond
Ok it appears to be a scoping issue. So I need to declare variables outside the \book scope? Is this correct? But if my script file is included inside a \book scope how can i then declare new variables inside this scope? Simon On 07/08/2009, at 21:55, Simon Mackenzie wrote: Agreed!!! Eg. What does it mean on page 34 of the Learning Tutorial when it says... Variables must be defined before the main music expression. Does this mean the \score { } or does it mean the expression in which the declared variable is referenced? Because I dutifully declare my variables before the \score { } in my script file using the example template from A.1.4 Notes, lyrics and chords on page 143, again of the learning manual. End result... This error when I compile my script Unexpected string errors for every variable I've declared and no idea as to why the template example fails to perform as claimed in the documentation. harmonies = \chordmode {... melody = \lyricmode {... etc. generate Unexpected string errors Simon On 22/11/2008, at 06:56, John Sellers wrote: I have no argument with what you say about the documentation compared with many kinds of technical documentation, as long as you stick close to home. The Lilypond folks work hard and do a lot of nice stuff, including documentation. However, that doesn't change the facts of what I say. The origin of the problem is that developers don't have to walk the path of the newbies from beginning to end and it is very difficult to provide a whole documentation structure that is truly responsive to those kind of needs...so most technical documentation the world over never does successfully do so. HOWEVER, MAY I POINT OUT DOING SO IS PROBABLY THE MOST PRODUCTIVE THING YOU COULD DO TO LILYPOND TO ASSURE ITS FUTURE GROWTH AND SUCCESS!. Good wishes, John Sellers Federico Grau wrote: I've found the lilypond documentation to be quite good (after having been using it now for about a year). It starts with an introduction, has a friendly gentle tutorial, followed up by a detailed reference. If you're not able to use it, maybe start with a simple project. As you become more comfortable you can expand and take on more complex projects. There are plenty of example templates to get one started at the bottom of the documenation, and you'll likely end up taking the useful parts to create your own template (mine is http://www.casagrau.org/~donfede/lily/lilypond_template.ly ). happy notating, donfede On Wed, Nov 19, 2008 at 12:54:39AM -0800, John Sellers wrote: I am in Silicon Valley. I've never met and talked to another lilypond user face to face. It is lonely out here. I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! I'm very tired of having a few hours to do something different, going to lilypond documentation and getting something like use such and such to do so and so. fine so far. but how in God's Green Earth am I going to use something like: \paper {} If I don't know what context it works and what context it does not work? If like an idiot I go into my LY file and insert paper and put my between-system-space or anything ELSE on the same page with a lot of other variables which control things. Why don't they ALL work WHENEVER I try to use them...the answer is of course LACK OF CONTEXT. For correct context, I have to put the \paper {} in the right part of the program. I have to tie the variables to whatever they are going to effect. Or do I? I haven't a clue. Why.here we go againLACK OF CONTEXT. Here is one way you can solve this problem. NEVER DOCUMENT ANYTHING OUT OF CONTEXT except with a link that LEADS TO THE CORRECT CONTEXT. YOU HAVE TO BE SYSTEMATIC! Consider the following: Every feature must be documentedright? So are we talking about a desert of documented sand pebbles in a jar or are there relationships between them? WOW! there are DEPENDENCIES --- A dependences are B depends on C --- oops, C depends on A NOT GOOD. So what is one to do? Well, you could use a topological sort of all capability dependencies using generality as the sort discriminant. Find all the cycles and BREAK THEM. Organize things in this way so now you have a structure which has an entry point for the user for every feature. Look, dependency is just another way of say CONTEXT. If context goes in a circle then you end up defining A grumpet B and then defining B as anti-grumpet A, which is has no more meaning than being a tautology. In the best of all worlds, a user coming to the documentation WITH NO KNOWLEDGE OF LILYOND in wanting to do something like control vertical spacing, and if you linked back to more and more
Re: problems with learning lilypond
Simon Mackenzie wrote Friday, August 07, 2009 3:55 PM Eg. What does it mean on page 34 of the Learning Tutorial when it says... Variables must be defined before the main music expression. Does this mean the \score { } or does it mean the expression in which the declared variable is referenced? The former, as shown quite clearly in the template you mention below. Because I dutifully declare my variables before the \score { } in my script file using the example template from A.1.4 Notes, lyrics and chords on page 143, again of the learning manual. End result... This error when I compile my script Unexpected string errors for every variable I've declared and no idea as to why the template example fails to perform as claimed in the documentation. harmonies = \chordmode {... melody = \lyricmode {... etc. generate Unexpected string errors The template in the manual certainly does compile without errors, as the image just below it is the direct result of a compilation. I suggest you look at the template on the website at http://lilypond.org/doc/v2.12/Documentation/user/lilypond-learning/Single-staff#Single-staff From this page you can either copypaste the code directly, or click on the image of the music to open the file directly (in the latter case you will need to delete the first three lines). These files will then compile correctly (I've just tried it). From the error message it looks as if you are inserting braces round the whole. Variable definitions come before any braces. I'll add a bit to the manual to make that clear. Trevor ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Recently my cygwin based lilypond 2.10.33 install starting erroring out on all lilypond LY files. The given error is failed (13568) following a listing of the gs command line description. lilypond is installed correctly, ghostscript seems to be OK, and there are no applications which have PDF files open, and rebooting and re-installing doesn't fix this. Any suggestions where to look to fix this? ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
2008/11/29 [EMAIL PROTECTED]: Citeren John Sellers [EMAIL PROTECTED]: confronted with multiple choice, none of which are distinguished from each other in regard as to the best one to pick. If I understood what was said, the 2.11 and later documentation is better than 2.10 and earlier. Why would I look at 2.11 I suggest to add only one small word to the link on the webpage to the 2.11 docs: ( Recommended ! ) That should be enough to make an end to the confusion ? Martin I vote for this. Forwarding to -devel -- Francisco Vila. Badajoz (Spain) http://www.paconet.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Graham Percival wrote: ... umm, WHAT?! Are you seriously claiming that you couldn't find the Learning Manual link? Top-left on the Documentation page? 1) go to lilypond.org 2) click on documentation 3) click on documentation for 2.11 4) click on Learning manual 5) click on 1.2 About the documentation or 2. Tutorial If you can find the documentation, you can find the tutorial. And if you can't find the documentation... well, some programs can be used without reading the docs; lilypond is not one of them. You misunderstand me. I am not concerned about myself. It is the umpteen other newbies who come to the front page of lilypond and are confronted with multiple choice, none of which are distinguished from each other in regard as to the best one to pick. If I understood what was said, the 2.11 and later documentation is better than 2.10 and earlier. Why would I look at 2.11 when the most recent stable version is 2.10 unless something up front says. The 2.11 tutorial is important and you should look at it if you want to understand lilypond. Is it important? You bet. If you have a blatantly obvious link that in effect says here is where to go to get a handle on Lilypond then 99 out of a 100 who want to get a handle on Lillypond will follow that path and most of them will get a handle on Lilypond. If there is no such link, but instead you say something like 2.11 documentation. Then many newbies may well say. H...2.10 is the newest stable release. I'm not going to waste my time on 2.11 because it is not stable yet, and thus will never know they missed a tutorial that will save them a lot of time. It is true that if one has enough time, one will look around and eventually find that there is a tutorial that one should look at. But this isn't like to happen if one doesn't have a lot of time, which happens to be most of those who are technologically involved. Your comment about are you seriously claiming... comment. Of course I can find it, if I know it is there, if I know there something important I should see, if I know that it is better than looking somewhere else. You described a drill down to get there. I suggest you count the number of end points for all the drill down paths for the depth of the preferred documentation and then calculate the time it would take to explore them compared to a doing a single click on an front link that says: Learning manual that every person wanting understand Lilypond should look at. You have to remember that the world over, people have different experiences and different ways of understanding, and that these are not unique or even similar in spite of using the exact same words to describe whatever it is. Let me explain it in another way. Consider learning manual and dog. You understand both of these perfectly, right? But wait, then what is dogged, dog gone it, dog days, hot dog stand, hot dog!, hot dogging? These are all very different and if you only knew the word dog and didn't know these idioms you would have a hard time making heads or tails of what they mean. Here is a news flash. Whatever a learning manual is, turns out to be as widely varied as all the dog expressions. A good way to solve this problem is to be specific enough that only the right meaning is likely. This is illustrated by doing a google search on, You ain't nothing but a hound dog. You will find that there are few if any false positives in the 12,000+ hits. If you want your documentation to really be useful, then put in enough qualification that all other possibilities are eliminated. This is the exact nature of putting something like Choose this link to find the best documentation for getting a handle on Lilypond which doesn't leave any room for doubt regardless of which part of the world you might be from or what your previous experience might have been. It is the universal tendency of all technical documentation to fail to be this unambiguous simply because of the nature of the context that documentation is developed. Assumptions are made based on what is known or seen, and unfortunately none of us has the opportunity grow up and experience any of the 99.% of the rest of the world, so it is very hard for us to take this into account so we do what we already know to do instead. --end of tirade-- ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
2008/11/29 John Sellers [EMAIL PROTECTED]: If you want your documentation to really be useful, then put in enough qualification that all other possibilities are eliminated. This is the exact nature of putting something like Choose this link to find the best documentation for getting a handle on Lilypond... Something I can extract from this all is, yes, if we have a very important thing to say to everybody, eg so-called unstable docs are way better than old stable docs, then maybe we should put it in the web page in a prominent place. I mean, not waiting for people to subscribe to -user and convince them from there that stable does not mean perfect and that unstable version is not as bad as its name suggests. Rather the opposite, at least right now, do you agree? -- Francisco Vila. Badajoz (Spain) http://www.paconet.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
I just have to say that, having been a newbie at one point, with absolutely no background in script programs, I found LilyPond quite a simple affair to learn well enough to accomplish something. After that, it was all about exploring docs. Now I have a handful of students who have learned it very quickly and know how to get solutions. My real-world experience (I have met other Lilyponders face to face!!!) is that the program is well-documented and rather simple to learn. It's not perfect, but at least it has docs! I must say that, unless you are willing to dig into the program, do something useful with/to it, and contribute to the community, then just let the community be. Ranting to change people's opinions will accomplish nothing. Spend some of your time learning the workings of the program and less time ranting, and maybe you could contribute something. My two cents. I love LilyPond! Go LilyPond! I don't contribute much on the coding/dialoguing side, but I make beautiful scores with it, and, in a way, that is a contribution! Neil ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Citeren John Sellers [EMAIL PROTECTED]: confronted with multiple choice, none of which are distinguished from each other in regard as to the best one to pick. If I understood what was said, the 2.11 and later documentation is better than 2.10 and earlier. Why would I look at 2.11 I suggest to add only one small word to the link on the webpage to the 2.11 docs: ( Recommended ! ) That should be enough to make an end to the confusion ? Martin ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
(sorry to copy the whole thing back, but it seems appropriate some how). I hear your pain. I'll do what I can, but it may not be much. I'm currently taking violin lessons from Jeremy Cohen (Grammy nominated this year), and Julian Smedley (Berkeley Hot Club and others), and Guitar from Jimmy Luttrell (Entered the Western Swing Hall of Fame this year.) So, needless to say, I am working very hard and am very busy. But I do have some ideas, and maybe we could have an on going dialog at such a pace that would not be too much of a burden to either you or me. My first thought out of the box? Would be to start working on a low-overhead system for capturing and redirecting stuck and frustrated users at the point they get stuck or frustrated. Feedback systems are often too high overhead to your side or the user side to be really effective. Most attempts to create such a system are also not so easy to do right because it is really hard to get both sides of the picture without too much effort, and if the effort isn't spent, then you end up with something less than successful. But for starters a carefully constructed "first contact" in-context link might be a first step on this path. You want to get the feed back without pigeon holing the user and at the same time, not overburdening one's organization with umpteen Jillion "feedbacks". One way might be that the feed back box is fronted with a carefully constructed explanation about your resource limitations, asking the user to go the extra mile to boil down and re-boil down their feedback to make it clear and precise about their problem. One way to do this would be to use something like the Google Idea Contest template, but boiling it down to the specific purpose of getting unsticking/frustration fixing feeback, carefully structuring and limiting the form to a certain size while explaining to the user exactly why they need to be clear and precise. Googles form is wonderful guide to structuring ideas in a constructive form...this same concept could be adapted to your purposes. What Google's feedback form lacked was immediate feedback on "size limitation" as the person typed...in other words it wasn't until the person filled out the whole form and discovered their text was too wordy. (just like I am now...lazy me...see you don't want this...you should limit my comments to a clear title, a short explanation of my idea, a larger description...etcsee the Google form if you can find it. Google's form would have been perfect if they had had an automatic character counter on each field to tell the user when the limit was reachedand perhaps explained even more (in context) why clarity was needed. If you were to do this in a way that can be clearly understood, I think you will be surprised how much work people are willing to put into making their explanation of their problem clear for you. Taking this feedback form, if it is structured right, would enable the lilypond employee/expert/helper quickly recognize exactly what kind of remediation is needed. I would expect this remediation be simply a link other already written documentation. Step two, after some experience with this kind of feed back, would likely lead to the "I'm frustrated/stuck" link being replaced with a SPECIFIC SHORT LIST of ramediation which completely covers the knowledge presented. Step three, after a lot of experience with this kind of feed backtaking from the very outset to plan a systematic way of presenting the kind of topological sort of dependencies and compiler and all that other fancy stuffdown the roadwe put together a world class back end to your documentation which was able to ramediate anything and everything that is compiledoh yea...minor detail...if and when you every reach that stage, it means putting in place an infrastructure for the programmers to enable them to do the programming and the documentation of the logic of that programming at the same time so there is a one to one correspondence to what liliypond compiler does and the documentation which describes that particular part of the language does. Just as the compiler has to know what the language means in order to turn it into music, the user has to know that same thing in order to know what to type in order to turn it into music. See the parallel??? But that is way down the road, first you have to understand from experience how the user's needs work, and you aren't going to get that except from the feedback...thus starting with the "frustration/stuck" links. Eventually understanding how users get stuck and frustrated looking at a particular piece of code will tell you how to use the compiler parser for that particular piece of code to automate feeding them back to the documentation to get them unstuck, and in fact, what kind of documentation is needed to get them unstuck...a long row to hoebut just think...a chance to be the best in the world. End of another tiradesoare you stuck or
Re: problems with learning lilypond
Understood, and no argumenthere then is another suggestion...if this tutorial is as good as you say. Make sure it crosses the paths of newbies enough that they will end up reading before they get in as deep as I have. Will I read it? Yes, may the next time I run into a problem. But would you tell me where to find it, and just which tutorial you are referring to? I've read tutorial stuff a few times in the long distant past...and when I do read, I don't always make the associations you expect me to Tell you what, I will take a look. I'll even try to go over the a few of the problems I had in the past to see if it answers to them. There reason I have never looked at the tutorial in question is that I do not use anything beyond the current working stable version---actually the cygwin verison. Is this learning tutorial going to be part of a stable version soon or might it be a good idea to patch up a generic version of the same that lies in the path of very newbie so obviously that they will get the message and go through it? ---John Graham Percival wrote: On Fri, Nov 21, 2008 at 11:20:23PM -0700, Carl D. Sorensen wrote: On 11/21/08 4:56 PM, "John Sellers" [EMAIL PROTECTED] wrote: The origin of the problem is that developers don't have to walk the path of the newbies from beginning to end and it is very difficult to provide a whole documentation structure that is truly responsive to those kind of needs...so most technical documentation the world over never does successfully do so. Given that nobody on the doc team was an original developer, we most certainly *did* walk the path of newbies. Good wishes, John Sellers If I didn't make it clear in my earlier post, I'll try to make it clear now. I DON'T KNOW HOW TO DO WHAT YOU ARE ASKING ME TO DO! Also, John, read the Learning Manual of the 2.11 docs. I can tell that you haven't. Front to back. Won't you please help us figure it out? You seem to have some good ideas. Why don't you share them in some specific way so that we can get a clue? General note for newbies: stop complaining that "we don't listen to newbies" and then refusing to help with the docs. If you get involved, we'll listen. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Thu, Nov 27, 2008 at 01:24:35AM -0800, John Sellers wrote: Understood, and no argumenthere then is another suggestion...if this tutorial is as good as you say. Make sure it crosses the paths of newbies enough that they will end up reading before they get in as deep as I have. ... umm, WHAT?! Are you seriously claiming that you couldn't find the Learning Manual link? Top-left on the Documentation page? 1) go to lilypond.org 2) click on documentation 3) click on documentation for 2.11 4) click on Learning manual 5) click on 1.2 About the documentation or 2. Tutorial If you can find the documentation, you can find the tutorial. And if you can't find the documentation... well, some programs can be used without reading the docs; lilypond is not one of them. I have never looked at the tutorial in question is that I do not use anything beyond the current working stable version---actually the cygwin verison. Is this learning tutorial going to be part of a stable version soon or might it be a good idea to patch up a generic version of the same that lies in the path of very newbie so obviously that they will get the message and go through it? 2.12 will be released soon, and it contains all the latest docs. - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Thu, Nov 27, 2008 at 01:13:21AM -0800, John Sellers wrote: (sorry to copy the whole thing back, but it seems appropriate some how). -snip long rambling rant- John, please spend a few minutes looking at our web pages. We already do virtually everything you mentioned. You mentioned: asking the user to go the extra mile to boil down and re-boil down their feedback to make it precise about their problem ? Well, step 1 of asking the user to boil down their feedback is to ask them to LOOK AT WHAT WE'RE ALREADY DOING. - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
2008/11/27 John Sellers [EMAIL PROTECTED]: Is this learning tutorial going to be part of a stable version soon The tutorial in the learning manual is a part of the docs of the current development version. This version is the next stable. It is recommended to move soon to it, for many reasons. -- Francisco Vila. Badajoz (Spain) http://www.paconet.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
John Sellers wrote: Will I read it? Yes, may the next time I run into a problem. But would you I can't believe I wasted my time reading this email when you STILL haven't looked at the current Learning Manual! Geez... tell me where to find it, and just which tutorial you are referring to? I've read tutorial stuff a few times in the long distant past...and when I do read, I don't always make the associations you expect me to -- Jonathan Kulp http://www.jonathankulp.com ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 11/27/08 2:24 AM, John Sellers [EMAIL PROTECTED] wrote: Understood, and no argumenthere then is another suggestion...if this tutorial is as good as you say. Make sure it crosses the paths of newbies enough that they will end up reading before they get in as deep as I have. I think we have solved this problem. When newbies ask questions, we first say Read the Learning Manual. And I've already asked you twice to read the Learning Manual as a starting place for making improvements to the documentation. The new Learning Manual is *WAY* better than the old docs. And everybody, even veteran users like yourself, should read the LM. I guarantee that if you read the LM, you will understand lots of things you currently have problems with. Will I read it? Yes, may the next time I run into a problem. Don't wait until you run into a problem. The Learning Manual is not a good resource for *solving* problems. That's what the Notation Reference is for. The Learning Manual is an *excellent* resource for *avoiding* problems. So read it, from cover to cover, before the next time you work on LilyPond. As an experienced user, you can just read it; you don't need to try the tutorial stuff if you don't want to. But it will give you a *great* overview of most of the stuff that is confusing in LilyPond, if you're anything like me. But would you tell me where to find it, and just which tutorial you are referring to? I've read tutorial stuff a few times in the long distant past...and when I do read, I don't always make the associations you expect me to Tell you what, I will take a look. I'll even try to go over the a few of the problems I had in the past to see if it answers to them. There reason I have never looked at the tutorial in question is that I do not use anything beyond the current working stable version---actually the cygwin verison. Is this learning tutorial going to be part of a stable version soon or might it be a good idea to patch up a generic version of the same that lies in the path of very newbie so obviously that they will get the message and go through it? The development version is currently more stable (read: bug free) than the stable version. You should download the 2.11.65 development version, and use it. This advice has been given consistently over the last three months on -user. Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 11/27/08 2:13 AM, John Sellers [EMAIL PROTECTED] wrote: I hear your pain. I'll do what I can, but it may not be much. I'm currently taking violin lessons from Jeremy Cohen (Grammy nominated this year), and Julian Smedley (Berkeley Hot Club and others), and Guitar from Jimmy Luttrell (Entered the Western Swing Hall of Fame this year.) John, I'm going to try say this gently, so as not to cause hard feelings. If I do things wrong, please consider that I'm not trying to be offensive. I'm always happy to hear a bit about the musical lives of people using LilyPond, but your first paragraph sounds a bit like name dropping with the intent of establishing you as an expert, perhaps superior to the rest of us peons. I'll give you the benefit of the doubt, and believe that you didn't intend that, so just consider this a bit of feedback about a perhaps unintended effect of your writing style. So, needless to say, I am working very hard and am very busy. There's a potential implication that none of the rest of us are working very hard or are very busy. Again, I'll give you the benefit of the doubt. If we can keep from getting sidetracked by this type of issue, it'll be much more helpful for moving LilyPond forward. But I do have some ideas, and maybe we could have an on going dialog at such a pace that would not be too much of a burden to either you or me. I'm fine to have an ongoing dialog. And we'd love to have suggestions about improving LilyPond. The more specific, the better. My first thought out of the box? Would be to start working on a low-overhead system for capturing and redirecting stuck and frustrated users at the point they get stuck or frustrated. Feedback systems are often too high overhead to your side or the user side to be really effective. Most attempts to create such a system are also not so easy to do right because it is really hard to get both sides of the picture without too much effort, and if the effort isn't spent, then you end up with something less than successful. But for starters a carefully constructed first contact in-context link might be a first step on this path. You want to get the feed back without pigeon holing the user and at the same time, not overburdening one's organization with umpteen Jillion feedbacks. One way might be that the feed back box is fronted with a carefully constructed explanation about your resource limitations, asking the user to go the extra mile to boil down and re-boil down their feedback to make it clear and precise about their problem. One way to do this would be to use something like the Google Idea Contest template, but boiling it down to the specific purpose of getting unsticking/frustration fixing feeback, carefully structuring and limiting the form to a certain size while explaining to the user exactly why they need to be clear and precise. Googles form is wonderful guide to structuring ideas in a constructive form...this same concept could be adapted to your purposes. What Google's feedback form lacked was immediate feedback on size limitation as the person typed...in other words it wasn't until the person filled out the whole form and discovered their text was too wordy. (just like I am now...lazy me...see you don't want this...you should limit my comments to a clear title, a short explanation of my idea, a larger description...etcsee the Google form if you can find it. Google's form would have been perfect if they had had an automatic character counter on each field to tell the user when the limit was reachedand perhaps explained even more (in context) why clarity was needed. I like the fact that you got to a specific idea of using the Google Idea Contest template. Unfortunately, the Google Idea Contest template appears to have been taken down with the end of the submission period, so I can't use it to help us. Until we have somebody whose itch is to have a web-based, form-driven feedback system, we're going to just have to live with email based systems. I have proposed a Getting Help webpage as part of the LilyPond website (it's on the -devel list, but hasn't yet posted to the archives. When it does post, you can find it at http://lists.gnu.org/archive/html/lilypond-devel/2008-11/threads.html). The page would have a link to a good resource on forming a clear question to ask from mailing lists. If you were to do this in a way that can be clearly understood, I think you will be surprised how much work people are willing to put into making their explanation of their problem clear for you. No, I'm not surprised. Most of the requests on -user are clear and concise. The primary exception to this rule is the requests from brand-new users, who need some help getting started. That's why Trevor wrote the new Learning Manual. Taking this feedback form, if it is structured right, would enable the lilypond employee/expert/helper quickly recognize exactly what
Re: problems with learning lilypond
o) Each page is layed out separately, so that the staff for one instrument continues at a completely different position on the next page. This makes reading full scores (and trying to follow one instrument) while conducting almost impossible I disagree. This is the *normal* situation for traditional full scores. Just take, for example, an opera from Richard Strauss. Facing pages virtually *never* have the same vertical positions of staff lines, even if the used instruments are the same. However, such an option would be useful in some situations. Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Sat, Nov 22, 2008 at 10:36 AM, Reinhold Kainhofer [EMAIL PROTECTED] wrote: - -) partcombine in general: It's very aggressive and as such noch suitable for full scores: it combines even single notes so that at worst each note in a measure will get a2, Solo, a2, Solo, for example if you do { \partcombine \relative c'{ d4 r d r } \relative c'{d4 g d g } } partcombine will also never create a note with two stems, but rather always combine it to one note. Also, in printed scores, part-combination is mostly done on a measure-base rather than per note. the partcombiner is severely limited and should probably be written from scratch again. -- Han-Wen Nienhuys - [EMAIL PROTECTED] - http://www.xs4all.nl/~hanwen ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
I must admit... That I do share some feelings with John. I've been using LilyPond infrequently for many years, and frequently for a year now. I often get surprised by its behaviour, and I often have to puzzle how to achieve certain results. But... The documentation has improved enormously. The current 2.11 version can hardly be compared to the older versions. It is *great* and getting even better. And... Support from lilypond-users is also *great*. Moreover... Every piece of music is different. Very often I am surprised that LilyPond *can* actually achieve something wierd that I had in mind. I'm pretty sure many of the 'user friendly' point-n-click tools are quire limited, I have yet to find one of LP's limits[1]. Yes... It takes some time and effort to learn LilyPond. It is worth it. -- Johan [1] Maybe how to add lyrics to a partcombined section? ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Am Samstag, 22. November 2008 schrieb Johan Vromans: Every piece of music is different. Very often I am surprised that LilyPond *can* actually achieve something wierd that I had in mind. I'm pretty sure many of the 'user friendly' point-n-click tools are quire limited, I have yet to find one of LP's limits[1]. [...] [1] Maybe how to add lyrics to a partcombined section? I agree. However, I've run into some of LilyPond's limits while trying to typeset full-orchestra scores with choir/soloists. Here's my list of showstoppers for full orchestral scores, sorted in decending order of importance to me: - -) You can't attach lyrics to cue notes!!! - -) The vertical page layout: o) The page is not filled (even with stretching) if there is only 1 system o) Each page is layed out separately, so that the staff for one instrument continues at a completely different position on the next page. This makes reading full scores (and trying to follow one instrument) while conducting almost impossible - -) partcombine in general: It's very aggressive and as such noch suitable for full scores: it combines even single notes so that at worst each note in a measure will get a2, Solo, a2, Solo, for example if you do { \partcombine \relative c'{ d4 r d r } \relative c'{d4 g d g } } partcombine will also never create a note with two stems, but rather always combine it to one note. Also, in printed scores, part-combination is mostly done on a measure-base rather than per note. - -) You can't have different stretching for the different groups (in particular, the staves inside the group will be spaced equally to the spacing between the groups). - -) Moving dynamics inside the staff can only be done via some nasty hacks - -) Two-column layout for text (preface, notes, etc.) and automatic hyphenation - -) partcombine does not work with lyrics - -) Cross-staff chorded notes (important for the piano reduction and organ scores like Vierne's Messe Solenelle!) If these are solved/implemented, then I think LilyPond is also perfect for typesetting full orchestral scores in print quality. Of course I might miss something, but so far I haven't been able to fix any of those (without some large coding in LilyPond's source code. Cheers, Reinhold - -- - -- Reinhold Kainhofer, Vienna University of Technology, Austria email: [EMAIL PROTECTED], http://reinhold.kainhofer.com/ * Financial and Actuarial Mathematics, TU Wien, http://www.fam.tuwien.ac.at/ * K Desktop Environment, http://www.kde.org, KOrganizer maintainer * Chorvereinigung Jung-Wien, http://www.jung-wien.at/ -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFJJ/zLTqjEwhXvPN0RAkaCAJ9rW6GDGi4O6oPQhqIog/WWWzbn2QCgjQXo 291YaX0EKud0PN0KCWWVX7w= =ivje -END PGP SIGNATURE- ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
I have no argument with what you say about the documentation compared with many kinds of technical documentation, as long as you stick close to home. The Lilypond folks work hard and do a lot of nice stuff, including documentation. However, that doesn't change the facts of what I say. The origin of the problem is that developers don't have to walk the path of the newbies from beginning to end and it is very difficult to provide a whole documentation structure that is truly responsive to those kind of needs...so most technical documentation the world over never does successfully do so. HOWEVER, MAY I POINT OUT DOING SO IS PROBABLY THE MOST PRODUCTIVE THING YOU COULD DO TO LILYPOND TO ASSURE ITS FUTURE GROWTH AND SUCCESS!. Good wishes, John Sellers Federico Grau wrote: I've found the lilypond documentation to be quite good (after having been using it now for about a year). It starts with an introduction, has a friendly gentle tutorial, followed up by a detailed reference. If you're not able to use it, maybe start with a simple project. As you become more comfortable you can expand and take on more complex projects. There are plenty of example templates to get one started at the bottom of the documenation, and you'll likely end up taking the "useful" parts to create your own template (mine is http://www.casagrau.org/~donfede/lily/lilypond_template.ly ). happy notating, donfede On Wed, Nov 19, 2008 at 12:54:39AM -0800, John Sellers wrote: I am in Silicon Valley. I've never met and talked to another lilypond user face to face. It is lonely out here. I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! I'm very tired of having a few hours to do something different, going to lilypond documentation and getting something like "use such and such to do so and so". fine so far. but how in God's Green Earth am I going to use something like: \paper {} If I don't know what context it works and what context it does not work? If like an idiot I go into my LY file and insert paper and put my between-system-space or anything ELSE on the same page with a lot of other variables which control things. Why don't they ALL work WHENEVER I try to use them...the answer is of course LACK OF CONTEXT. For correct context, I have to put the \paper {} in the right part of the program. I have to tie the variables to whatever they are going to effect. Or do I? I haven't a clue. Why.here we go againLACK OF CONTEXT. Here is one way you can solve this problem. NEVER DOCUMENT ANYTHING OUT OF CONTEXT except with a link that LEADS TO THE CORRECT CONTEXT. YOU HAVE TO BE SYSTEMATIC! Consider the following: Every feature must be documentedright? So are we talking about a desert of documented sand pebbles in a jar or are there relationships between them? WOW! there are DEPENDENCIES --- A dependences are B depends on C --- oops, C depends on A NOT GOOD. So what is one to do? Well, you could use a topological sort of all capability dependencies using generality as the sort discriminant. Find all the cycles and BREAK THEM. Organize things in this way so now you have a structure which has an entry point for the user for every feature. Look, dependency is just another way of say CONTEXT. If context goes in a circle then you end up defining A grumpet B and then defining B as anti-grumpet A, which is has no more meaning than being a tautology. In the best of all worlds, a user coming to the documentation WITH NO KNOWLEDGE OF LILYOND in wanting to do something like control vertical spacing, and if you linked back to more and more general contexts with clear examples and explanations in a systematic way, then at some point you would reach the context that includes the user's context, and there the user can make the connection of how to find the way to apply vertical spacing to his/her specific situation. Here is a hint. You run lilypond executable and makes those connections, so the relationships already exist and are documented in an executable form. Here is another hint. The nature of MEANING is the one to one correspondence between two different systems. So we have a system to compile which we know to be complete, and we want a system to provide meaning to the user...could it be that we could parse the code to provide CONTEXT to the user? yes, yes, yes, yes, yes, YES---Each individual thing has meaning if we have CONTEXT of each thing. Each and every thing we wish to document is carried out and executed by the compiler. As for additional documentation, such as you already have in abundance. If you had a truly complete general to specific dependency tree of all features, there you could ALWAYS link every reference to
Re: problems with learning lilypond
On 11/21/08 4:56 PM, John Sellers [EMAIL PROTECTED] wrote: I have no argument with what you say about the documentation compared with many kinds of technical documentation, as long as you stick close to home. The Lilypond folks work hard and do a lot of nice stuff, including documentation. However, that doesn't change the facts of what I say. The origin of the problem is that developers don't have to walk the path of the newbies from beginning to end and it is very difficult to provide a whole documentation structure that is truly responsive to those kind of needs...so most technical documentation the world over never does successfully do so. HOWEVER, MAY I POINT OUT DOING SO IS PROBABLY THE MOST PRODUCTIVE THING YOU COULD DO TO LILYPOND TO ASSURE ITS FUTURE GROWTH AND SUCCESS!. Good wishes, John Sellers John, If I didn't make it clear in my earlier post, I'll try to make it clear now. I DON'T KNOW HOW TO DO WHAT YOU ARE ASKING ME TO DO! (to the rest of you, I'm sorry about the shouting, but I felt the need to respond in a way that John seems to understand). Won't you please help us figure it out? You seem to have some good ideas. Why don't you share them in some specific way so that we can get a clue? Thanks, Carl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On Fri, Nov 21, 2008 at 11:20:23PM -0700, Carl D. Sorensen wrote: On 11/21/08 4:56 PM, John Sellers [EMAIL PROTECTED] wrote: The origin of the problem is that developers don't have to walk the path of the newbies from beginning to end and it is very difficult to provide a whole documentation structure that is truly responsive to those kind of needs...so most technical documentation the world over never does successfully do so. Given that nobody on the doc team was an original developer, we most certainly *did* walk the path of newbies. Good wishes, John Sellers If I didn't make it clear in my earlier post, I'll try to make it clear now. I DON'T KNOW HOW TO DO WHAT YOU ARE ASKING ME TO DO! Also, John, read the Learning Manual of the 2.11 docs. I can tell that you haven't. Front to back. Won't you please help us figure it out? You seem to have some good ideas. Why don't you share them in some specific way so that we can get a clue? General note for newbies: stop complaining that we don't listen to newbies and then refusing to help with the docs. If you get involved, we'll listen. Cheers, - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
I had the same problem. Then I started to develop LilyPondTool for jEdit. Using that I managed to understand LilyPond much better. Do you use LilyPondTool? See the Demos at http://lilypondtool.organum.hu Bert ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
On 20.11.2008 (09:49), [EMAIL PROTECTED] wrote: I had the same problem. Then I started to develop LilyPondTool for jEdit. Using that I managed to understand LilyPond much better. Talking of which: when will there be a new version? :) Eyolf -- You're all clear now, kid. Now blow this thing so we can all go home. -- Han Solo ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
Well, uh, I was quite busy in these weeks. And I wanted to finish a new feature but it seems that I won't have time for that. So, as there is a new JEdit version out, I must check that everything works with that. If that's ok, I'll make a release, I hope that bundling the documentation will work. Let's say 1 December on SourceForge for manual install. Bert Quoting Eyolf Østrem [EMAIL PROTECTED]: On 20.11.2008 (09:49), [EMAIL PROTECTED] wrote: I had the same problem. Then I started to develop LilyPondTool for jEdit. Using that I managed to understand LilyPond much better. Talking of which: when will there be a new version? :) Eyolf -- You're all clear now, kid. Now blow this thing so we can all go home. -- Han Solo ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
problems with learning lilypond
I am in Silicon Valley. I've never met and talked to another lilypond user face to face. It is lonely out here. I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! I'm very tired of having a few hours to do something different, going to lilypond documentation and getting something like use such and such to do so and so. fine so far. but how in God's Green Earth am I going to use something like: \paper {} If I don't know what context it works and what context it does not work? If like an idiot I go into my LY file and insert paper and put my between-system-space or anything ELSE on the same page with a lot of other variables which control things. Why don't they ALL work WHENEVER I try to use them...the answer is of course LACK OF CONTEXT. For correct context, I have to put the \paper {} in the right part of the program. I have to tie the variables to whatever they are going to effect. Or do I? I haven't a clue. Why.here we go againLACK OF CONTEXT. Here is one way you can solve this problem. NEVER DOCUMENT ANYTHING OUT OF CONTEXT except with a link that LEADS TO THE CORRECT CONTEXT. YOU HAVE TO BE SYSTEMATIC! Consider the following: Every feature must be documentedright? So are we talking about a desert of documented sand pebbles in a jar or are there relationships between them? WOW! there are DEPENDENCIES --- A dependences are B depends on C --- oops, C depends on A NOT GOOD. So what is one to do? Well, you could use a topological sort of all capability dependencies using generality as the sort discriminant. Find all the cycles and BREAK THEM. Organize things in this way so now you have a structure which has an entry point for the user for every feature. Look, dependency is just another way of say CONTEXT. If context goes in a circle then you end up defining A grumpet B and then defining B as anti-grumpet A, which is has no more meaning than being a tautology. In the best of all worlds, a user coming to the documentation WITH NO KNOWLEDGE OF LILYOND in wanting to do something like control vertical spacing, and if you linked back to more and more general contexts with clear examples and explanations in a systematic way, then at some point you would reach the context that includes the user's context, and there the user can make the connection of how to find the way to apply vertical spacing to his/her specific situation. Here is a hint. You run lilypond executable and makes those connections, so the relationships already exist and are documented in an executable form. Here is another hint. The nature of MEANING is the one to one correspondence between two different systems. So we have a system to compile which we know to be complete, and we want a system to provide meaning to the user...could it be that we could parse the code to provide CONTEXT to the user? yes, yes, yes, yes, yes, YES---Each individual thing has meaning if we have CONTEXT of each thing. Each and every thing we wish to document is carried out and executed by the compiler. As for additional documentation, such as you already have in abundance. If you had a truly complete general to specific dependency tree of all features, there you could ALWAYS link every reference to its proper place in the dependency tree. This would mean that someone reading your GDP would ALWAYS have a path back to context of the currently examined feature. Now one really slick way to do this would be hyperlink ALL compilable code in the documentation, automatically generated through a link compiler that would establish a link to point to the right place in your dependency tree (e.g. right context) for learning about the particular feature. This linked structure is nothing more than a remediation tool which all users, new and experienced could use to quickly brush up on how to use any feature in lilypond. There IS a way to do this. Really! So why not? I guarantee that when all is said and done, it is a shorter path for the user AND to YOU to provide good communication than what you are doing nowbecause once done, it can be maintained in parallel with development since it reflects the structure of compiling and therefore development. ---end of tirade-- ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
I've found the lilypond documentation to be quite good (after having been using it now for about a year). It starts with an introduction, has a friendly gentle tutorial, followed up by a detailed reference. If you're not able to use it, maybe start with a simple project. As you become more comfortable you can expand and take on more complex projects. There are plenty of example templates to get one started at the bottom of the documenation, and you'll likely end up taking the useful parts to create your own template (mine is http://www.casagrau.org/~donfede/lily/lilypond_template.ly ). happy notating, donfede On Wed, Nov 19, 2008 at 12:54:39AM -0800, John Sellers wrote: I am in Silicon Valley. I've never met and talked to another lilypond user face to face. It is lonely out here. I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! I'm very tired of having a few hours to do something different, going to lilypond documentation and getting something like use such and such to do so and so. fine so far. but how in God's Green Earth am I going to use something like: \paper {} If I don't know what context it works and what context it does not work? If like an idiot I go into my LY file and insert paper and put my between-system-space or anything ELSE on the same page with a lot of other variables which control things. Why don't they ALL work WHENEVER I try to use them...the answer is of course LACK OF CONTEXT. For correct context, I have to put the \paper {} in the right part of the program. I have to tie the variables to whatever they are going to effect. Or do I? I haven't a clue. Why.here we go againLACK OF CONTEXT. Here is one way you can solve this problem. NEVER DOCUMENT ANYTHING OUT OF CONTEXT except with a link that LEADS TO THE CORRECT CONTEXT. YOU HAVE TO BE SYSTEMATIC! Consider the following: Every feature must be documentedright? So are we talking about a desert of documented sand pebbles in a jar or are there relationships between them? WOW! there are DEPENDENCIES --- A dependences are B depends on C --- oops, C depends on A NOT GOOD. So what is one to do? Well, you could use a topological sort of all capability dependencies using generality as the sort discriminant. Find all the cycles and BREAK THEM. Organize things in this way so now you have a structure which has an entry point for the user for every feature. Look, dependency is just another way of say CONTEXT. If context goes in a circle then you end up defining A grumpet B and then defining B as anti-grumpet A, which is has no more meaning than being a tautology. In the best of all worlds, a user coming to the documentation WITH NO KNOWLEDGE OF LILYOND in wanting to do something like control vertical spacing, and if you linked back to more and more general contexts with clear examples and explanations in a systematic way, then at some point you would reach the context that includes the user's context, and there the user can make the connection of how to find the way to apply vertical spacing to his/her specific situation. Here is a hint. You run lilypond executable and makes those connections, so the relationships already exist and are documented in an executable form. Here is another hint. The nature of MEANING is the one to one correspondence between two different systems. So we have a system to compile which we know to be complete, and we want a system to provide meaning to the user...could it be that we could parse the code to provide CONTEXT to the user? yes, yes, yes, yes, yes, YES---Each individual thing has meaning if we have CONTEXT of each thing. Each and every thing we wish to document is carried out and executed by the compiler. As for additional documentation, such as you already have in abundance. If you had a truly complete general to specific dependency tree of all features, there you could ALWAYS link every reference to its proper place in the dependency tree. This would mean that someone reading your GDP would ALWAYS have a path back to context of the currently examined feature. Now one really slick way to do this would be hyperlink ALL compilable code in the documentation, automatically generated through a link compiler that would establish a link to point to the right place in your dependency tree (e.g. right context) for learning about the particular feature. This linked structure is nothing more than a remediation tool which all users, new and experienced could use to quickly brush up on how to use any feature in lilypond. There IS a way to do this. Really! So why not? I guarantee that when all is said
Re: problems with learning lilypond
On 11/19/08 1:54 AM, John Sellers [EMAIL PROTECTED] wrote: I am in Silicon Valley. I've never met and talked to another lilypond user face to face. It is lonely out here. I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! I think that those who have used lilypond off and on for a few years are actually at a disadvantage, because they (including me until late last year) never bothered to read the Learning Manual. The Learning Manual is an excellent resource to give the context that was missing in my previous attempts. There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! I'm very tired of having a few hours to do something different, going to lilypond documentation and getting something like use such and such to do so and so. fine so far. but how in God's Green Earth am I going to use something like: \paper {} Have you tried the 2.11 documentation? I find it to be a dramatic improvement over the 2.10 documentation. You really should try it. Since I started using the 2.11 documentation I have been able to everything I have tried to do. (This wasn't the case previously). If I don't know what context it works and what context it does not work? If like an idiot I go into my LY file and insert paper and put my between-system-space or anything ELSE on the same page with a lot of other variables which control things. Why don't they ALL work WHENEVER I try to use them...the answer is of course LACK OF CONTEXT. For correct context, I have to put the \paper {} in the right part of the program. I have to tie the variables to whatever they are going to effect. Or do I? I haven't a clue. Why.here we go againLACK OF CONTEXT. This specific question (about where the \paper{} block goes) is now covered nicely in the documentation. See Notation Reference 3.1.3. File structure. However **NOTE TO DOCUMENTATION TEAM** that section of the manual should probably include both a \paper{} and a \midi{} in an example. Here is one way you can solve this problem. NEVER DOCUMENT ANYTHING OUT OF CONTEXT except with a link that LEADS TO THE CORRECT CONTEXT. YOU HAVE TO BE SYSTEMATIC! Consider the following: Every feature must be documentedright? So are we talking about a desert of documented sand pebbles in a jar or are there relationships between them? WOW! there are DEPENDENCIES --- A dependences are B depends on C --- oops, C depends on A NOT GOOD. So what is one to do? Well, you could use a topological sort of all capability dependencies using generality as the sort discriminant. Find all the cycles and BREAK THEM. Organize things in this way so now you have a structure which has an entry point for the user for every feature. Look, dependency is just another way of say CONTEXT. If context goes in a circle then you end up defining A grumpet B and then defining B as anti-grumpet A, which is has no more meaning than being a tautology. You would be doing a great service to LilyPond by identifying the cycles you find in the documentation. Even better, you could propose alternate wording or alternate organization. The best place to make such recommendations is on the -devel list, rather than on the -user list. I have personally found the LilyPond development team to be very receptive to specific suggestions for change and not very responsive to rants that just say you're doing it all wrong. If you have a better idea, share it and it's likely to get implemented. In the best of all worlds, a user coming to the documentation WITH NO KNOWLEDGE OF LILYOND in wanting to do something like control vertical spacing, and if you linked back to more and more general contexts with clear examples and explanations in a systematic way, then at some point you would reach the context that includes the user's context, and there the user can make the connection of how to find the way to apply vertical spacing to his/her specific situation. A simple example of your proposal would greatly strengthen your argument, because you would have to wrestle with the specifics of what you mean. It's easy to make broad generalizations, and much more difficult to make specific suggestions for improvement. Perhaps you could either make such an example, or provide us with the path you tried in the 2.11 documentation only to be stymied by the lack of context. Here is a hint. You run lilypond executable and makes those connections, so the relationships already exist and are documented in an executable form. Here is another hint. The nature of MEANING is the one to one correspondence between two different systems. So we have a system to compile which we know to be complete, and we want a system to provide meaning to the user...could it be that we could parse the code to
RE: problems with learning lilypond
I don't know how applicable this is since everyone is different, but my tack was to start small, then work up. I can't honestly say that I'm expert or even very good at using LP, but it is allowing me to score out my ideas and create some decent sounding demos of my songs. I started scoring out a bass solo I wrote as a kid, then I discovered how to add a drum part and made a midi file...soon I was finding all sorts of things out how make my scores look better. But I know I'm not nearly exploiting what this program can do...I've only recently begun to try and add dynamic marks, and as a composer (using the term loosely) I still struggle to understand how exactly to score out what I do on the piano...but using LP has made a far better arranger. Being in Silicon Valley I can only presume that the OP is computer savvy, and sometimes that might be a bit of a barrier. Maybe you have to try and remember the first halting steps you made programming and how difficult it was to get help from the help files. I know for myself I can look at the LP documentation now and get more out of it quicker than I could in the beginning days of my experience (not quite 3 years now). Of course hindsight and experience tend to make vision far better than 20/20... And I also have never met another LP user face to face. Most people who might have any inkling of using a computer to score music are lost when I describe it. Heck, most people who play instruments these days can't even read standard notation, and many musicians who can read music are not strong enough with their computer skills to use a system like this. Again, I'm not sure what help this might be, but maybe I can add a little perspective... _ Windows Live Hotmail now works up to 70% faster. http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_faster_112008___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: problems with learning lilypond
ke, 2008-11-19 kello 00:54 -0800, John Sellers kirjoitti: [...] I've used lilypond off and on for a few years AND HAVE NEVER BEEN ABLE TO REALLY LEARN IT WELL! There are five reasons 1) lack of context 2) lack of context 3) lack of context 4) lack of context 5) lack of context 6) NOTHING HAS MEANING WITHOUT CONTEXT --- EVER! [...] This is exactly what has frustrated me so many times - thanks for putting it into words so elegantly ;-) 2.11 documentation makes a large step into right direction in this respect (I whish I was told earlier to use 2.11 instead of 2.10), and I hope the documenters will have the patience to cover the contexts even more widely in the future versions. I must add that in my eyes the Lilypond documentation (especially 2.11) is generally exellent, and you can really see that those who are doing it want to get it right in every way. Unfortunately I can't say much about your idea on depencies, as I'm not a developer. Cheers, Ari Torhamo ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user