lilypond-devel
[Top][All Lists]
Advanced

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

Re: print transposed guitar chords on piano sheets (issue4626094)


From: Wols Lists
Subject: Re: print transposed guitar chords on piano sheets (issue4626094)
Date: Thu, 07 Jul 2011 14:04:59 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110608 Lightning/1.0b3pre Thunderbird/3.1.10

On 07/07/11 03:21, address@hidden wrote:
> Looks nice!
> 
> I have a few suggestions.
> 
> As far as running things through the formatter goes, the current
> formatter in git master is *not* the one that we are trying to get
> approved.  So it shouldn't be run on current files.

Ummm. In that case, shouldn't reference to it be deleted from the
current contributor's guide? That's why I ran it! :-(
> 
> Thanks for your work!

Thanks.
> 
> Carl
> 
> 
> 
> lily/chord-name-engraver.cc:177: SCM capovertical = get_property
> ("capoVertical");
> capovertical should be capo_vertical

You'll note at the moment it gives a C++ error of "variable not used". :-)
> 
> http://codereview.appspot.com/4626094/diff/8001/lily/chord-name-engraver.cc#newcode189
> 
> lily/chord-name-engraver.cc:189: chord_name_->set_property ("text",
> final_markup);
> I recommend that all this be done in the form of a scheme procedure, and
> that the scheme procedure be called.
> 
> That would make it much easier to alter in the future, or for a user to
> customize.  They can just redefine the Scheme procedure, and they are
> good to go.
> 
> So you'd have something like
> 
> chord_name->set_property ("text", scm_call_3 (chord_name_capo_proc,
> markup, capo_markup, capo_vertical))

Mmmm...

Do we have generic procedures for "combine markup" and "stack markup"?
If not, there'll be a flurry of frog emails as I try and write them :-)
(note to self - ly:stencil-combine-at-edge)

Because the chord_name_capo_proc will basically be "if vertical then
stack else combine".

Should my scheme function go in the scm directory? And what would be a
good name for it? Do those functions get loaded into lily automatically?
If not how do I load them?

And where would "combine markup" and "stack markup" go if I have to
write them? Markups are the bane of my typesetting life, so a bunch of
routines like this would be great, and they could well be useful to
other people as well...
> 
> http://codereview.appspot.com/4626094/
> 
Moving on slightly, if I'm messing about with scheme for markup, how do
I mess around with scheme for engravers. It looks like they're defined
inside lilypond code - do they go in the ly directory?

This is the capo-engraver, which should work like the key engraver -
where the user sets up stuff like time sig, key etc, they can AFTER the
key is set they can set the capo. Something like "\key C \major \capo
A". That'll then calculate the semitone difference between the key sig
and the transposed key, and print the transposition as "Capo 3 (A)". And
it needs to be aware of major/minor to print eg Am.

(Once I've done that, I've got two more engravers in mind, but they can
wait until this is properly done. brass-finger-engraver, and
bar-count-engraver - and that latter is NOT anything to do with bar
numbers!)

Cheers,
Wol



reply via email to

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