lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: absolute pitch entry: accept an offset octave (issue 235010043 by ad


From: k-ohara5a5a
Subject: Re: absolute pitch entry: accept an offset octave (issue 235010043 by address@hidden)
Date: Sat, 09 May 2015 23:58:22 +0000

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.ly#newcode55
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.

https://codereview.appspot.com/235010043/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]