lilypond-devel
[Top][All Lists]
Advanced

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

Re: Added recorder diagram (issue 153380043 by address@hidden)


From: Mike Solomon
Subject: Re: Added recorder diagram (issue 153380043 by address@hidden)
Date: Mon, 3 Nov 2014 13:37:36 +0200

> On Nov 2, 2014, at 10:58 PM, address@hidden wrote:
> 
> i don't know scheme, so i was mainly pattern-matching from existing
> diagrams.  some issues i had while trying to figure this out:
> 
> - what is the purpose of the baked-in cc/lh/rh grouping?
> 

This was a feature of the original design based on the woodwind instruments I 
needed to implement at the time.
All of the woodwind instruments I have ever written for or studied have this as 
a feature.

> - i can't find doc for draw-instructions rules -- seems to determine
> whether keys are hidden unless specified -- i didn't want that
> behavior, but was stuck unexpectedly getting it for a while.
> 

That’s my fault - it was a late add-on that I still need to document.  I will 
propose a patch for documentation as soon as I get LilyDev running on OS X 
Yosemite.
Try something to the effect of:

(draw-instructions
              . ((,group-automate-rule
                  ,(make-central-column-hole-addresses 
CENTRAL-COLUMN-HOLE-LIST))))

> - difference between identity and return-1 -- they sound identical to
> me (when xy-scaling), but gave different results.
> 

Identity returns the value passed in

(identity 3)
3

return-1 returns 1

(return-1 3)
1.0

> - the style used encourages a lot of duplicated code -- it needs to be
> refactored so that keys are defined as simple declarative structures
> (with properties like name, group, position, complexity, stencil,
> textual-representation) and graphical/textual-commands derived
> therefrom.
> 

Currently, there is a declarative structure used to define all keys.  The 
structure has properties like offset, stencil, text?, and complexity.
There is a lot of data, but I don’t see that much duplicated code.
Of course, I am for refactoring as much as possible - do you have a proposal 
for where that’d be useful?

> - similarly, key positions should be described in relative terms --
> most stuff is absolute w/brittle hardcoding.

What would the keys be relative to?  Currently, there is the possibility to do 
one absolute offset (in an offset property).  I think that the relative idea is 
interesting - perhaps the possibility to create groups of keys and to offset 
the groups?  Were this to be the case, it’d be important to consult with 
practitioners to make sure that the groups had anatomical sense with respect to 
the way the instrument is visualized in their mind’s eye.

> 
> - explicit support for when there is no text-override (key name
> instead of graphical stencil) available.  i tripped across a
> previously reported bug that doesn't seem to have made it to the issue
> list even though it's a crash:
> (http://lists.gnu.org/archive/html/lilypond-user/2014-09/msg00405.html):
> 
>  c^
>  \markup \override #'(graphical . #f) {
>      \woodwind-diagram
>        #'tin-whistle
>        #'()
>  }
> 
> C:/Program Files
> (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind-
> diagrams.scm:1977:20: In procedure = in expression (= 0 (assoc-get node
> draw-ins
> tructions)):
> C:/Program Files
> (x86)/LilyPond/usr/share/lilypond/current/scm/display-woodwind-
> diagrams.scm:1977:20: Wrong type: #f
> 
> also broken for saxophone (a different error tho), but works for
> piccolo.
> for tin-whistle, seems to be from use of CENTRAL-COLUMN-HOLE-H-LIST
> instead of CENTRAL-COLUMN-HOLE-LIST.
> 

Can you propose a patch to fix this?
I’ll take a look to see if I can put better default behavior when values aren’t 
supplied.

> - when using \override #'(graphical . #f) (is there a way to call this
> "textual"?) with an empty keylist, should show all possible text
> stencils (as it currently does for graphical).  also, how are partial
> coverings/trills handled in this case?

There is currently no support for textual partial coverings - that would 
certainly be welcome.  I couldn’t find a good convention in the literature when 
I wrote the code.
For the graphical . #f, that is a great idea - hadn’t thought of it before.  
I’ll also look into that as soon as I get stuff up an running on Yosemite.

> 
> - would be nice if i didn't have to edit display-woodwind-diagrams.scm
> and instead could just \include my raw .scm file from a .ly file.
> 

You can load scm modules via the load command.

#(load foo.scm)

Otherwise, woodwind-instrument-list is publicly defined and can be changed at 
runtime.

Cheers,
MS


reply via email to

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