lilypond-devel
[Top][All Lists]
Advanced

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

Re: Proposal for selective ties in chords.


From: Heikki Johannes Junes
Subject: Re: Proposal for selective ties in chords.
Date: Fri, 3 May 2002 17:34:52 +0300 (EET DST)

On Fri, 3 May 2002, Han-Wen Nienhuys wrote:
> how would you distinguish between
> 
>   c~ c
> 
> and
> 
>   c ~c
> 
or between

   c~ ~c 

and

   c ~ c

The idea was to use a directed bound with '~'-marks: tie either the object
in the left side or the object in the right side. If situation is
symmetric, like in <x>~<y>, bind both the left and right directions.

Briefly:

"<x>~ <y>" = "bind object <x> to the object <y> on the right side"
"<x> ~<y>" = "bind object <y> to the object <x> on the left side"

The following are equivalent (concurrent bounds just add up):

"<x>~<y>" = "bind object <x> to the object <y> on the right side" &
            "bind object <y> to the object <x> on the left side"
          = "<x>~ <y>" & "<x> ~<y>"
          = "<x>  ~    <y>"
        
Simple examples:

  Let us consider the following chords:
    <a c> <a c e> <c e> % separate chords

  They can be bound by using the following (excellent) notation:
    <a c>~<a c e>~<c e> % bind all possible notes between the two chords

Examples of the proposed syntax:

  If you want to bind only one note you would need
    <a c~> <a c e> <~c e>   % bind only c-notes
    <a c> <a ~c~ e> <c e>   % bind only c-notes
    <a c~> <a ~c~ e> <~c e> % bind only c-notes (double '~'-marks)

    <a~ c> <a c e> <c ~e>   % bind other than c-notes
    <a c> <~a c e~> <c e>   % bind other than c-notes
    <a~ c> <~a c e~> <c ~e> % bind other than c-notes (double '~'-marks)

Seems like there is no ambivalence. Take <a c~> <c d f>, for example, and
try to parse it in respect to '~':

      ~         % 1. check source objects from left and right
     c~         % 2. check target objects from the other side
     c~<c d f>  % 3. check whether there is a match (on the other side)
     c~c        % 4. target found, end.

What about e <a c ~ e> <c e f>: (this is handled in two separate parts)

            ~           % 1. check source objects from left and right
    c~     and   ~e     % 2. check target object from left and right
c~<c e f>  and  e~e     % 3. check whether there is a match
   c~c     and  e~e     % 4. targets found, end.

What about <c e~> ~ <~e>: (this is a tricky example)

  ~    and                    ~            and      ~   % 1.
 e~    and    <c e>~         and      ~<e> and      ~e  % 2.
 e~    and  c~    and e~     and      ~e   and      ~e  % 2.
 e~<e> and  c~<e> and e~<e>  and <c e>~e   and <c e>~e  % 3.
 e~e   and (null) and e~e    and     e~e   and     e~e  % 3. (drop multiple)
 e~e                                                    % 4.

That is all I can say. Ugh. ~I will return to my tepee.

--
      Heikki Junes




reply via email to

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