lilypond-devel
[Top][All Lists]
Advanced

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

Re: Code review/discussion time again.


From: Han-Wen Nienhuys
Subject: Re: Code review/discussion time again.
Date: Mon, 23 Nov 2009 11:43:17 -0200

On Mon, Nov 23, 2009 at 4:02 AM, David Kastrup <address@hidden> wrote:
>>> I have no idea what I am doing here.  In particular not with the
>>> \override, and the set-object-property!.  Can somebody explain to me
>>> just what data structures I happen to manipulate, and how a user is
>>> actually _supposed_ to be mangling them?
>>
>> Perhaps you could explain us how accordion notation works; that will
>> make it easier to give advice on how to best achieve your targets.
>
> In the context of _this_ patch, we are just placing register symbols.

Right, but I have the feeling this patch is the wrong way to go, but I
need more information.

> The set of symbols that is being used is normally valid per staff.  It
> is just in rare cases that you would want to change this set in
> mid-staff, with the exception of switching between "Free Bass" and
> "Standard Bass" symbols which can be interchanged on one hand.
>
>> As far as I can see, there are 2 settings:
>>
>> -  the type of accordion (eg defaultStdBassV), which typically span
>> multiple notes, or even the entire piece?
>
> There are separate symbol sets for left and right hand, and that of the
> left hand may be interchanged in mid-stream.
>
>> - the register of a note.  Is that specific for one note or for
>> multiple notes?
>
> Multiple notes.

If both are stateful properties (ie. span multiple notes) of the
music, like key signatures, they should be context properties, to be
modified using

  \set accordionType = "StdVII"
  \set accordionRegister = "22x7whatever"

When are there symbols to be printed?  In case of a change of either
property, manual forcing, or both?

In any event, the correct approach would be write an engraver, which
unfortunately cannot currently be done in Scheme (it would be a nice
project to write bindings to enable though).  The engraver creates a
new grob (AccordionRegister ?) carrying a markup.  The markup should
be created by calling out to a Scheme function which would look at the
accordionType and accordionRegister.

-- 
Han-Wen Nienhuys - address@hidden - http://www.xs4all.nl/~hanwen




reply via email to

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