[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Fwd: Custom accidental styles
From: |
David Kastrup |
Subject: |
Re: Fwd: Custom accidental styles |
Date: |
Sat, 21 May 2016 20:32:13 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) |
Dan Eble <address@hidden> writes:
> [I dropped lilypond-devel when I replied. Sending David’s reply to the list.]
>
> From: David Kastrup <address@hidden>
> Subject: Re: Custom accidental styles
> Date: May 21, 2016 at 12:29:05 EDT
> To: Dan Eble <address@hidden>
>
> Dan Eble <address@hidden> writes:
>
>>> On May 21, 2016, at 11:00 , David Kastrup <address@hidden> wrote:
>>>
>>> Dan Eble <address@hidden> writes:
>>>
>>>> On May 20, 2016, at 05:38 , Simon Albrecht <address@hidden> wrote:
>>>>> I was hoping to do further improvements to the code (comments and
>>>>> simplification) such as to make the threshold still lower, but I
>>>>> didn’t get there unfortunately.
>>>>>
>>>>> HTH, Simon
>>>>> <accidental-style-baroque.ily>
>>>>
>>>> Thank you. That was helpful. This worked for me:
>>>>
>>>> %% Like voice, with additional cautionary cross-voice cancellations
>>>> #(set! accidental-styles (append accidental-styles
>>>> `((hymnbook-cautionary #f
>>>> (Voice ,(make-accidental-rule 'same-octave 0))
>>>> (Staff ,(make-accidental-rule 'same-octave 0))
>>>> Staff))))
>>>
>>> accidental-styles.hymnbook-cautionary =
>>> #`(#f (Voice ,(make-accidental-rule 'same-octave 0))
>>> (Staff ,(make-accidental-rule 'same-octave 0))
>>> Staff)
>>
>> It’s prettier, but it isn’t working. With 2.19.42, I get "warning:
>> unknown accidental style” and the style is not put into effect. The
>> attached file demonstrates both ways.
>
> Ugh. Wouldn't work with define! instead of set! either I guess (which
> is what lily-lexer.cc uses effectively). The variable is defined in a
> different module (lily rather than the current lexer).
>
> From the Guile docs:
>
> `define' (when it occurs at top level), `scm_define' and
> `scm_c_define' all create or set the value of a variable in the top
> level environment of the current module. If there was not already a
> variable with the specified name belonging to the current module, but a
> similarly named variable from another module was visible through having
> been imported, the newly created variable in the current module will
> shadow the imported variable, such that the imported variable is no
> longer visible.
>
> So for
>
> xxx.yyy = ...
>
> we quite likely want set! semantics. How about for
>
> xxx = ...
>
> ?
Ugh.
GNU LilyPond 2.19.43
Processing `input/regression/collision-2.ly'
Parsing.../usr/local/tmp/lilypond/out/share/lilypond/current/scm/lily-library.scm:583:32:
In expression (break pred lst):
/usr/local/tmp/lilypond/out/share/lilypond/current/scm/lily-library.scm:583:32:
Wrong type to apply: #<Prob: Music C++: Music((origin . #<location
/usr/local/tmp/lilypond/out/share/lilypond/current/ly/declarations-init.ly:64:9>)
(break-permission . force))((display-methods #<procedure #f (expr)>) (name .
LineBreakEvent) (types line-break-event break-event event)) >
`break' is a procedure (automatically loaded) in (srfi srfi-1). It is
also a music expression in ly/declarations-init.ly.
Overwriting it does not seem like a good idea...
--
David Kastrup