[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: vertical shift of trill
From: |
Thomas Morley |
Subject: |
Re: vertical shift of trill |
Date: |
Sat, 6 Aug 2022 20:24:45 +0200 |
Am Sa., 6. Aug. 2022 um 17:15 Uhr schrieb Jean Abou Samra <jean@abou-samra.fr>:
>
> Le 06/08/2022 à 16:45, Werner LEMBERG a écrit :
> >> That said, there's a much simpler way. [...]
> > Your solution is ingenious. However, how on earth are we mere mortals
> > able to find that?
>
>
> Read the source, Luke :-)
roflmao
>
> Seriously, there is no way around that in this case -- as in many cases
> when it comes to Scheme coding, because the task is essentially to meddle
> with LilyPond internals.
>
> Obviously, I don't claim that this is something every user is supposed to
> be able to do.
Some remarks:
(1) `meta'
> \override TrillSpanner.meta.object-callbacks.side-support-elements = ...
I'd never thought overriding `meta' is possible at all.
Afaict, there is no example anywhere.
Overriding other meta-subproperties like `class'may result in
surprises, not tested, though.
(2) `object-callbacks'
Some years ago I tried to manipulate `object-callbacks' for a certain
use case. I don't remember exactly, apart from: It was a fiasko.
I never tried this again...
Furthermore:
$ git grep object-callbacks
lily/grob.cc: SCM object_cbs = scm_assq (ly_symbol2scm
("object-callbacks"), meta);
lily/note-column.cc: via object-callbacks. --JeanAS
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((normal-stems . ,ly:beam::calc-normal-stems)))
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((footnotes-before-line-breaking .
,ly:system::footnotes-before-line-breaking)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
scm/define-grobs.scm: (object-callbacks . ((Y-common .
,ly:axis-group-interface::calc-y-common)
scm/define-grobs.scm: (object-callbacks . (
scm/define-grobs.scm: (object-callbacks .
((pure-Y-common . ,ly:axis-group-interface::calc-pure-y-common)
Above seems like object-callbacks is close to always related to
unpure/pure thingies.
As a user one would have to be very bold to use it for something
different relying on the few exceptions.
And cc-code is locked from the user.
(3) same for `side-support-elements':
$ git grep side-support-elements
Documentation/misc/CHANGES-1.3:of checking side-support-elements. This
fixes a problem with stacked
lily/bar-number-engraver.cc: set_object (text_, "side-support-elements",
lily/dot-column.cc: extract_grob_set (me, "side-support-elements", support);
lily/jump-engraver.cc: set_object (text, "side-support-elements",
lily/mark-engraver.cc: set_object (text_, "side-support-elements",
lily/metronome-engraver.cc: set_object (text_, "side-support-elements",
lily/side-position-interface.cc:
Pointer_group_interface::add_unordered_grob (me, ly_symbol2scm
("side-support-elements"), e);
lily/side-position-interface.cc: extract_grob_set (me,
"side-support-elements", proto_support);
lily/side-position-interface.cc: extract_grob_set (me,
"side-support-elements", elts);
lily/side-position-interface.cc: // TODO: if there is a grob that
never has side-support-elements
lily/side-position-interface.cc: Grob_array *ga = unsmob<Grob_array>
(get_object (me, "side-support-elements"));
lily/side-position-interface.cc:side-support-elements
lily/span-arpeggio-engraver.cc: extract_grob_set
(arpeggios_[j], "side-support-elements", sses);
lily/span-arpeggio-engraver.cc:
Pointer_group_interface::add_grob (span_arpeggio_, ly_symbol2scm
("side-support-elements"),
scm/define-grob-properties.scm: (side-support-elements
,ly:grob-array? "The side support, an array of
scm/output-lib.scm: (ly:grob-array->list (ly:grob-object g
'side-support-elements))))
I.e. apart from doc-strings for IR, no code-example, which would be
the most important, imho.
Thus I think it was close to impossible to find.
Reminds me as David K posted about <> being valid syntax.
That said, I recently used `side-support-elements' for a custom
coding, setting and reading it.
https://lilypondforum.de/index.php/topic,1082.msg5858.html#msg5858
I learned how to do it by observing the behaviour of 'scripts and
their `side-support-elements' in ScriptRow.
I.e. not by reading the source-code, but by playing around with it.
This is tedious, time-consuming and not always successful.
Nevertheless, many, many thanks for your coding-example.
I may even be able to simplify the linked code.
Best,
Harm
- Re: vertical shift of trill, (continued)
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06
- Re: vertical shift of trill, Jean Abou Samra, 2022/08/06
- Re: vertical shift of trill, Werner LEMBERG, 2022/08/06
- Re: vertical shift of trill, Jean Abou Samra, 2022/08/06
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06
- Re: vertical shift of trill, Jim Cline, 2022/08/06
- Re: vertical shift of trill,
Thomas Morley <=
- Re: vertical shift of trill, Carl Sorensen, 2022/08/06
- Re: vertical shift of trill, Jean Abou Samra, 2022/08/06
- Re: vertical shift of trill, Valentin Petzel, 2022/08/06