lilypond-user
[Top][All Lists]
Advanced

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

Re: Text listing output in .txt file


From: David Kastrup
Subject: Re: Text listing output in .txt file
Date: Wed, 02 Aug 2017 21:59:53 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Thomas Morley <address@hidden> writes:

> 2017-08-02 21:35 GMT+02:00 David Kastrup <address@hidden>:
>> Jan-Peter Voigt <address@hidden> writes:
>>
>>> Hi Daniel and all others,
>>>
>>> you wrote about a critrical edition. There is scholarly:
>>> https://github.com/openlilylib/scholarly
>>> where you can add annotations to your score which then can be
>>> collected in another file.
>>> If you want to use the EE for tracking, you might use \applyContext
>>> #(lambda (context) ... ) .
>>> Of course you can use this function right inside your code.
>>>
>>> I am not at my computer right now, so I can not provide an example
>>> (yet). But perhaps someone else can make use of this idea.
>>
>> \applyContext is called at the time music is interpreted (usually quite
>> remote from the text entry).

Correction, sigh: the function handed to \applyContext is called at the
time music is iterated.  \applyContext itself is obviously called at the
time it is encountered in the input.

>> At that point, (*location*) tends to point to something nonsensical,
>> and the execution of \applyContext's function does not pass a pointer
>> to the originating music expression (where the origin would be
>> recorded).
>>
>> So one needs to call (*location*) in a wrapper function that then uses
>> the result in a closure passed to applyContext.  _If_ one goes the
>> applyContext route, that is.
>>
>> Another option would be to have applyContext fetch the origin and make
>> it available in the %location fluid.  That seems a bit wasteful but
>> likely would not result in noticeable performance impacts.
>
> I had sent my previous mail before reading your reply here.
>
> Having taken the applyContext-approach, I see no drawbacks currently.
> Needs more testing, ofc

I'm pretty sure that...  Wait.

commit 99d6bb300e425bb86301eb370b0e9c57de9ee817
Author: David Kastrup <address@hidden>
Date:   Sat Jul 4 16:43:03 2015 +0200

    Issue 4481: \barNumberCheck has bad error location

diff --git a/lily/apply-context-iterator.cc b/lily/apply-context-iterator.cc
index ce3fd032e2..5ed628491c 100644
--- a/lily/apply-context-iterator.cc
+++ b/lily/apply-context-iterator.cc
@@ -35,9 +35,9 @@ void
 Apply_context_iterator::process (Moment m)
 {
   SCM proc = get_music ()->get_property ("procedure");
-
   if (ly_is_procedure (proc))
-    scm_call_1 (proc, get_outlet ()->self_scm ());
+    with_location (get_music ()->get_property ("origin"),
+                   proc, get_outlet ()->self_scm ());
   else
     get_music ()->origin ()->warning (_ ("\\applycontext argument is not a 
procedure"));

Darn it.  Forget what I said unless we are talking about version 2.19.22
exactly.  I fixed this in 2.19.23 for \applyContext already.

-- 
David Kastrup



reply via email to

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