|
|
Created:
8 years, 12 months ago by Keith Modified:
8 years, 11 months ago Reviewers:
paul, dak, pls, c_sorensen, Dan Eble, dan, lemzwerg, Trevor Daniels, wl, valentin, pwm, pacovila, simon.albrecht CC:
lilypond-devel_gnu.org Visibility:
Public. |
Descriptionabsolute pitch entry: accept an offset octave; issue 4366
Patch Set 1 #
Total comments: 1
Patch Set 2 : take a starting pitch, use only its octave #
Total comments: 1
Patch Set 3 : idempotency #
Total comments: 1
Patch Set 4 : alphabetize #Patch Set 5 : allow fixed to apply to \chordmode #Patch Set 6 : leave the tutorial alone #
Total comments: 7
Patch Set 7 : require a reference pitch for \fixed c {} #
MessagesTotal messages: 55
https://codereview.appspot.com/235010043/diff/1/ly/music-functions-init.ly File ly/music-functions-init.ly (right): https://codereview.appspot.com/235010043/diff/1/ly/music-functions-init.ly#ne... ly/music-functions-init.ly:36: ((integer?) ly:music?) Why use a number here instead of a pitch? Just \absolute could be \absolute c, and I see no particular problem with having \absolute f { c d e f } be the same as \absolute { f g a bes }. If you find that too cute, one can just document the cases with note name c.
Sign in to reply to this message.
On 2015/05/03 06:28:43, dak wrote: > https://codereview.appspot.com/235010043/diff/1/ly/music-functions-init.ly > File ly/music-functions-init.ly (right): > > https://codereview.appspot.com/235010043/diff/1/ly/music-functions-init.ly#ne... > ly/music-functions-init.ly:36: ((integer?) ly:music?) > Why use a number here instead of a pitch? > > Just \absolute could be \absolute c, and I see no particular problem with having > \absolute f { c d e f } be the same as > \absolute { f g a bes }. If you find that too cute, one can just document the > cases with note name c. Just "\absolute" could be "\absolute c", ... I was not proposing to use "c," as reference, that would be weird.
Sign in to reply to this message.
Nice! However, I second David's concern: Please use \absolute <pitch> instead of \absolute <number>
Sign in to reply to this message.
I'm in favour of a change like this, but I'd prefer the syntax and options to parallel those of \relative. That is, an optional prefix pitch to indicate the starting octave, and taking the starting octave from the first contained note if the prefix is omitted. That would then become an attractive alternative to \relative.
Sign in to reply to this message.
On 2015/05/03 08:20:03, Trevor Daniels wrote: > I'm in favour of a change like this, but I'd prefer > the syntax and options to parallel those of > \relative. That is, an optional prefix pitch to indicate > the starting octave, and taking the starting octave from > the first contained note if the prefix is omitted. That > would then become an attractive alternative to \relative. It would seem that our proposals are on one page regarding \absolute c'' { c ... However, I _think_ that your comment would suggest \absolute f'' { f ... to be the same as \absolute { f'' ... whereas I suggested making \absolute f'' { f ... the same as \absolute { bes'' ... Now there _is_ a difference between \relative c and \relative f. With what I guess from your proposal, \absolute c and \absolute f would be the same. And so would be \absolute b. Now I actually like the idea of using \absolute bes' for entering a trumpet in audible pitch using an input scale of { c d e f g ... }. That's a concept different from \transpose c' bes' { ... } or \transpose c bes' which primarily suggest a connection between _printed_ pitch and audible pitch (like \transposition does) rather than _input_ pitch and printed pitch. I do realize that \relative only ever touches the octave, and it seems to make little sense to have \absolute f turn { c, d, e, f g a b c d e f' ... } into one continous scale even though it would only touch the octave (like relative) and allow using as few octave marks as possible for a given tessitura. But while that would also be a consistent possibility, I don't think having e be a higher pitch than f is going to win us a lot of sympathies. I prefer the transposing interpretation.
Sign in to reply to this message.
If people don't like numbers (I'm with you) are there any other feasible ways to indicate an octave only? Maybe bare ''' and ,,,? Maybe with an unpitched name? \absolute '' { a b c } \absolute s'' { a b c }
Sign in to reply to this message.
On 2015/05/03 13:23:15, Dan Eble wrote: > If people don't like numbers (I'm with you) are there any other feasible ways to > indicate an octave only? Maybe bare ''' and ,,,? Maybe with an unpitched name? > > \absolute '' { a b c } > \absolute s'' { a b c } I was thinking along the same lines. It's simpler for users if they can indicate the (absolute) octave using ' and , in the way the always do. It would be easy to see that the following would be the same: \absolute '' { a b c } \absolute s'' { a b c } \absolute { a'' b'' c'' }
Sign in to reply to this message.
On 2015/05/03 09:02:51, dak wrote: > However, I _think_ that your comment would suggest \absolute f'' { f ... to be > the same > as \absolute { f'' ... Correct > whereas I suggested making \absolute f'' { f ... the same > as \absolute { bes'' ... > Now there _is_ a difference between \relative c and \relative f. With what I > guess from your proposal, \absolute c and \absolute f would be the same. And so > would be \absolute b. Yes, in Keith's and my model \relative sets a starting pitch, \absolute would set a starting octave only, and pitches thereafter are relative to the octave of the previous note. So the input notes are always in a clearly defined octave. Perhaps a better name for this mode of entry would be \relativeOctave. I'll use this later to be clear what I mean. > Now I actually like the idea of using \absolute bes' for entering a trumpet in > audible pitch using an input scale of { c d e f g ... }. That's a concept > different from \transpose c' bes' { ... } or \transpose c bes' which primarily > suggest a connection between _printed_ pitch and audible pitch (like > \transposition does) rather than _input_ pitch and printed pitch. A nice idea (your original suggestion was too cute indeed to register as meaning this to my old brain ;) But it does rather muddy the concept of an absolute pitch, which is enshrined in >10 years of manuals. > I do realize that \relative only ever touches the octave, and it seems to make > little sense to have \absolute f turn { c, d, e, f g a b c d e f' ... } into one > continous scale even though it would only touch the octave (like relative) and > allow using as few octave marks as possible for a given tessitura. No, a continuous scale would be \relativeOctave { c, d e f g a b c' d e f ... }. The c' resets the octave. This doesn't work so well for a melody oscillating a tone or two above and below a c, of course, but it does avoid multiple ''' and ,,,. > But while > that would also be a consistent possibility, I don't think having e be a higher > pitch than f is going to win us a lot of sympathies. No, e would never be higher than f in \relativeOctave. > I prefer the transposing interpretation. I wouldn't oppose it. Indeed, the two possibilities could exist together, depending on the presence or absence of a prefix pitch. \absolute bes' { ... } transposes the input; \absolute { ... } works like \relativeOctave. Just some thoughts. We need some other views I think. Trevor
Sign in to reply to this message.
On 2015/05/03 16:27:58, pwm wrote: > On 2015/05/03 13:23:15, Dan Eble wrote: > > If people don't like numbers (I'm with you) are there any other feasible ways > to > > indicate an octave only? Maybe bare ''' and ,,,? Maybe with an unpitched > name? > > > > \absolute '' { a b c } > > \absolute s'' { a b c } > > I was thinking along the same lines. It's simpler for users if they can > indicate the (absolute) octave using ' and , in the way the always do. It would > be easy to see that the following would be the same: > > \absolute '' { a b c } > \absolute s'' { a b c } > \absolute { a'' b'' c'' } There is no such thing as '' or s'' as a recognizable element in LilyPond's syntax and there is not even a tangible representation of it in Scheme. I don't think that such a feature warrants both messing with the parser as well as introducing new Scheme entities. So at least for me, those proposals are non-starters.
Sign in to reply to this message.
On 2015/05/03 16:42:02, Trevor Daniels wrote: > Yes, in Keith's and my model \relative sets a starting pitch, \absolute would > set a starting octave only, and pitches thereafter are relative to the octave of > the previous note. That's not really "absolute". It's a different mode of relative. I very much doubt that this was Keith's proposal unless he corroborates that. And then I'll suspect someone is impersonating him. > So the input notes are always in a clearly defined octave. > Perhaps a better name for this mode of entry would be \relativeOctave. This would be as complex to implement as the normal \relative. I have my reservations about how useful people would find this in practice. > > Now I actually like the idea of using \absolute bes' for entering a trumpet in > > audible pitch using an input scale of { c d e f g ... }. That's a concept > > different from \transpose c' bes' { ... } or \transpose c bes' which primarily > > suggest a connection between _printed_ pitch and audible pitch (like > > \transposition does) rather than _input_ pitch and printed pitch. > > A nice idea (your original suggestion was too cute indeed to register as meaning > this to my old brain ;) But it does rather muddy the concept of an absolute > pitch, which is enshrined in >10 years of manuals. Well, the whole point of giving \absolute an argument was to modify the interpretation of "absolute" and thus is all about muddying it. This is more about choosing the right balance between mud and convenience. I find it awkward when \absolute c'' and \absolute g'' mean exactly the same thing. But it's not like I could not live with it. But I still would recommend just using c to keep one's options for possible later changes. And not have too much choice without associated meaningful difference. > > I do realize that \relative only ever touches the octave, and it seems to make > > little sense to have \absolute f turn { c, d, e, f g a b c d e f' ... } into > one > > continous scale even though it would only touch the octave (like relative) and > > allow using as few octave marks as possible for a given tessitura. > > No, a continuous scale would be \relativeOctave { c, d e f g a b c' d e f ... }. > The c' resets the octave. This doesn't work so well for a melody oscillating a > tone or two above and below a c, of course, but it does avoid multiple ''' and > ,,,. Again: I don't think that this was Keith's proposal. And I am pretty sure that none of my suggestions was Keith's proposal either: I just angle for something useful to do with \absolute f. > I wouldn't oppose it. Indeed, the two possibilities could exist together, > depending on the presence or absence of a prefix pitch. \absolute bes' { ... } > transposes the input; \absolute { ... } works like \relativeOctave. Uh, we _have_ \absolute { ... } already. And it does not work anything like the \relativeOctave you describe and it would be a really bad idea to change that. \absolute x' { ... } should be a variation or parameterization on what \absolute { ... } does. Just like with \relative. > Just some thoughts. We need some other views I think. Well yeah. This is more or less in brainstorming phase. I think Keith has a point that people generally don't cherish using \transpose just for making octave entry easier. More often than not, it is used in the context of some actually transposing instrument. Maybe making \absolute transpose anything but octaves makes it scary again. But if we only document it in relation to c, nobody needs to know. This indeed warrants some more opinions. Anybody want to ask on the user list?
Sign in to reply to this message.
On 2015/05/03 20:25:22, dak wrote: > Again: I don't think that this was Keith's proposal. And I am pretty sure that > none of my suggestions was Keith's proposal either: I just angle for something > useful to do with \absolute f. It wasn't Keith's proposal, you're right, I rather ran on ahead. Keith's suggestion was to add a simple single octave offset. Maybe just this is the right thing to do after all. It's easy, effective, simple, non-scary, and maximises benefit/effort. I'm not too keen on creating Easter eggs - I've spent a fair fraction of the last several years documenting things previously hidden so ordinary users could benefit too.
Sign in to reply to this message.
On 2015/05/03 20:04:28, dak wrote: > > There is no such thing as '' or s'' as a recognizable element in LilyPond's > syntax and there is not even a tangible representation of it in Scheme. I don't > think that such a feature warrants both messing with the parser as well as > introducing new Scheme entities. So at least for me, those proposals are > non-starters. Good points. I was only thinking about what might be best from a user's perspective and hadn't considered feasibility. I agree that this wouldn't warrant such invasive changes. (Although, it's too bad this won't work since only the octave is relevant in Keith's patches... I haven't thought through the other proposals on the table.)
Sign in to reply to this message.
On 2015/05/03 20:25:22, dak wrote: > I still would recommend > just using c to keep one's options for possible later changes. And not have too > much choice without associated meaningful difference. This is wise.
Sign in to reply to this message.
On 2015/05/03 08:20:03, Trevor Daniels wrote: > I'd prefer the syntax and options to parallel those of > \relative. That is, an optional prefix pitch to indicate > the starting octave, and taking the starting octave from > the first contained note if the prefix is omitted. That > would then become an attractive alternative to \relative. I thought about this, but 1) \absolute { f'' g'' } is already documented to mean {f'' g''} 2) in contrast to \relative, which defines an order of the pitches anyway (order of appearance in a depth-first search of the music expression) and which needs a concept of a starting pitch so it had might as well be the first pitch, aa = \new Voice { \voiceOne r2 c''2} bb = \new Voice { \voiceTwo c,4 e g c} \new Staff \relative << \aa \bb g4 >> a goal of \absolute was to allow re-ordering of contents without changing the pitches.
Sign in to reply to this message.
On 2015/05/03 20:25:22, dak wrote: > On 2015/05/03 16:42:02, Trevor Daniels wrote: > > I find it awkward when \absolute c'' and \absolute g'' mean exactly the same > thing. But it's not like I could not live with it. But I still would recommend > just using c to keep one's options for possible later changes. And not have too > much choice without associated meaningful difference. The new patch (awkwardly) has \absolute c'' and \absolute g'' mean exactly the same thing. My reason for that was to present less of a surprise if someone used \absolute g'' {g ...} wanting to start on G5, i.e., g''. \absolute c' has no meaningful difference to \transpose c c' except being shorter, and less scary. Making it incapable of 'transposing' keeps it less scary. > This indeed warrants some more opinions. Anybody want to ask on the user list? A few times people brought up \transpose c c' {...} as a useful method of music entry, but people went on to suggest other entry methods that didn't seem to me to be any easier https://lists.gnu.org/archive/html/lilypond-user/2003-10/msg00332.html https://lists.gnu.org/archive/html/lilypond-user/2013-03/msg00494.html In a thread complaining about \relative, I suggested the \absolute 3 {} variant, also without much interest.
Sign in to reply to this message.
On 2015/05/03 16:42:02, Trevor Daniels wrote: > > a continuous scale would be \relativeOctave { c, d e f g a b c' d e f ... }. > The c' resets the octave. This doesn't work so well for a melody oscillating a > tone or two above and below a c, of course, but it does avoid multiple ''' and > ,,,. This allows an entry method that is somewhere between \relative and \absolute I tried it a little, and find that I like it better than current \relative, but not as much as \transpose c c, {\clef bass c d e f g a b c' d' e' f' ... } I always know if the next pitch I am typing is in the high- mid- or low octave of an instruments' range, but somehow cannot remember the octave of the previous pitch that I typed. (Well, I can remember the previous note while entering a scale, but not in more complicated cases.) I'm proposing \absolute c'' {} because the only complaint I hear about absolute entry is the repeated ' characters, but I don't see anyone using \transpose c c'' {} to simplify the typing.
Sign in to reply to this message.
I also favour \absolute c'' { ... } in Keith's original interpretation. However, I suggest to document somewhere that only letter `c' is supported. https://codereview.appspot.com/235010043/diff/60001/ly/music-functions-init.ly File ly/music-functions-init.ly (right): https://codereview.appspot.com/235010043/diff/60001/ly/music-functions-init.l... ly/music-functions-init.ly:38: by the nubmer of octave marks on @var{pitch}. Wrapping as s/nubmer/number/
Sign in to reply to this message.
k-ohara5a5a@oco.net writes: > On 2015/05/03 20:25:22, dak wrote: >> On 2015/05/03 16:42:02, Trevor Daniels wrote: > >> I find it awkward when \absolute c'' and \absolute g'' mean exactly > the same >> thing. But it's not like I could not live with it. But I still would > recommend >> just using c to keep one's options for possible later changes. And > not have too >> much choice without associated meaningful difference. > > The new patch (awkwardly) has \absolute c'' and \absolute g'' mean > exactly the same thing. > My reason for that was to present less of a surprise if someone used > \absolute g'' {g ...} wanting to start on G5, i.e., g''. Well, yes this seems like something people would tend to do in analogy to some \relative convention. And yes, the expectation would likely be the same as with \absolute c''. And it's not like \transpose is not around when one wants it. > A few times people brought up \transpose c c' {...} as a useful method > of music entry, but people went on to suggest other entry methods that > didn't seem to me to be any easier > https://lists.gnu.org/archive/html/lilypond-user/2003-10/msg00332.html > https://lists.gnu.org/archive/html/lilypond-user/2013-03/msg00494.html > > In a thread complaining about \relative, I suggested the \absolute 3 {} > variant, also without much interest. Well, it's always hard to raise enthusiasm for something that does not actually offer anything new (\transpose exists). The people on the mailing lists are not beginners. This kind of addition would likely get the most useful feedback from people *teaching* LilyPond. We don't have a lot of those unless you count "batch teachers", namely documentation writers.
Sign in to reply to this message.
On Mon, May 4, 2015 at 12:25 PM, <dak@gnu.org> wrote: > This kind of addition would likely get > the most useful feedback from people *teaching* LilyPond. We don't have > a lot of those unless you count "batch teachers", namely documentation > writers. Paco would be the obvious person to ask. (Hi Paco!) Speaking as someone who regularly gives LilyPond initiation seminars for adults and childrens, the hardest part is explaining to them why \relative mode is not on by default. (So, no matter how, \absolute would not come until later on, and \absolute [^c] even later.) That being said, I definitely see the value of an explicit \absolute mode and I really like what you’re proposing, but in this case we’d definitely need to strongly advise people to use \absolute only with some c pitch. You said: >> I find it awkward when \absolute c'' and \absolute g'' mean exactly >> the same thing. But it's not like I could not live with it. Well, OTOH: \relative c' { f g a b } and \relative d' { f g a b } _do_ mean the same thing. The second one will not be transposed one tone higher. \transpose as a separate command will always be the easiest thing to explain, however. (It’s also one of the simplest yet most impressive features for newcomers.) Cheers, Valentin.
Sign in to reply to this message.
Valentin Villenave <valentin@villenave.net> writes: > On Mon, May 4, 2015 at 12:25 PM, <dak@gnu.org> wrote: >> This kind of addition would likely get >> the most useful feedback from people *teaching* LilyPond. We don't have >> a lot of those unless you count "batch teachers", namely documentation >> writers. > > Paco would be the obvious person to ask. (Hi Paco!) > > Speaking as someone who regularly gives LilyPond initiation seminars > for adults and childrens, the hardest part is explaining to them why > \relative mode is not on by default. (So, no matter how, \absolute > would not come until later on, and \absolute [^c] even later.) > That being said, I definitely see the value of an explicit \absolute > mode and I really like what you’re proposing, but in this case we’d > definitely need to strongly advise people to use \absolute only with > some c pitch. > > You said: > >>> I find it awkward when \absolute c'' and \absolute g'' mean exactly >>> the same thing. But it's not like I could not live with it. > > Well, OTOH: \relative c' { f g a b } and \relative d' { f g a b } _do_ > mean the same thing. That's like the difference of an item priced at 15.3cent or 15.4cent. In a total bill, this may make a difference after rounding, or not. Which does not mean that it never makes a difference. > The second one will not be transposed one tone higher. > > \transpose as a separate command will always be the easiest thing to > explain, however. (It’s also one of the simplest yet most impressive > features for newcomers.) But it's more of a musical feature than a music entry syntax feature. So using it for music entry has a bit of a "hack" feeling. Since we've had several users with large amounts of scores under their belt express the opinion that in the long run absolute mode worked better for them, I think I like the idea of putting it on more of an equal footing. Which was the idea behind providing argument-less \absolute in commit 3615ec4b93b0229650c9f6dccc91aa1a74cb3796 Author: David Kastrup <dak@gnu.org> Date: Sun Mar 24 14:56:35 2013 +0100 Issue 3271: Provide \absolute music function to complement \relative From its documentation string: Make @var{music} absolute. This does not actually change the music itself but rather hides it from surrounding @code{\\relative} commands. which appeared in version 2.17.15. But in practice, shifting the octave will likely be a frequent simplification (even though it does have an effect on cut&paste). -- David Kastrup
Sign in to reply to this message.
On Mon, 04 May 2015 23:58:12 -0700, Valentin Villenave <valentin@villenave.net> wrote: > Speaking as someone who regularly gives LilyPond initiation seminars > for adults and children, the hardest part is explaining to them why > \relative mode is not on by default. What if they didn't have to type all those 's in absolute mode ? You might not need to explain relative mode at all. It was hard for me to remember when in \relative I needed g' to get a G5 but later in a very similar circumstance the same pitch is spelled g \relative {r2 c'4 c | g' g a a | g2 f4 f | e4 e d d | c2 g'4 g | f4 f e e | e4 d g g | f4 f e e | e4 d c c | g' g a a | g2 f4 f | e4 e d d | c2 r } \absolute c' {r2 c4 c | g g a a | g2 f4 f | e4 e d d | c2 g4 g | f4 f e e | e4 d g g | f4 f e e | e4 d c c | g g a a | g2 f4 f | e4 e d d | c2 r } If the melody crosses above and below C \relative {c''4 c e8 c g4 | g8 g16 g g8 g e'4 c | c4 c e8 c g4 | g8 g16 g g8 g c2 | c8 c c e g e c4 | g8 g' g, g' e4 c | c8 c c e g e c4 | g8 g' g, g' c,2 } then absolute mode needs a lot of octave marks, but all the pitches that sound low get consistently a low octave mark \absolute c'' {c4 c e8 c g,4 | g,8 g,16 g, g,8 g, e4 c | c4 c e8 c g,4 | g,8 g,16 g, g,8 g, c2 | c8 c c e g e c4 | g,8 g g, g e4 c | c8 c c e g e c4 | g,8 g g, g c2 }
Sign in to reply to this message.
2015-05-05 8:58 GMT+02:00 Valentin Villenave <valentin@villenave.net>: > On Mon, May 4, 2015 at 12:25 PM, <dak@gnu.org> wrote: >> This kind of addition would likely get >> the most useful feedback from people *teaching* LilyPond. We don't have >> a lot of those unless you count "batch teachers", namely documentation >> writers. > > Paco would be the obvious person to ask. (Hi Paco!) > > Speaking as someone who regularly gives LilyPond initiation seminars > for adults and childrens, the hardest part is explaining to them why > \relative mode is not on by default. Hi, yes, I'm here. Honestly you now qualify better for someone teaching LIlyPond. I had groups of twenty-something students for some years a time ago and I'd like very much to retake that duty anytime soon. From that experience I'd say that among beginners, a lot of confussion would be created from more commands that do the same with slightly different syntax and do not add anything really new. I love \relative mode because it fits perfectly with a certain kind of content. But if relative mode didn't exist, people would be much more efficcient using clever combinations of \transpose and sequential expressions. What I hate about \relative is having to check manually the correct octave of something you entered supposedly once and forever, which tends to kill the main advantage of the whole text approach: its roubstness. True robustness would mean changing the last note of an expression and never expect this changed the octave of the next whole expression. \relative is very comfortable and some students expect other aspects to be equally comfortable, like expecting an e flat in { \key c \minor c d e } just like FinaleSibelius does. Compared to that, \relative is a heaven to explain. What I find to be a heaven is the collection of pitch and rhythm tools of Frescobaldi. One can always enter the music in relative mode and convert it to absolute afterwards. Great! -- Francisco Vila. Badajoz (Spain) www.paconet.org , www.csmbadajoz.com
Sign in to reply to this message.
On 5/5/15 11:10 PM, "Keith OHara" <k-ohara5a5a@oco.net> wrote: >On Mon, 04 May 2015 23:58:12 -0700, Valentin Villenave ><valentin@villenave.net> wrote: > >> Speaking as someone who regularly gives LilyPond initiation seminars >> for adults and children, the hardest part is explaining to them why >> \relative mode is not on by default. > >What if they didn't have to type all those 's in absolute mode ? >You might not need to explain relative mode at all. > >It was hard for me to remember when in \relative I needed g' to get a G5 >but later in a very similar circumstance the same pitch is spelled g > > \relative {r2 c'4 c | g' g a a | g2 f4 f | e4 e d d | c2 g'4 g > | f4 f e e | e4 d g g | f4 f e e | e4 d c c > | g' g a a | g2 f4 f | e4 e d d | c2 r } > > \absolute c' {r2 c4 c | g g a a | g2 f4 f | e4 e d d | c2 g4 g > | f4 f e e | e4 d g g | f4 f e e | e4 d c c > | g g a a | g2 f4 f | e4 e d d | c2 r } > > >If the melody crosses above and below C > > \relative {c''4 c e8 c g4 | g8 g16 g g8 g e'4 c > | c4 c e8 c g4 | g8 g16 g g8 g c2 > | c8 c c e g e c4 | g8 g' g, g' e4 c > | c8 c c e g e c4 | g8 g' g, g' c,2 } > >then absolute mode needs a lot of octave marks, but all the pitches that >sound low get consistently a low octave mark > > \absolute c'' {c4 c e8 c g,4 | g,8 g,16 g, g,8 g, e4 c > | c4 c e8 c g,4 | g,8 g,16 g, g,8 g, c2 > | c8 c c e g e c4 | g,8 g g, g e4 c > | c8 c c e g e c4 | g,8 g g, g c2 } I've been lurking on this discussion, because I didn't have strong feelings one way or another. And now I think I finally understand the issue. In thinking about writing docs, we have absolute mode and relative mode. In absolute mode, we explicitly specify the intended octave of the pitch. In relative mode, the octave of the pitch is determined by the relationship with the previously interpreted (or parsed, I'm not exactly sure) note. The new function isn't absolute mode, because we don't specify the octave of the pitch. Instead, it's relative mode, but relative to a fixed pitch. So I think it shouldn't be called absolute, but rather something like \relative-fixed. If we wanted to be more explicit, we might consider changing \relative to \relative-sequential, defining this new function as \relative-fixed, and still keeping absolute as a mode if we aren't using one of the relative modes. In the context of the music I engrave, I think that \relative-fixed is much better than \relative(-sequential). I also think that it would resolve most of the cut and paste issues that Kieren has identified, because the music can easily be pasted anywhere with the only requirement being that the fixed baseline pitch must be written. So, I think I'm in favor of the proposal, but with a name change away from \absolute. Thanks, Carl
Sign in to reply to this message.
On 2015/05/06 09:58:25, pacovila wrote: > > I love \relative mode because it fits perfectly with a certain kind of > content. But if relative mode didn't exist, people would be much more > efficient using clever combinations of \transpose and sequential > expressions. Even though \relative does exist, I use \transpose c c'' {} \relative {} works for me on short segments of music with a singable melody, which I think are the "certain kind of content" you mention. I think \relative is over-used because it was given a short name and documented to be used for note-entry. If we have a reasonable way to enter music with explicit octaves, then people will more likely use \relative where it is helpful, without feeling they need to use it where it causes problems. On 2015/05/06 14:48:30, c_sorensen wrote: > > So, I think I'm in favor of the proposal, but with a name change away from > \absolute. > Probably the best name is \octave, which was used for something similar until version 0.1.19 \octave c'' {c4 e g c e g c'1}
Sign in to reply to this message.
> Probably the best name is \octave, which was used for something > similar > until version 0.1.19 > > \octave c'' {c4 e g c e g c'1} Sounds OK for me. Werner
Sign in to reply to this message.
On 2015/05/06 15:57:21, wl_gnu.org wrote: > > Probably the best name is \octave, which was used for something > > similar > > until version 0.1.19 > > > > \octave c'' {c4 e g c e g c'1} > > Sounds OK for me. > > > Werner So is this proposing three entry modes: \relative (unchanged) \absolute (unchanged) \octave (as proposed here)? I'd not object to that. Trevor
Sign in to reply to this message.
Werner LEMBERG <wl@gnu.org> writes: >> Probably the best name is \octave, which was used for something >> similar >> until version 0.1.19 >> >> \octave c'' {c4 e g c e g c'1} > > Sounds OK for me. Huh. I like the contrast \relative/\absolute better. Particularly, I like a sensible default when one leaves off the pitch. Neither \octave { bes, c d e f } nor \octave c { c' bes as g } or \octave c'' { c' bes as g } seem particularly convincing. I like \absolute { bes, c d e f } \absolute c { c; bes as g } \absolute c'' { c' bes as g } better. The name \octave fits nice verbally when the first note (even better, all notes) can be entered without octave mark. However, that is not generally the case. One functional point of the original \absolute is that of being impervious to enclosing \relative statements. \octave does not have this connotation: it's easier to wonder with "\octave" how it will interact/combine with \relative. -- David Kastrup
Sign in to reply to this message.
Hello, I’d also vote for the three-ways distinction relative/absolute/octave as put by Trevor. Am 06.05.2015 um 20:43 schrieb David Kastrup: > Werner LEMBERG <wl@gnu.org> writes: > >>> Probably the best name is \octave, which was used for something >>> similar >>> until version 0.1.19 >>> >>> \octave c'' {c4 e g c e g c'1} >> Sounds OK for me. > Huh. I like the contrast \relative/\absolute better. Particularly, > I like a sensible default when one leaves off the pitch. > > Neither \octave { bes, c d e f } nor \octave c { c' bes as g } or > \octave c'' { c' bes as g } seem particularly convincing. With octave, I’d consider it most intuitive/easy to use to – only allow octaves of c in the first argument – have it default to \octave c { … } (which would be equivalent to absolute). Do I get that right? > I like > \absolute { bes, c d e f } \absolute c { c; bes as g } \absolute c'' { > c' bes as g } better. > > The name \octave fits nice verbally when the first note (even better, > all notes) can be entered without octave mark. However, that is not > generally the case. How does that matter? Off the top of my head, I would interpret \octave as a command to set the ‘reference octave’ for a music expression. You’re right, the form \octave {} without first argument (as put above) isn’t straightforward to read, it would require being used to it. Perhaps it’s easier to use \absolute in that case. > One functional point of the original \absolute is that of being > impervious to enclosing \relative statements. \octave does not have > this connotation: it's easier to wonder with "\octave" how it will > interact/combine with \relative. I would expect it to be exactly as impervious as absolute. If this is documented clearly, I see no grounds for ambiguity. Yours, Simon
Sign in to reply to this message.
On May 6, 2015, at 14:43 , David Kastrup <dak@gnu.org> wrote: > > Neither \octave { bes, c d e f } nor \octave c { c' bes as g } or > \octave c'' { c' bes as g } seem particularly convincing. +1 > \absolute c { c; bes as g } \absolute c'’ { c' bes as g } After further thought, and with respect, “meh." \transpose is effective, mostly obvious, and doesn’t require explaining away things like a pitch parameter with no effect that must be a c. Is there anything stopping a user who wants a shorthand for \transpose c X \absolute from defining one? — Dan
Sign in to reply to this message.
> On May 6, 2015, at 10:48 AM, Carl Sorensen <c_sorensen@byu.edu> wrote: > > So, I think I'm in favor of the proposal, but with a name change away from > \absolute. I agree about a name change since absolute doesn't really describe this entry mode very well. What if \absolute were changed to something less, well, absolute? Something along these lines, just to brainstorm a bit: \fixed \constant \consistent \regular \anchored \nonrelative \invariable \steady \uniform (ok probably not some of those…) Something like that would work well with an argument — the reference octave the input is fixed to, constant in relation to, etc. — and would still make sense without an argument. It would keep it to just two entry modes. It would sound more like an entry mode than \octave does, and retain the parallel/contrast with relative and the sense of “being impervious to enclosing \relative statements” that David mentions. At any rate, although you can achieve this with \transpose there’s something nice (semantically) about using transpose only for actual transposition purposes and not having to use it for note entry purposes. -Paul
Sign in to reply to this message.
Dan Eble <dan@faithful.be> writes: > On May 6, 2015, at 14:43 , David Kastrup <dak@gnu.org> wrote: >> >> Neither \octave { bes, c d e f } nor \octave c { c' bes as g } or >> \octave c'' { c' bes as g } seem particularly convincing. > > +1 > >> \absolute c { c; bes as g } \absolute c'’ { c' bes as g } > > After further thought, and with respect, “meh." \transpose is > effective, mostly obvious, and doesn’t require explaining away things > like a pitch parameter with no effect that must be a c. > > Is there anything stopping a user who wants a shorthand for \transpose > c X \absolute from defining one? Frescobaldi, Emacs, and other readers of the source code will not be used to his shorthand then and there will be no examples of it in the manuals. Something like "Lilypond supports relative octave note entry where each note's octave is relative to the previous pitch, and it is easy for the user to define his own note entry commands where note's octaves are specified relative to some fixed pitch" is not exactly giving similar weight to two modes of entry. That's basically all. We don't force people to define their own shorthands for a lot of other things or expect them to spell stuff out: that's more like a MusicXML approach than a LilyPond one. -- David Kastrup
Sign in to reply to this message.
On 06.05.2015, at 20:43, David Kastrup <dak@gnu.org> wrote: > Werner LEMBERG <wl@gnu.org> writes: > >>> Probably the best name is \octave, which was used for something >>> similar >>> until version 0.1.19 >>> >>> \octave c'' {c4 e g c e g c'1} >> >> Sounds OK for me. > > Huh. I like the contrast \relative/\absolute better. Particularly, > I like a sensible default when one leaves off the pitch. > > Neither \octave { bes, c d e f } nor \octave c { c' bes as g } or > \octave c'' { c' bes as g } seem particularly convincing. I like > \absolute { bes, c d e f } \absolute c { c; bes as g } \absolute c'' { > c' bes as g } better. Me too! I don’t see the need for an additional \octave-command. We change octave positions in relative mode as well as in absolute mode by adding octave marks. In my opinion it wouldn’t alter the “absoluteness” of absolute mode if it were possible to change the octave position for the whole expression (e.g. \absolute c’’ {c’}). It would just be another handy shortcut for transposing/octavating expressions in absolute mode (instead of having to add/remove individual octave marks). patrick
Sign in to reply to this message.
Paul Morris <paul@paulwmorris.com> writes: >> On May 6, 2015, at 10:48 AM, Carl Sorensen <c_sorensen@byu.edu> wrote: >> >> So, I think I'm in favor of the proposal, but with a name change away from >> \absolute. > > I agree about a name change since absolute doesn't really describe > this entry mode very well. > > What if \absolute were changed to something less, well, absolute? > Something along these lines, just to brainstorm a bit: > > \fixed > \constant > \consistent > \regular > \anchored > \nonrelative > \invariable > \steady > \uniform Most of those (apart from \nonrelative) are not really an obvious alternative pair to \relative. If we take an extra form, \octave seems like a pretty well-fitting name as long as its argument is mandatory. That would leave us with \relative [optional pitch] { ... \absolute [no pitch] { ... \octave [obligatory pitch] { ... If we write about this, we then have "relative pitch entry", "absolute pitch entry", "octave-shifted pitch entry". Now here is a monkey wrench I see in connection with the currently proposed code: any of \relative and \absolute can be nested in one another without affecting the other: the outer input mode will just skip over any of the inner modes as if it wasn't there. The current code proposal for \absolute x' or \octave x' does not have that property. Fixing that is reasonably straightforward: first you transpose all the music, then you do an extract-typed-music on all music of relative-octave-music type and transpose them right back. Once we do that, we have a proper independent input mode of its own, and we no longer have something strictly equivalent to a \transpose command. I'd still prefer just merging the \octave functionality into \absolute and have just two modes to explain.
Sign in to reply to this message.
> On May 7, 2015, at 7:38 AM, dak@gnu.org wrote: > >> I agree about a name change since absolute doesn't really describe >> this entry mode very well. > >> What if \absolute were changed to something less, well, absolute? >> Something along these lines, just to brainstorm a bit: > >> \fixed >> \constant >> \consistent >> \regular >> \anchored >> \nonrelative >> \invariable >> \steady >> \uniform > > Most of those (apart from \nonrelative) are not really an obvious > alternative pair to \relative. To me there’s enough of a contrast to work. I don’t think they need to be an exact/obvious pair. > If we take an extra form, \octave seems > like a pretty well-fitting name as long as its argument is mandatory. > > That would leave us with > > \relative [optional pitch] { ... > \absolute [no pitch] { ... > \octave [obligatory pitch] { ... > > If we write about this, we then have "relative pitch entry", "absolute > pitch entry", "octave-shifted pitch entry". > > Now here is a monkey wrench I see in connection with the currently > proposed code: any of \relative and \absolute can be nested in one > another without affecting the other: the outer input mode will just skip > over any of the inner modes as if it wasn't there. > > The current code proposal for \absolute x' or \octave x' does not have > that property. Fixing that is reasonably straightforward: first you > transpose all the music, then you do an extract-typed-music on all music > of relative-octave-music type and transpose them right back. > > Once we do that, we have a proper independent input mode of its own, and > we no longer have something strictly equivalent to a \transpose command. This makes sense. (But do we really have three independent modes or just two? See below...) > I'd still prefer just merging the \octave functionality into \absolute > and have just two modes to explain. I also prefer having just two modes to explain. Kindly allow me to make the case for my proposal by discussing the others on the table: \relative [optional pitch] { ... \absolute [no pitch] { ... \octave [obligatory pitch] { … The downside with this is that \absolute is really just a subset of the functionality of \octave, but they have different names. \octave c {… is the same as \absolute {… And one could let \octave {... be the same as \absolute {… (Except for points raised about the name “octave” — it doesn’t contrast with “relative" and doesn’t work as well without an argument.) So do we still need \absolute here? Do we need three separate modes? Especially since plain {…} gives you absolute entry, as long as it’s not embedded inside \relative {…}. \relative [optional pitch] { ... \absolute [optional pitch] { … Here we have only the two modes, but the point was made that “absolute” no longer describes very well what this mode has become because the pitches are no longer absolute but relative to the reference octave. It seems what’s needed is a name that describes the new entry mode, and letting the current \absolute just be a subset of the new mode, as it will be functionally: \relative [optional pitch] { ... \fixed [optional pitch] { … Here the new mode is named something that avoids the issues with “absolute” and “octave”. What was \absolute is now simply the new mode without an argument. Another way to put this: if we were designing this from scratch, would we create a separate “octave” and “absolute” mode? If we went with just two modes would we call the second one “absolute”? -Paul
Sign in to reply to this message.
> On May 7, 2015, at 10:43 AM, Paul Morris <paul@paulwmorris.com> wrote: > > \relative [optional pitch] { ... > \absolute [no pitch] { ... > \octave [obligatory pitch] { … > > The downside with this is that \absolute is really just a subset of the functionality of \octave, but they have different names. \octave c {… is the same as \absolute {… Here's another possibility with just two modes: \relative [optional pitch] {…} \octave [obligatory pitch] {…} And then just use \octave c {…} instead of \absolute {…}. In most cases one would simply use plain {…} for absolute-entry and would only need to use \octave c {…} when embedding inside \relative {…}. (Hmmm… I think I prefer this approach over the others.) -Paul
Sign in to reply to this message.
On May 7, 2015, at 11:19 , Paul Morris <paul@paulwmorris.com> wrote: > > Here's another possibility with just two modes: > > \relative [optional pitch] {…} > \octave [obligatory pitch] {…} > > And then just use \octave c {…} instead of \absolute {…}. > > In most cases one would simply use plain {…} for absolute-entry and would only need to use \octave c {…} when embedding inside \relative {…}. > > (Hmmm… I think I prefer this approach over the others.) \octave sounds like it should be a function returning the octave of a note. It does not sound like an entry mode. — Dan
Sign in to reply to this message.
I tried out a some of these suggestions. On 2015/05/03 16:42:02, Trevor Daniels wrote: > a continuous scale would be \relativeOctave { c, d e f g a b c' d e f ...}. I like that the octave marks indicate transitions to the next octave where octaves run CDEFGAB, because that is consistent with usual Helmholtz pitch notation, as opposed to using octave marks to indicate intervals greater than three scale-steps. It is subtly different from \relative in a way that makes it hard to switch from one way of thinking to the other. This goes in an entirely different direction than the patch here, becuase each pitch depends on the previous to determine its octave. This patch is for people who want to enter pitches in a way that does not depend on the order of their entry. On 2015/05/03 21:02:44, Trevor Daniels wrote: > On 2015/05/03 20:25:22, dak wrote: > > I just angle for something useful to do with \absolute f. > > I'm not too keen on creating Easter eggs It seems that anything useful we could do with \absolute f is better done with \transpose c f. I suggest that \absolute x' do the same thing as \transpose x x' and we simply say the reference pitch determines the default octave in Helmholtz notation from which ' and , indicate pitches in higher or lower octaves when needed, and use \absolute c'' in the manual. On 2015/05/06 14:48:30, c_sorensen wrote: > The new function isn't absolute mode, because we don't specify the octave > of the pitch. Instead, it's relative mode, but relative to a fixed pitch. > So I think it shouldn't be called absolute, but rather something like > \relative-fixed. If we wanted to be more explicit, we might consider > changing \relative to \relative-sequential, defining this new function as > \relative-fixed, and still keeping absolute as a mode if we aren't using > one of the relative modes. \relative is well-established to mean "the default octave for a pitch is the one closest in scale-steps to the previous pitch" so we might use simply \fixed to mean "the default octave for a pitch is fixed" On 2015/05/06 18:45:08, dak wrote: > One functional point of the original \absolute is that of being > impervious to enclosing \relative statements. \octave does not have > this connotation: it's easier to wonder with "\octave" how it will > interact/combine with \relative. On 2015/05/07 11:38:16, dak wrote: [ ... fixed ... ] > Most of those (apart from \nonrelative) are not really an obvious > alternative pair to \relative. and also \fixed. 'fixed' and 'relative' are a nice pair that describe how the default octave is determined in the corresponding entry methods. The word \fixed implies that it will be impervious to an enclosing \relative. On 2015/05/07 11:38:16, dak wrote: > Now here is a monkey wrench I see in connection with the currently > proposed code: any of \relative and \absolute can be nested in one > another without affecting the other: the outer input mode will just skip > over any of the inner modes as if it wasn't there. > I had seen this selective application as a feature specific to \relative. Most music functions apply to all the music in their argument, but \relative skips over any \relative or \transpose. It is a bit of an inconvenience that \relative skips over \transpose, and I suspect \relative has this feature so that we do not get rising octaves in \relative c \transpose c c' {c c c c} Maybe we want selective application of the offset octave. \absolute inside \absolute can be useful. For example if a violin spends some time in 7th position \absolute c'' { c e g c \absolute c' {c e g c}} => c'' e'' g'' c'' { c''' e''' g''' c''' } It would also be reasonable to enter these pitches using a function \fixed that skips over any inner \fixed \fixed c'' { c e g c \fixed c''' {c e g c}} If we move music around, taking it inside or outside of an \absolute that works like \transpose, \absolute c'' { c4 e g c \relative c' {c e g c}} => starts with c'' ends with c'''' c4 e g c \relative c' {c e g c} => starts with c ends with c'' then all the pitches shift by the same amount upon relocation. If we make a fixed-octave mode that skips over music written in other modes, then only the innermost mode counts \fixed c'' { c4 e g c \fixed c''' {c e g c}} => starts with c'' ends with c''' c4 e g c \fixed c''' {c e g c}} => starts with c ends with c''' Either way seems useful to me. Either method of octave-offset can apply to transposed music, with no bad surprises \fixed c'' { c e g c \transpose c d {c4 e g c}} => c'' e'' g'' c'' { d'' fis'' a'' d'' } https://codereview.appspot.com/235010043/diff/80001/ly/music-functions-init.ly File ly/music-functions-init.ly (right): https://codereview.appspot.com/235010043/diff/80001/ly/music-functions-init.l... ly/music-functions-init.ly:55: (make-music 'UnrelativableMusic 'element music)) The skipping over of enclosed \relative is done differently than \relative does it. Each type of music can define its own behavior under \relative by setting the 'to-relative-callback, but the only options used are "skip me" or "set my pitches relative to the previous, in order of entry". Here, the function \fixed decides what types of music to skip.
Sign in to reply to this message.
On 2015/05/09 23:58:22, Keith wrote: > I had seen this selective application as a feature specific to \relative. Most > music functions apply to all the music in their argument, but \relative skips > over any \relative or \transpose. It is a bit of an inconvenience that > \relative skips over \transpose, and I suspect \relative has this feature so > that we do not get rising octaves in > \relative c \transpose c c' {c c c c} We could change that if desired. We just need to record the transposition difference when doing \transpose and make the relativization hook for \transpose temporarily revert the transposition. As long as no alteration normalization interferes (and I think we moved this out, right?), this kind of stuff can be done reliably. > Maybe we want selective application of the offset octave. \absolute inside > \absolute can be useful. For example if a violin spends some time in 7th > position > \absolute c'' { c e g c \absolute c' {c e g c}} > => c'' e'' g'' c'' { c''' e''' g''' c''' } I think if we are talking "absolute" here, one can expect to use \absolute c''' instead. > It would also be reasonable to enter these pitches using a function \fixed that > skips over any inner \fixed > \fixed c'' { c e g c \fixed c''' {c e g c}} That would be the behavior I expect irrespective of the name. > If we move music around, taking it inside or outside of an \absolute that works > like \transpose, > \absolute c'' { c4 e g c \relative c' {c e g c}} => starts with c'' ends with > c'''' No, too messy. The whole point of having \absolute in the first place was to have something impervious to \relative. Remember that you cannot distinguish this from part = \relative c' { c4 e g c } \absolute c'' { c4 e g c \part c } > If we make a fixed-octave mode that skips over music written in other modes, > then only the innermost mode counts > \fixed c'' { c4 e g c \fixed c''' {c e g c}} => starts with c'' ends with > c''' > c4 e g c \fixed c''' {c e g c}} => starts with c ends with c''' > > Either way seems useful to me. If you want to transpose, transpose. But we are now talking about an input mode, and \absolute { ... } is intentionally impervious to \relative. So it does not make sense to start introducing half-impervious stuff when writing \absolute c' { ... } or however we want to name it. > \fixed c'' { c e g c \transpose c d {c4 e g c}} => c'' e'' g'' c'' { d'' > fis'' a'' d'' } The question is rather what happens when writing \transpose c c' in the middle. In that case I'd expect, like discussed for \relative, to have the transposition temporarily reversed before applying the \fixed, and then transpose back again.
Sign in to reply to this message.
On Sun, 10 May 2015 00:25:18 -0700, <dak@gnu.org> wrote: > On 2015/05/09 23:58:22, Keith wrote: > >> It is a bit of an inconvenience that >> \relative skips over \transpose, and I suspect \relative has this >> feature so that we do not get rising octaves in >> \relative c \transpose c c' {c c c c} > > We could change that if desired. Good point, but the change is probably too disruptive of old scores. >> \fixed c'' { c e g c \transpose c d {c4 e g c}} >> => c'' e'' g'' c'' { d'' fis'' a'' d'' } > > The question is rather what happens when writing \transpose c c' in the > middle. In that case I'd expect, like discussed for \relative, to have > the transposition temporarily reversed before applying the \fixed, and > then transpose back again. For \absolute c' or \fixed c' there is no need for special effort. These operations commute with transpose. \fixed c' { c4 e g c \transpose c d' {c4 e g c}} => c'4 e'4 g'4 c'4 { d''4 fis''4 a''4 d''4 } > https://codereview.appspot.com/235010043/
Sign in to reply to this message.
> On May 7, 2015, at 9:16 PM, Dan Eble <dan@faithful.be> wrote: > > \octave sounds like it should be a function returning the octave of a note. It does not sound like an entry mode. Yes, after further thought it’s probably better to go with something that clearly sounds like an entry mode, like \fixed (or \absolute). -Paul
Sign in to reply to this message.
On 2015/05/12 13:11:52, paul_paulwmorris.com wrote: > > On May 7, 2015, at 9:16 PM, Dan Eble <mailto:dan@faithful.be> wrote: > > > > \octave sounds like it should be a function returning the octave of a note. > It does not sound like an entry mode. > > Yes, after further thought it’s probably better to go with something that > clearly sounds like an entry mode, like \fixed (or \absolute). I see now that before version 2.12 \octave was used for what is now \octaveCheck This seems to have done something related, but subtly different, within \relative{} The best choice seems to be \fixed, both for the good fit of the meaning of the word to the command, and because it is relatively easy to type. If we allow its reference pitch to be optional, then the relatively new command \absolute is the same as \fixed with no reference pitch, and we can document \fixed briefly where we had documented \absolute.
Sign in to reply to this message.
> The best choice seems to be \fixed, both for the good fit > of the meaning of the word to the command, and because it > is relatively easy to type. If we allow its reference > pitch to be optional, then the relatively new command > \absolute is the same as \fixed with no reference pitch, > and we can document \fixed briefly where we had documented > \absolute. Sounds sensible to me. Given that we are currently producing development releases, I suggest that this gets implemented, then we simply wait a few months so that people can test it in real life, and then we do a final decision.
Sign in to reply to this message.
On 2015/05/15 06:12:38, lemzwerg wrote: > Given that we are currently producing development > releases, I suggest that this gets implemented, > then we simply wait a few months so that people can > test it in real life, and then we do a final decision. If we don't come back with another patch, the current patch will become final by default, but I do think it is a useful choice. The addition to Learning Manual: Common Notation gives us some idea of the extra complexity of documentation that comes with \fixed. A similar change to this section was suggested a few years ago at http://lists.gnu.org/archive/html/lilypond-user/2008-08/msg00384.html
Sign in to reply to this message.
On 2015/05/17 07:36:01, Keith wrote: > On 2015/05/15 06:12:38, lemzwerg wrote: > > Given that we are currently producing development > > releases, I suggest that this gets implemented, > > then we simply wait a few months so that people can > > test it in real life, and then we do a final decision. > > If we don't come back with another patch, the current patch will become final by > default, but I do think it is a useful choice. > > The addition to Learning Manual: Common Notation gives us some idea of the extra > complexity of documentation that comes with \fixed. A similar change to this > section was suggested a few years ago at > http://lists.gnu.org/archive/html/lilypond-user/2008-08/msg00384.html I'm content with this conclusion. I might even try using \fixed ;-) Trevor
Sign in to reply to this message.
On 2015/05/17 09:56:01, Trevor Daniels wrote: > On 2015/05/17 07:36:01, Keith wrote: > > On 2015/05/15 06:12:38, lemzwerg wrote: > > > Given that we are currently producing development > > > releases, I suggest that this gets implemented, > > > then we simply wait a few months so that people can > > > test it in real life, and then we do a final decision. > > > > If we don't come back with another patch, the current patch will become final > by > > default, but I do think it is a useful choice. > > > > The addition to Learning Manual: Common Notation gives us some idea of the > extra > > complexity of documentation that comes with \fixed. A similar change to this > > section was suggested a few years ago at > > http://lists.gnu.org/archive/html/lilypond-user/2008-08/msg00384.html > > I'm content with this conclusion. I might even try using \fixed ;-) Well, I remain unenthused about the new name. Maybe get a vote on the user list, with options \absolute x'', \fixed x'', \octave x''? I think those were pretty much the terms mentioned significantly more than once.
Sign in to reply to this message.
On 2015/05/17 10:44:36, dak wrote: > > Well, I remain unenthused about the new name. Maybe get a vote on the user > list, with options \absolute x'', \fixed x'', \octave x''? I think those were > pretty much the terms mentioned significantly more than once. The proper name for this would \absoluteWithFixedOctaveOffset, but that's too long and the acronym is similarly uninspiring. All three of the proposed options appear in this name, so the question is, "Which alludes most memorably to the actual function?". At the risk of going round in circles, on reconsidering in this light, I rather favour retaining \absolute. The other terms are modifiers to the primary function; the offset is both apparent and optional, "absolute" is used in the text and is an established concept. Trevor
Sign in to reply to this message.
On Sun, 17 May 2015 04:58:22 -0700, <tdanielsmusic@googlemail.com> wrote: > The proper name for this would \absoluteWithFixedOctaveOffset, but > that's too long and the acronym is similarly uninspiring. All three of > the proposed options appear in this name, so the question is, "Which > alludes most memorably to the actual function?". At the risk of going > round in circles, on reconsidering in this light, I rather favour > retaining \absolute. The other terms are modifiers to the primary > function; the offset is both apparent and optional, "absolute" is used > in the text and is an established concept. > The word "absolute" is established in the docs and in the user community to mean the method of entering pitches where octave marks ' and , count octaves from the "small octave" of Helmholtz notation, so the octaves are indicated against an absolute reference. As Carl pointed out, a function that applies an octave offset changes that reference, so is different from "absolute". The two functions \fixed and \relative each convert user input into absolute pitches. \relative applies octave marks relative to the previous pitch; \fixed adds octave marks to those of a fixed pitch. The primary function of the music-function \absolute is to write a stretch of absolute pitches within \relative, but the primary function of \fixed will be to choose the fixed octave from which entered octave marks count. I switched the name in the patch from \absolute to \fixed when I made the function skip over any enclosed \relative section. The docs say the starting pitch in \relative is an absolute pitch, and I didn't want to start making the distinction of "absolute octaves" versus "the octave established by the enclosing absolute" so I made the change \absolute c'' {c e g \relative c, {c e g} } => c''4 e'' g'' c' e' g' \fixed c'' {c e g \relative c, {c e g} } => c''4 e'' g'' c, e, g, For some reason I find the word 'fixed' easier to type than 'absolute' I started looking ahead at further documentation, and found \fixed more natural https://codereview.appspot.com/235010043/diff/120001/Documentation/learning/t... but I backed away from adding anything to the Tutorial because \relative is enough to learn there. BTW, I started replacing @lilypond[relative=2] with complete examples https://codereview.appspot.com/237340043/ I replaced with explicit \relative, but the patch set is a quick way to skim the examples in the Learing Manual where we chose to hide the '\relative' and imaging how \fixed or \absolute might work.
Sign in to reply to this message.
https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... File Documentation/notation/pitches.itely (right): https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... Documentation/notation/pitches.itely:112: The reference pitch after @code{\fixed} is optional. Rather than the optional pitch, we could document the other name "The function @code{\absolute} is shorthand for @code{\fixed c'} used to ensure that the pitches within @code{\absolute} remain unchanged, even if the @code{\absolute} is inside @code{\relative}, discussed next."
Sign in to reply to this message.
"Keith OHara" <k-ohara5a5a@oco.net> writes: > The two functions \fixed and \relative each convert user input into > absolute pitches. So does \absolute. Which was its primary raison d'être. > \relative applies octave marks relative to the previous pitch; \fixed > adds octave marks to those of a fixed pitch. > > The primary function of the music-function \absolute is to write a > stretch of absolute pitches within \relative, but the primary function > of \fixed will be to choose the fixed octave from which entered octave > marks count. There is no difference. > I switched the name in the patch from \absolute to \fixed when I made > the function skip over any enclosed \relative section. The docs say > the starting pitch in \relative is an absolute pitch, and I didn't > want to start making the distinction of "absolute octaves" versus "the > octave established by the enclosing absolute" \absolute x'' would be absolute input mode with a different octave, not transposed absolute mode. > so I made the change > \absolute c'' {c e g \relative c, {c e g} } => c''4 e'' g'' c' e' g' > \fixed c'' {c e g \relative c, {c e g} } => c''4 e'' g'' c, e, g, That does not make sense at all. Just because your first implementation of \absolute did something different (and I suggested to change that) does not mean that fixing its behavior requires changing its name. There is no precedent of \absolute c'' being associated with anything else merely because it showed different behavior in the first review. > For some reason I find the word 'fixed' easier to type than 'absolute' At least _this_ reason is not absurd. It's not compelling to me, however, so I'd prefer to see a vote on it. -- David Kastrup
Sign in to reply to this message.
https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... File Documentation/notation/pitches.itely (right): https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... Documentation/notation/pitches.itely:112: The reference pitch after @code{\fixed} is optional. On 2015/05/17 19:07:05, Keith wrote: > Rather than the optional pitch, we could document the other name > "The function @code{\absolute} is shorthand for @code{\fixed c'} I really hope you mean @code{\fixed c} here, or things will be really messed up. At any rate, if we were to retain both \fixed and \absolute, I don't think it makes sense to give either \absolute or \fixed an optional argument: it should always be \absolute without pitch, and \fixed with pitch then.
Sign in to reply to this message.
On 2015/05/17 21:09:13, dak wrote: > At any rate, if we were to retain both \fixed and \absolute, I strongly prefer just two input modes, \relative and \absolute, but as I said right at the beginning: > ... I'd prefer > the syntax and options [of \absolute] to parallel those of > \relative. That is, an optional prefix pitch to indicate > the starting octave, and taking the starting octave from > the first contained note if the prefix is omitted. That is then consistent, easy to explain and understand, and provides all the functionally we need (retaining the option to add the transposing cuteness at some point in the future if we wish.) Trevor
Sign in to reply to this message.
On 2015/05/17 22:06:10, Trevor Daniels wrote: > > I strongly prefer just two input modes, \relative and \absolute, Okay. I won't split the job to complement \relative between two functions. That leaves the question of what to name the one function. > The proper name for this would be \absoluteWithFixedOctaveOffset Remember the point Carl and Paul pointed out, that if we write 'Baa Baa Black Sheep' as \absoluteWithFixedOctaveOffset c'' {g,4 g, d d e e d2} then the input is not what they consider 'absolute mode' because the octaves are not absolute, but relative to a fixed octave ''. I see now that David considers the input accepted by \fixed as in this patch as a variant of 'absolute mode', just "absolute mode with a different octave". The choice of reference octave makes the input mode seem not very 'absolute' -- until you compare it to LilyPond's \relative. Carls's and Paul's objections were not vehement, but they seem relevant to newcomers to LilyPond. (Also, I can type 'fixed' faster.) So, I'm taking the position of "put up or shut up": confirm that the concept of "absolute mode" in the docsis consistent with merging \fixed into \absolute, or poll the -user mailing list, or be content. https://codereview.appspot.com/235010043/diff/140001/Documentation/learning/c... File Documentation/learning/common-notation.itely (right): https://codereview.appspot.com/235010043/diff/140001/Documentation/learning/c... Documentation/learning/common-notation.itely:1431: the note on the bottom staff of the bass clef. ^ https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... File Documentation/notation/pitches.itely (right): https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... Documentation/notation/pitches.itely:172: absolute octave mode. Which choices are meaningful? ^ https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... Documentation/notation/pitches.itely:882: @code{\relative} block.} ^
Sign in to reply to this message.
On 2015/05/17 22:06:10, Trevor Daniels wrote: > > ... I'd prefer > > the syntax and options [of \absolute] to parallel those of > > \relative. That is, an optional prefix pitch to indicate > > the starting octave, and taking the starting octave from > > the first contained note if the prefix is omitted. I looked at this again. We would need to write code to find the first pitch, for the general case like \absolute <<{g'4 f e2} {b, c d}>> The corresponding finding of the first pitch in \relative comes out naturally from the code (in C, mostly) that makes each pitch reference the previous pitch. The meaning changes when the contents are re-ordered \absolute <<{b, c d} {g'4 f e2}>> and freedom to re-arrange music was a significant motivation to get away from \relative. Also, the first pitch of a natural segment of music is quote often at one end of the range of that segment, so not in the most convenient octave. \absolute { \partial 4 g4 | c'4. b8 c'4 e'4 | d'4. c'8 d'4 e'8 d'8 | c'4. c'8 e'4 g'4 | a'2. r4 } So I don't think we will regret passing up this behavior when the reference pitch is omitted. Nevertheless, we could have \fixed always use a reference pitch. https://codereview.appspot.com/235010043/diff/140001/Documentation/learning/c... File Documentation/learning/common-notation.itely (right): https://codereview.appspot.com/235010043/diff/140001/Documentation/learning/c... Documentation/learning/common-notation.itely:1521: c4 \fixed c'' { f g } c c'4 \fixed c { f'' g'' } c | c4 \fixed c'' { f g } c because optional arguments confuse simple-minded people like me, and "\fixed c" is still easier to type than "\avsolute" This patch leaves \absolute in place, documented automatically in section A.19 by its doc-string. https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... File Documentation/notation/pitches.itely (right): https://codereview.appspot.com/235010043/diff/140001/Documentation/notation/p... Documentation/notation/pitches.itely:112: The reference pitch after @code{\fixed} is optional. On 2015/05/17 21:09:13, dak wrote: > I really hope you mean @code{\fixed c} here, I did.
Sign in to reply to this message.
I'm proposing to push a \fixed c' {} that always takes a reference pitch, as in the current patch. It costs nothing to leave \absolute in place for those who have learned it, but it is simplest to document instead the equivalent \fixed c {...}. That gives us the benefit of less typing and keeps options open for behavior of \fixed if we skip the reference pitch.
Sign in to reply to this message.
> On May 21, 2015, at 2:36 AM, k-ohara5a5a@oco.net wrote: > > I'm proposing to push a \fixed c' {} that always takes a reference > pitch, as in the current patch. > > It costs nothing to leave \absolute in place for those who have learned > it, but it is simplest to document instead the equivalent \fixed c > {...}. > > That gives us the benefit of less typing and keeps options open for > behavior of \fixed if we skip the reference pitch. I’m fine with this proposal. (I’d be fine with either \octave or \fixed for the name, FWIW.) -Paul
Sign in to reply to this message.
|