Re: Contexts (Was Re: Set vs. Override - I'm confused)
On Thursday 04 May 2006 06:21, Arjan Bos wrote: > Erik, > > That's a great document! I've read about half of it now and it does a > very good job to explain to me how LilyPond works. And seeing the > date on the title page, I think I have to congratulate you on your > Masters Degree! Well Done! Thanks! > Off topic, but are your music streams implemented in the current 2.9 > branch? Working on it. > From a structural point of view, it looks like a cleaner way > of doing things. You might even add the syllables of lyrics to the > music stream and do away with the current implementation. The implementation of lyricsto is one of the things that msuic streams happen to clean up; however, large parts of the current implementation are kept unchanged. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contexts (Was Re: Set vs. Override - I'm confused)
Erik, That's a great document! I've read about half of it now and it does a very good job to explain to me how LilyPond works. And seeing the date on the title page, I think I have to congratulate you on your Masters Degree! Well Done! Off topic, but are your music streams implemented in the current 2.9 branch? From a structural point of view, it looks like a cleaner way of doing things. You might even add the syllables of lyrics to the music stream and do away with the current implementation. (Obviously, I've never looked hard at the lily source code, but as a data modeller, I like to see nice structured designs) Congrats, Arjan On 27 apr 2006, at 13:58, Erik Sandberg wrote: Citerar Tomas Valusek <[EMAIL PROTECTED]>: Hello, When I first read the manual I didn't see any clear explanation of the difference, the docs could be more clear on that point. But when I realized that one was for grobs and the other for context, it became much clearer, for me it helps separating and understanding grobs and contexts. Context - another topic of my interest. It seems to me I haven't understood them fully yet. I generally know what they are for, but the role of them is not fully clear to me. You can read my master thesis if you like, it tries to explain the context concept (the appendix "music streams for the impatient" might be a good choice if you're in a hurry) http://home.student.uu.se/ersa9195/report.pdf BTW: Graham, feel free to incorporate anything you like from the report into the manual. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user --- The shortest unit of time in the universe is the New York Second, defined as the period of time between the traffic lights turning green and the cab behind you honking. -- (Terry Pratchett, Lords and Ladies) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
Quoting Michael Brennan <[EMAIL PROTECTED]>: My simple understanding of it is that: \set sets a property for the whole context, and the objects contained in that context while \override is for a particular graphical object. Just a little explanation like that, that separates them would be good to have in the docs, or better yet, Eric's more thorough explanation below. I'm afraid a simplified explanation like that might give the impression that the same properties can be set both for the context and for a particular graphical object, which of course is completely wrong. Also, \override by default sets a property for a particular type of object within the current context, so the concept of contexts is important also for \override. What is a \tweak? I can't recall reading about it in the manual. You say that you can modify the fontsize of a single notehead with \tweak. Would that give any difference than using a \once \override NoteHead #'font-size = size See the NEWS in the documentation for version 2.8. The information from the NEWS file is in the process of being incorporated into the manual. /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
Erik Sandberg wrote: Great! You now officially know more about this area than me, because I don't have a clue when to use \override or \set. Please take a few minutes to send me some clarifications or additions for the manual: http://lilypond.org/web/devel/participating/documentation-adding My simple understanding of it is that: \set sets a property for the whole context, and the objects contained in that context while \override is for a particular graphical object. Just a little explanation like that, that separates them would be good to have in the docs, or better yet, Eric's more thorough explanation below. Hm. Here's my understanding of it: You can say it's all about the granularity of the setting. \override manipulates settings which are specific to one graphical object/grob (e.g. a NoteHead). \set changes settings on a higher level, and can modify more than one type of grob. For example, fontSize is a context property (modified with \set) because it changes the behaviour of several different types of grobs (e.g., noteheads and rests). You can also change the fontsize of all noteheads only, by overriding a grob property of NoteHead grobs only. Or you can modify the fontsize of a single notehead using \tweak. You can notice that \set and \override use different syntaxes: \set ctx.prop = val \override ctx Grob.prop = val Rule of thumb is: If you can figure out a type of Grob that the tweak is specific to, then it's probably an \override. This rule requires a rough knowledge of which grob types that exist. The only way I know to get this knowledge is by reading the internals reference. Erik What is a \tweak? I can't recall reading about it in the manual. You say that you can modify the fontsize of a single notehead with \tweak. Would that give any difference than using a \once \override NoteHead #'font-size = size ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
"grob" is just a silly abbreviation for graphical object. On one hand, David is absolutely right that far too much of the implementation structure is visible in the user interface. On the other hand, unless the current approach to do settings in LilyPond is revised completely, each user who wants to do some changes to the default layout has to learn that properties are organized around the concept of graphical objects. /Mats Quoting David Feuer <[EMAIL PROTECTED]>: On 4/27/06, Rick Hansen (aka RickH) <[EMAIL PROTECTED]> wrote: Whats a grob? I agree. The user absolutely should not have to know that there is any such thing. David ___ 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: Set vs. Override - I'm confused
> Hm. Here's my understanding of it: > > You can say it's all about the granularity of the setting. \override > manipulates > settings which are specific to one graphical object/grob (e.g. a NoteHead). > \set > changes settings on a higher level, and can modify more than one type of > grob. There is at least one other distinction -- since context properties take effect during the interpretation step, they can affect which grobs are created. \set tupletSpannerDuration, for example couldn't be a grob property because it doesn't change the grobs. Instead it tells the engraver how many grobs to create and where. Joe ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
On 4/27/06, Rick Hansen (aka RickH) <[EMAIL PROTECTED]> wrote: > > Whats a grob? I agree. The user absolutely should not have to know that there is any such thing. David ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
Whats a grob? -- View this message in context: http://www.nabble.com/Set-vs.-Override---I%27m-confused-t1433228.html#a4124826 Sent from the Gnu - Lilypond - User forum at Nabble.com. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
Citerar Graham Percival <[EMAIL PROTECTED]>: > > On 26-Apr-06, at 10:36 PM, Michael Brennan wrote: > > > David Feuer wrote: > >> On 4/19/06, Erik Sandberg <[EMAIL PROTECTED]> wrote: > >>> In 2.8 there's an essential difference between grob and context > >>> properties, > >>> which is visible for end-users: the \tweak command only makes sense > >>> on layout > >>> object properties, not on context properties. This difference might > >>> make it > >>> easier for new users to understand grob properties. > >> > > Actually it helps me, as a new user. > > When I first read the manual I didn't see any clear explanation of the > > difference, > > the docs could be more clear on that point. But when I realized that > > one was for grobs > > and the other for context, it became much clearer, for me it helps > > separating and understanding > > grobs and contexts. > > Great! You now officially know more about this area than me, because I > don't have a clue when to use \override or \set. Please take a few > minutes to send me some clarifications or additions for the manual: > http://lilypond.org/web/devel/participating/documentation-adding Hm. Here's my understanding of it: You can say it's all about the granularity of the setting. \override manipulates settings which are specific to one graphical object/grob (e.g. a NoteHead). \set changes settings on a higher level, and can modify more than one type of grob. For example, fontSize is a context property (modified with \set) because it changes the behaviour of several different types of grobs (e.g., noteheads and rests). You can also change the fontsize of all noteheads only, by overriding a grob property of NoteHead grobs only. Or you can modify the fontsize of a single notehead using \tweak. You can notice that \set and \override use different syntaxes: \set ctx.prop = val \override ctx Grob.prop = val Rule of thumb is: If you can figure out a type of Grob that the tweak is specific to, then it's probably an \override. This rule requires a rough knowledge of which grob types that exist. The only way I know to get this knowledge is by reading the internals reference. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contexts (Was Re: Set vs. Override - I'm confused)
Citerar Tomas Valusek <[EMAIL PROTECTED]>: > Hello, > > > When I first read the manual I didn't see any clear explanation of the > > difference, > > the docs could be more clear on that point. But when I realized that one > > was for grobs > > and the other for context, it became much clearer, for me it helps > > separating and understanding > > grobs and contexts. > > > Context - another topic of my interest. It seems to me I haven't > understood them fully yet. I generally know what they are for, but the > role of them is not fully clear to me. You can read my master thesis if you like, it tries to explain the context concept (the appendix "music streams for the impatient" might be a good choice if you're in a hurry) http://home.student.uu.se/ersa9195/report.pdf BTW: Graham, feel free to incorporate anything you like from the report into the manual. Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contexts (Was Re: Set vs. Override - I'm confused)
On 27-Apr-06, at 2:20 AM, Mats Bengtsson wrote: For some time, I have been thinking about adding an introductory text to the Changing Defaults chapter, which introduces all the main methods to set context and grob properties with one example for each and links to the more detailed sections. Wait until I've finished the doc reorg (probably next week). - Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contexts (Was Re: Set vs. Override - I'm confused)
For some time, I have been thinking about adding an introductory text to the Changing Defaults chapter, which introduces all the main methods to set context and grob properties with one example for each and links to the more detailed sections. This would be something along the lines of http://lists.gnu.org/archive/html/lilypond-user/2003-10/msg00195.html (which of course is outdated now). My idea was that this should be placed as an introductory section of the Changing Defaults chapter and I think that there is place for some similar introductions also in other parts of the reference manual. For example, we could have a short introduction summarizing text scripts, text marks and markup. Now there is one section on each and it's really hard to get the whole picture. Of course, an alternative is to add these introductory texts in the tutorial, but then many people who think that they have passed the tutorial stage will never find it. The target group here is not the beginner but the somewhat experienced user (as most of us are). /Mats Ralph Little wrote: Hi, I too find the context/grob property distinction not clear and I did not find the online doc any help in getting through this barrier of understanding. It is the one most powerful aspect of Lilypond, but the one aspect which is treated the most meanly in the introductory docs. Even user doing basic stuff need to get into settings and stuff when changing default behaviour so I think it should be touched on earlier in the documentation. If the tutorial could be "beefed up" somewhat in this area, I think there would be far fewer questions regarding how to find tweaks and settings through the advanced doc, given that users would be armed with this important information beforehand. Wish I had the time to do it myself but sadly I do not :( Good luck to whoever gets the job ;) Regards, Ralph TRIBAL TECHNOLOGY IS A MEMBER OF THE TRIBAL GROUP plc www.tribalgroup.co.uk This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. Access, copying, dissemination or re-use of information in it by anyone else is unauthorised. If you have received this message in error, please contact the sender as soon as possible. This message has been scanned for viruses by Viatel MailControl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user -- = Mats Bengtsson Signal Processing Signals, Sensors and Systems Royal Institute of Technology SE-100 44 STOCKHOLM Sweden Phone: (+46) 8 790 8463 Fax: (+46) 8 790 7260 Email: [EMAIL PROTECTED] WWW: http://www.s3.kth.se/~mabe = ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Contexts (Was Re: Set vs. Override - I'm confused)
Hi, I too find the context/grob property distinction not clear and I did not find the online doc any help in getting through this barrier of understanding. It is the one most powerful aspect of Lilypond, but the one aspect which is treated the most meanly in the introductory docs. Even user doing basic stuff need to get into settings and stuff when changing default behaviour so I think it should be touched on earlier in the documentation. If the tutorial could be "beefed up" somewhat in this area, I think there would be far fewer questions regarding how to find tweaks and settings through the advanced doc, given that users would be armed with this important information beforehand. Wish I had the time to do it myself but sadly I do not :( Good luck to whoever gets the job ;) Regards, Ralph TRIBAL TECHNOLOGY IS A MEMBER OF THE TRIBAL GROUP plc www.tribalgroup.co.uk This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. Access, copying, dissemination or re-use of information in it by anyone else is unauthorised. If you have received this message in error, please contact the sender as soon as possible. This message has been scanned for viruses by Viatel MailControl ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
On 26-Apr-06, at 10:36 PM, Michael Brennan wrote: David Feuer wrote: On 4/19/06, Erik Sandberg <[EMAIL PROTECTED]> wrote: In 2.8 there's an essential difference between grob and context properties, which is visible for end-users: the \tweak command only makes sense on layout object properties, not on context properties. This difference might make it easier for new users to understand grob properties. Actually it helps me, as a new user. When I first read the manual I didn't see any clear explanation of the difference, the docs could be more clear on that point. But when I realized that one was for grobs and the other for context, it became much clearer, for me it helps separating and understanding grobs and contexts. Great! You now officially know more about this area than me, because I don't have a clue when to use \override or \set. Please take a few minutes to send me some clarifications or additions for the manual: http://lilypond.org/web/devel/participating/documentation-adding Cheers, - Graham Percival, LilyPond Documentation Editor ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Contexts (Was Re: Set vs. Override - I'm confused)
Hello, When I first read the manual I didn't see any clear explanation of the difference, the docs could be more clear on that point. But when I realized that one was for grobs and the other for context, it became much clearer, for me it helps separating and understanding grobs and contexts. Context - another topic of my interest. It seems to me I haven't understood them fully yet. I generally know what they are for, but the role of them is not fully clear to me. Tomas Valusek ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
> [...] when I realized that one was for grobs and the other for > context, it became much clearer, for me it helps separating and > understanding grobs and contexts. A big help would be a simple means to distinguish grobs and context properties. For example, context property names could always start with `c-', whereas grob properties don't have this prefix. Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
David Feuer wrote: On 4/19/06, Erik Sandberg <[EMAIL PROTECTED]> wrote: In 2.8 there's an essential difference between grob and context properties, which is visible for end-users: the \tweak command only makes sense on layout object properties, not on context properties. This difference might make it easier for new users to understand grob properties. Might, but doesn't. David Actually it helps me, as a new user. When I first read the manual I didn't see any clear explanation of the difference, the docs could be more clear on that point. But when I realized that one was for grobs and the other for context, it became much clearer, for me it helps separating and understanding grobs and contexts. /Michael ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
> > In 2.8 there's an essential difference between grob and context properties, > > which is visible for end-users: the \tweak command only makes sense on > > layout > > object properties, not on context properties. This difference might make it > > easier for new users to understand grob properties. > > Might, but doesn't. I have to agree. It seems an arbitrary distinction. Geoff ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
> > In 2.8 there's an essential difference between grob and context > > properties, which is visible for end-users: the \tweak command > > only makes sense on layout object properties, not on context > > properties. This difference might make it easier for new users to > > understand grob properties. > > Might, but doesn't. Hehe, I second this. Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
On 4/19/06, Erik Sandberg <[EMAIL PROTECTED]> wrote: > In 2.8 there's an essential difference between grob and context properties, > which is visible for end-users: the \tweak command only makes sense on layout > object properties, not on context properties. This difference might make it > easier for new users to understand grob properties. Might, but doesn't. David ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
On Tuesday 11 April 2006 23:56, Werner LEMBERG wrote: > > \set: set the value of a context property > > \override: set the value of a layout object property > > I've always wondered why it isn't possible to unify them... In 2.8 there's an essential difference between grob and context properties, which is visible for end-users: the \tweak command only makes sense on layout object properties, not on context properties. This difference might make it easier for new users to understand grob properties. -- Erik ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
Werner LEMBERG writes: >> \set: set the value of a context property >> \override: set the value of a layout object property > > I've always wondered why it isn't possible to unify them... Or until that time have explicit naming. Jan. -- Jan Nieuwenhuizen <[EMAIL PROTECTED]> | GNU LilyPond - The music typesetter http://www.xs4all.nl/~jantien | http://www.lilypond.org ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
> \set: set the value of a context property > \override: set the value of a layout object property I've always wondered why it isn't possible to unify them... Werner ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
Quoting Geoff Horton <[EMAIL PROTECTED]>: The followup question is obvious, but I leave it to you to think about it and see if you get any further. I've been wondering for some time if the distinction is a helpful one, but I suspect changing it now would involve too much internal tinkering, not to mention breaking of old scores. Geoff Actually, it used to be the same command for setting both types of properties, which did cause quite some confusion. However, the distinction between the two kinds of properties is often fairly arbitrary and many properties that earlier were context properties have now been converted to object properties (and probably the other way around as well). /Mats ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
> The followup question is obvious, but I leave it to you to think about it > and see if you get any further. I've been wondering for some time if the distinction is a helpful one, but I suspect changing it now would involve too much internal tinkering, not to mention breaking of old scores. Geoff ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Set vs. Override - I'm confused
\set: set the value of a context property \override: set the value of a layout object property The followup question is obvious, but I leave it to you to think about it and see if you get any further. /Mats Tomas Valusek wrote: Hello, I've read thoroughly LilyPond's Users Manual and I don't understand what's the difference between \set and \override commands. Can someone explain me this? Thank you. Tomas Valusek ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user -- = Mats Bengtsson Signal Processing Signals, Sensors and Systems Royal Institute of Technology SE-100 44 STOCKHOLM Sweden Phone: (+46) 8 790 8463 Fax: (+46) 8 790 7260 Email: [EMAIL PROTECTED] WWW: http://www.s3.kth.se/~mabe = ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Set vs. Override - I'm confused
Hello, I've read thoroughly LilyPond's Users Manual and I don't understand what's the difference between \set and \override commands. Can someone explain me this? Thank you. Tomas Valusek ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user