Re: Understanding the eps bounding box (rounding)

2018-03-01 Thread Urs Liska

Hello Karl,


Am 02.03.2018 um 01:25 schrieb k...@aspodata.se:

In my

  PostScript Language
  Document Structuring
  Conventions Specification
  Adobe Developer Support
  Version 3.0
  25 September 1992

possible downloadable from
  https://archive.org/details/ps-doc-struc-conv-3

it says:

%%BoundingBox: { } | (atend)
 ::=(Lower left x coordinate)
 ::=(Lower left y coordinate)
 ::=(Upper right x coordinate)
 ::=(Upper right y coordinate)
This comment specifies the bounding box that encloses all marks 
painted
on all pages of a document. That is, it must be a "high water 
mark" in all
directions for marks made on any page. The four arguments 
correspond to
the lower left (llx, lly) and upper right corners (urx, ury) of 
the bounding box
in the default user coordinate system (PostScript units). See 
also the
%%PageBoundingBox: comment.

I.e., according to spec, the numbers describe a box that encloses
everything. It doesn't say it must the smallest such box.
Same thing for PageBoundingBox.


I think it *is* the smallest box, but truncated to integers. At least I 
can't imagine a box that leaves full units empty.
From what I've seen so far I was confident that the numbers correspond 
to what LilyPond sees as \pt, and also in LaTeX I have treated the 
numbers as pt (as opposed to bp).


Could this be an issue here?



That is in contrast to:

PostScript language reference manual, 3rd ed, TABLE 5.3:

FontBBox array (Required) An array of four numbers in the glyph coordinate 
system giving
the left, bottom, right, and top coordinates, respectively, of 
the font bounding
box. The font bounding box is the smallest rectangle enclosing 
the shape that
would result if all of the glyphs of the font were placed with 
their origins co-
incident, and then painted. This information is used in making 
decisions
about glyph caching and clipping. If all four values are 0, the 
PostScript inter-
preter makes no assumptions based on the font bounding box.

where they specify the smallest one, but for fonts and other
parts of pages, not whole pages.


Interestingly, here they don't specify the data type of the numbers.



...

Does the -80 mean:

   * any value between -79 and -80
   * any value between -79.5 and -80.499

...

So, if the leftmost painted things is at e.g. -79.1 then llx <= -80,
since llx >= -79 wouldn't do.


Thank you. This makes sense but is exactly the kind of assumption I 
didn't want to approach by trial & error.


Best
Urs


Regards,
/Karl Hammar

---
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


A lovely segno sign

2018-03-01 Thread Andrew Bernard
In the first edition of the Chopin Mazurkas Op. 7, there is a lovely segno
symbol used. Has anybody made anything like this?

The text font in this edition is also lovely - I wonder if they were letter
punch forms?

See attached image. The scan is from IMSLP.

I'm not trying to recreate this edition, I just want to borrow the graphic
elements.


Andrew
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Understanding the eps bounding box (rounding)

2018-03-01 Thread karl
In my

 PostScript Language
 Document Structuring
 Conventions Specification
 Adobe Developer Support
 Version 3.0
 25 September 1992

possible downloadable from
 https://archive.org/details/ps-doc-struc-conv-3

it says:

%%BoundingBox: { } | (atend)
::=(Lower left x coordinate)
::=(Lower left y coordinate)
::=(Upper right x coordinate)
::=(Upper right y coordinate)
   This comment specifies the bounding box that encloses all marks 
painted
   on all pages of a document. That is, it must be a "high water 
mark" in all
   directions for marks made on any page. The four arguments 
correspond to
   the lower left (llx, lly) and upper right corners (urx, ury) of 
the bounding box
   in the default user coordinate system (PostScript units). See 
also the
   %%PageBoundingBox: comment.

I.e., according to spec, the numbers describe a box that encloses 
everything. It doesn't say it must the smallest such box.
Same thing for PageBoundingBox.

That is in contrast to:

PostScript language reference manual, 3rd ed, TABLE 5.3:

FontBBox array (Required) An array of four numbers in the glyph coordinate 
system giving
   the left, bottom, right, and top coordinates, respectively, of 
the font bounding
   box. The font bounding box is the smallest rectangle enclosing 
the shape that
   would result if all of the glyphs of the font were placed with 
their origins co-
   incident, and then painted. This information is used in making 
decisions
   about glyph caching and clipping. If all four values are 0, the 
PostScript inter-
   preter makes no assumptions based on the font bounding box.

where they specify the smallest one, but for fonts and other
parts of pages, not whole pages.

...
> Does the -80 mean:
> 
>   * any value between -79 and -80
>   * any value between -79.5 and -80.499
...

So, if the leftmost painted things is at e.g. -79.1 then llx <= -80,
since llx >= -79 wouldn't do.

Regards,
/Karl Hammar

---
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Put the rests in cross-staff between staves

2018-03-01 Thread Joshua Stutter

Or indeed a dedicated stave for the rest if this is going to occur often.

   \score {
  <<
    \new Staff = "up" { c''4 \change Staff = "rest" r \change Staff
   = "up" c'' }
    \new Staff = "rest" \with { \omit Staff.StaffSymbol \omit Clef
   \omit TimeSignature \omit KeySignature  } { s4*3 }
    \new Staff = "down" { c''4 c'' c'' }
  >>
  \layout {
    \context {
  \Staff
  \override VerticalAxisGroup.default-staff-staff-spacing =
  #'((basic-distance . 2)
 (minimum-distance . 2)
 (padding . 2))
    }
  }
   }

Joshua.


On 01/03/18 21:59, Mark Stephen Mrotek wrote:


Paolo,

Does the attached accomplish what you want?

Mark

*From:*lilypond-user 
[mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] *On Behalf 
Of *Paolo Prete

*Sent:* Thursday, March 01, 2018 7:01 AM
*To:* Lilypond-User Mailing List 
*Subject:* Put the rests in cross-staff between staves

Hello,

in a cross-staff bar, is there a simple way to put the rests in the 
middle between the two staves?


Currently, I use that:

\override Rest #'staff-position = #-12

...but I wonder if is there a better way to obtain the same result

Thanks



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


RE: Put the rests in cross-staff between staves

2018-03-01 Thread Mark Stephen Mrotek
Paolo,

 

Does the attached accomplish what you want?

 

Mark

 

From: lilypond-user [mailto:lilypond-user-bounces+carsonmark=ca.rr@gnu.org] 
On Behalf Of Paolo Prete
Sent: Thursday, March 01, 2018 7:01 AM
To: Lilypond-User Mailing List 
Subject: Put the rests in cross-staff between staves

 

Hello,

 

in a cross-staff bar, is there a simple way to put the rests in the middle 
between the two staves?

 

Currently, I use that:

 

\override Rest #'staff-position = #-12

 

...but I wonder if is there a better way to obtain the same result

 

Thanks

\version "2.19.49"

\score {
  \new PianoStaff <<
\new Staff = "upper"

\relative c'' {
\time 4/4
\key c \major

c4 c c,,\rest c'' |



}

\new Staff = "lower" 
\relative c {
\clef bass 
\key c \major

   

  
}
  >>
  \layout { }
  
}

%{
convert-ly.py (GNU LilyPond) 2.19.80  convert-ly.py: Processing `'...
Applying conversion: 2.19.2, 2.19.7, 2.19.11, 2.19.16, 2.19.22,
2.19.24, 2.19.28, 2.19.29, 2.19.32, 2.19.40, 2.19.46, 2.19.49
%}
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Including tweaks in a variable

2018-03-01 Thread Simon Albrecht

On 01.03.2018 17:51, Michael Stickles wrote:
It was driving me crazy at first because it still wouldn't work, until 
I dug through the documentation a bit more and found that 2.18 and 
2.19 have a slightly different syntax for the function arguments:


Truly the fact that it’s difficult for power users to provide the proper 
syntax for 2.18 shows how old that stable release is. We’re working on a 
2.20 release, but until then you’re also pretty safe using 2.19.81 and 
enjoying its multiple improvements.


Best, Simon

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Having trouble understanding optional and variable amount of arguments

2018-03-01 Thread Urs Liska



Am 01.03.2018 um 18:31 schrieb Stefano Troncaro:

...

@Urs, I not familiar with \with blocks, I'll take a look at the 
oll-core code and experiment a bit with it. Maybe I'll be able to help.



Look at 
https://github.com/openlilylib/scholarly/blob/master/usage-examples/annotate.ly 
to see an example for the syntax.
Actually this does what you want: an unlimited number of optional 
arguments.


%%%
\version "2.19.80"

#(define (context-mod->props mod)
   (map
    (lambda (prop)
  (cons (cadr prop) (caddr prop)))
    (ly:get-context-mods mod)))

myVariableFunc =
#(define-void-function (opts mus)((ly:context-mod? #f) ly:music?)
   (let ((props
  (if opts
  (context-mod->props opts)
  '(
 (for-each (lambda (prop)
 (ly:message "Option '~a': '~a'" (car prop) (cdr prop)))
   props)
 mus))

\relative {
  c' d e f
  \myVariableFunc \with {
    first = "Hello"
    second = 124
    third = #'((a . red)(b . blue))
    fourth = #(ly:version)
    fifth = #display
  } g1
}
 %%%

Note that instead of defining context-mod->props you could include 
"oll-core/package.ily" (or rather: if you have included anything from 
OLL you can simply use that procedure.


HTH
Urs
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Having trouble understanding optional and variable amount of arguments

2018-03-01 Thread Urs Liska



Am 01.03.2018 um 18:31 schrieb Stefano Troncaro:

...

@Urs, I not familiar with \with blocks, I'll take a look at the 
oll-core code and experiment a bit with it. Maybe I'll be able to help.



Look at 
https://github.com/openlilylib/scholarly/blob/master/usage-examples/annotate.ly 
to see an example for the syntax.
Actually this does what you want: an unlimited number of optional 
arguments.


%%%
\version "2.19.80"

\include "oll-core/package.ily"

myVariableFunc =
#(define-void-function (opts mus)((ly:context-mod? #f) ly:music?)
   (let ((props
  (if opts
  (context-mod->props opts)
  '(
 (for-each (lambda (prop)
 (ly:message "Option '~a': '~a'" (car prop) (cdr prop)))
   props)
 mus))

\relative {
  c' d e f
  \myVariableFunc \with {
    first = "Hello"
    second = 124
    third = #'((a . red)(b . blue))
    fourth = #(ly:version)
    fifth = #display
  } g1
}
 %%%
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Having trouble understanding optional and variable amount of arguments

2018-03-01 Thread Stefano Troncaro
I didn't know about \default or the dot/comma separated number/symbol
lists! I can see those being useful in some circumstances. I was thinking
about cases where an undefined amount of things different than symbols or
numbers are required, and the closest I can imagine is chaining functions
to create the illusion of a variable amount of arguments, like this:

> \version "2.19.80"
> #(define (end-list? obj)
>(and (list? obj)
> (let ((item (last obj)))
>   (and (symbol? item)
>(equal? "end" (symbol->string item))
>
> end = #(list 'end)
>
> #(define (el->curated-el el)
>(delete 'end el))
>
> untilEnd =
> #(define-void-function (proc el) (procedure? end-list?)
>(let ((curated-el (el->curated-el el)))
>  (for-each
>   (lambda (elem)
> (proc elem))
>   curated-el)))
>
> selfAppending =
> #(define-scheme-function (e-l) (end-list?)
>(let ((self-input (list (cons 1 2) (cons 3 4
>  (append self-input e-l)))
>
> selfAppendingInput =
> #(define-scheme-function (input e-l) (scheme? end-list?)
>(append (list input) e-l))
> \relative c'' {
>   c d e f
>   \untilEnd #pretty-print
> \selfAppending
> \selfAppendingInput #'(some useful input?)
> \selfAppendingInput #selfAppending
> \selfAppending
> \end
>   g a b c}
>
> This structure just happens to work for something I'm trying now but I can
see it being too narrow in general.

@Urs, I not familiar with \with blocks, I'll take a look at the oll-core
code and experiment a bit with it. Maybe I'll be able to help.

2018-03-01 4:55 GMT-03:00 David Kastrup :

> Stefano Troncaro  writes:
>
> > Thank you! I see that this is not an option then. Also, I now understand
> > why I couldn't make the optional arguments work, since I always left them
> > for last.
> >
> > Do you know if it is possible to have a flexible amount of optional
> > arguments that appear before the last mandatory one? Say, for example
> > (define-music-function (arg1 args music) (number? ??? ly:music?) where
> arg1
> > and music are mandatory, and basically everything between arg1 and the
> next
> > music expression is compacted into a list and accessed as args in the
> body
> > of the function. Not with that syntax necessarily, but something that
> > allows for that kind of usage?
>
> You know that a number or symbol list can be entered as a
> comma-separated list?
>
> --
> David Kastrup
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Including tweaks in a variable

2018-03-01 Thread Michael Stickles
Jan-Peter,


Thanks. That was the correct idea. It was driving me crazy at first because 
it still wouldn't work, until I dug through the documentation a bit more 
and found that 2.18 and 2.19 have a slightly different syntax for the 
function arguments:


2.19

===

smNote = #(define-music-function

  (m)(ly:music?)

  #{

\tweak font-size #-2 #m

  #}

)


2.18
===
smNote = #(define-music-function

  (parser location m)(ly:music?)

  #{

\tweak font-size #-2 #m

  #}

)

After adding "parser location" to the start of the arguments section, it 
works perfectly. Thanks again!



From: "Jan-Peter Voigt" 

Sent: Thursday, March 01, 2018 10:43 AM

To: lilypond-user@gnu.org

Subject: Re: Including tweaks in a variable


Hello Michael,


it works if you add \etc to the variable (in lily-dev 2.19.x IIRC):

smNote = \tweak font-size #-2 \etc

That way smNote becomes a music-function that takes the note as argument 

and the tweak is applied.

If you are using 2.18 you have to create the function like this:

smNote = #(define-music-function (m)(ly:music?) #{ \tweak font-size #-2 

#m #})


HTH

Jan-Peter


Am 01.03.2018 um 15:33 schrieb Michael Stickles:

> This should be simple, but I just can't seem to get it to work.  I'm 

> working on re-doing a lot of our church music, and use variables 

> extensively to help make the .ly files more readable. There are a lot 

> of places where one vocal part splits and we want the "secondary" 

> notes to be smaller, resulting in code like this:

>

> 1

>

> What I want to do is replace the "tweak" section with a variable, like 

> this:

>

> smNote = \tweak font-size #-2

>

> 1

>

> But this results in errors:

>

> error: unknown escaped string: `\smNote'

> error: wrong type for argument 3.  Expecting symbol list or music, 

> found #

>

> (the "smNote" definition is at the end of the variables section, and 

> the first line after the variables section is "\book {" )

>

> Some online searching came up with a few suggestions, but none of them 

> worked for me. Given that they worked for the original posters, I'd 

> guess I implemented them incorrectly, but I can't figure out what I'm 

> doing wrong. Ideas?

>

>

> ___

> lilypond-user mailing list

> lilypond-user@gnu.org

> https://lists.gnu.org/mailman/listinfo/lilypond-user


___

lilypond-user mailing list

lilypond-user@gnu.org

https://lists.gnu.org/mailman/listinfo/lilypond-user

___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Including tweaks in a variable

2018-03-01 Thread Jan-Peter Voigt

Hello Michael,

it works if you add \etc to the variable (in lily-dev 2.19.x IIRC):
smNote = \tweak font-size #-2 \etc
That way smNote becomes a music-function that takes the note as argument 
and the tweak is applied.

If you are using 2.18 you have to create the function like this:
smNote = #(define-music-function (m)(ly:music?) #{ \tweak font-size #-2 
#m #})


HTH
Jan-Peter

Am 01.03.2018 um 15:33 schrieb Michael Stickles:
This should be simple, but I just can't seem to get it to work.  I'm 
working on re-doing a lot of our church music, and use variables 
extensively to help make the .ly files more readable. There are a lot 
of places where one vocal part splits and we want the "secondary" 
notes to be smaller, resulting in code like this:


1

What I want to do is replace the "tweak" section with a variable, like 
this:


smNote = \tweak font-size #-2

1

But this results in errors:

error: unknown escaped string: `\smNote'
error: wrong type for argument 3.  Expecting symbol list or music, 
found #


(the "smNote" definition is at the end of the variables section, and 
the first line after the variables section is "\book {" )


Some online searching came up with a few suggestions, but none of them 
worked for me. Given that they worked for the original posters, I'd 
guess I implemented them incorrectly, but I can't figure out what I'm 
doing wrong. Ideas?



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Including tweaks in a variable

2018-03-01 Thread Michael Stickles
This should be simple, but I just can't seem to get it to work.  I'm 
working on re-doing a lot of our church music, and use variables 
extensively to help make the .ly files more readable. There are a lot of 
places where one vocal part splits and we want the "secondary" notes to be 
smaller, resulting in code like this:


1


What I want to do is replace the "tweak" section with a variable, like 
this:


smNote = \tweak font-size #-2


1


But this results in errors:


error: unknown escaped string: `\smNote'

error: wrong type for argument 3.  Expecting symbol list or music, 
found 
#


(the "smNote" definition is at the end of the variables section, and the 
first line after the variables section is "\book {" )


Some online searching came up with a few suggestions, but none of them 
worked for me. Given that they worked for the original posters, I'd guess I 
implemented them incorrectly, but I can't figure out what I'm doing wrong. 
Ideas?



___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Put the rests in cross-staff between staves

2018-03-01 Thread Paolo Prete
Hello,
in a cross-staff bar, is there a simple way to put the rests in the middle 
between the two staves?
Currently, I use that:
\override Rest #'staff-position = #-12

...but I wonder if is there a better way to obtain the same result
Thanks___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Cross-staff question

2018-03-01 Thread Urs Liska



Am 01.03.2018 um 11:36 schrieb Paolo Prete:

Hello,

is there another (easy) way to obtain the same result of this snippet:

LilyPond Score 





LilyPond Score

LilyPond Score made using LilyBin.





without overriding the stem's length (\override Stem #'length = #30) ?



Yes: http://lilybin.com/gaobfy/2

See 
http://lilypond.org/doc/v2.19/Documentation/notation/common-notation-for-keyboards.en.html#cross_002dstaff-stems
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Cross-staff question

2018-03-01 Thread Paolo Prete
Hello,
is there another (easy) way to obtain the same result of this snippet:
LilyPond Score

  
|  
|   |  
LilyPond Score
 LilyPond Score made using LilyBin.  |  |

  |

 

without overriding the stem's length (\override Stem #'length = #30)  ?



Thanks,
Paolo___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Edition Engraver -- multiple editions

2018-03-01 Thread Craig Dabelstein
Jan-Peter,

Thank you so much. Now I get it!

I'm working on critical editions of band music from the French Revolution
-- at the moment an Ouverture by Charles-Simon Catel. The edition engraver
has just become invaluable to me.

All the best,

Craig


On 1 March 2018 at 18:14, Jan-Peter Voigt  wrote:

> Hi Craig,
>
> you remind me to rethink wording/naming of the different identifiers!
>
> In your example you point on two different ID-types. With \addEdition you
> add one target-ID to the current compilation. You can add multiple targets
> like fullscore, global-mods, original-page-breaks at once.
>
> With \editionID inside a layout-context block you assign a
> context-identifier. There is one context-identifier - one might call it
> context-address - per context-instance.
> So the score will have a contextID like perhaps:
>
> \layout {
>   \context {
> \Score
> \editionID ##f bwv.247.marco.11.choral
>   }
> }
>
> and the different context are created with e.g.
> \new Staff \with { \editionID flute } << ... >>
> so this Staff receives the ID `bwv.247.marco.11.choral.flute`.
> This should be stable across all compilations for all targets.
> Now you can enter modifications like
> \editionMod score 2 3/4 bwv.247.marco.11.choral.Staff  score>
> \editionMod part 2 3/4 bwv.247.marco.11.choral.Staff 
> \editionMod global 2 3/4 bwv.247.marco.11.choral.Staff 
>
> (you can shorten this significantly with a variable!)
>
> Inside the respective files for the core and the part you can add targets
> as you like:
> \addEdition score
> \addEdition global
>
> The EE will apply all modifications for all active targets. In the part
> files you might use the shorter variant
> \setEditions part.violin.global
>
> To activate the "part", "violin" and "global" targets. If lilypond reads
> the mods for the score while compiling the violin part, it doesn't matter,
> as long as the score-target is not active.
>
> The edition-engraver is using pointers/IDs/addresses in three dimensions:
> 1. the target of the current compilation-run
> 2. the context-address
> 3. the timestep
>
> Right now target IDs can not be changed within a file/a compilation for
> different scores. So you will have one file for the fullscore and one for
> each part. These files will include the music from other files and then
> apply the mods needed for the current target.
>
> HTH
> Jan-Peter
>
> Btw.:
> One of the projects I have been working on over the last two years is
> typesetting a new reconstruction of the "Markus-Passion" from Johann
> Sebastian Bach (Ortus-Verlag/Berlin - fullscore ISMN 979-0-502340-65-0,
> piano reduction ISMN 979-0-502340-66-7, choir part ISMN 979-0-502340-67-4,
> instrumental parts ISMN 979-0-502340-68-1)
> by Andreas Fischer (St.Katharinen, Hamburg, Germany).
> I am going to write a description of this project when my schedule allows.
>
>
>
>
> Am 01.03.2018 um 02:34 schrieb Craig Dabelstein:
>
>> Hi all,
>>
>> I thought I had my head around the edition engraver but I'm going wrong
>> somewhere. If I want to have different mods for a score, the parts, and a
>> selection of mods applicable to both the score and the parts, do I need to
>> create three different editions such as this:
>>
>> \addEdition score
>> \addEdition parts
>> \addEdition scoreandparts
>>
>> If so, how do I switch between them?
>>
>> I was trying to use different editionIDs for everything but it's not
>> working. Can a score have multiple IDs such as:
>>
>> \layout{
>> \context {
>>  \Score
>>  \editionID ##f score
>>  \editionID ##f both
>>  }
>> }
>>
>> Thanks in advance,
>>
>> Craig
>>
>> --
>> *Craig Dabelstein*
>> Maxime's Music
>> craig.dabelst...@gmail.com 
>> /http://maximesmusic.com/
>>
>>
>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>
>>
>
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user
>



-- 
*Craig Dabelstein*
Maxime's Music
craig.dabelst...@gmail.com
*http://maximesmusic.com *
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: ScholarLy and Latex

2018-03-01 Thread Urs Liska

Hi Craig,


Am 23.02.2018 um 10:07 schrieb Craig Dabelstein:

Hi Lilyponders,

I'm having a minor problem with getting my ScholarLy inp file to work 
with Latex. The Latex output for each annotation looks like this:


\criticalRemark
   [grob={DynamicText},
    grob-location={Can't display grob location yet},
    grob-type={DynamicText},
    input-file-name={fluteI.ily},
    context-id={Flauto 1},
location={/Users//Maximes_Music/Projects/MM0110/Hallager/critical 
edition/Parts/../Notes/fluteI.ily 55:2:2},

    type={critical-remark},
    message={Added missing \lilyDynamics{p}}]
    {18}{6}
    {Flauto 1}
    {DynamicText}

And within my Latex file each entry is displayed with this code:

\noindent
\theAnnotationNo\,)\\
\textit{(#7)}\\
\ifthenelse{\equal{#2}{\value{CurrentMeasure}}}
{}{\textbf{M. #2},
\setcounter{CurrentMeasure}{#2}}%
beat #3\\
#4\\
Affects: #5\\
``#6''}

My problem is that Latex won't display the #6 (the contents of the 
message field). It is displaying the quotation marks but just empty 
space in between. If I cut and paste the message field and add it to 
the bottom of the code it displays perfectly correctly:


\criticalRemark
 [grob={DynamicText},
  grob-location={Can't display grob location yet},
  grob-type={DynamicText},
  input-file-name={fluteI.ily},
  context-id={Flauto 1},
location={/Users//Maximes_Music/Projects/MM0110/Hallager/critical 
edition/Parts/../Notes/fluteI.ily 55:2:2},

  type={critical-remark},
  message={Added missing \lilyDynamics{p}}]
  {18}{6}
  {Flauto 1}
  {DynamicText}
  {Added missing \lilyDynamics{p}}


Any ideas where I could be going wrong?



Not yet, but could you please send a MWE, i.e. a complete file, with 
maybe that critical remark just added in the file (instead of inputted)? 
What exactly is context of the code that displays the annotation, i.e. 
where's the complete definition of the "\criticalRemark" macro?


Urs


Thanks in advance,

Craig


--
*Craig Dabelstein*
Maxime's Music
craig.dabelst...@gmail.com 
/http://maximesmusic.com/


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Edition Engraver -- multiple editions

2018-03-01 Thread Jan-Peter Voigt

Hi Craig,

you remind me to rethink wording/naming of the different identifiers!

In your example you point on two different ID-types. With \addEdition 
you add one target-ID to the current compilation. You can add multiple 
targets like fullscore, global-mods, original-page-breaks at once.


With \editionID inside a layout-context block you assign a 
context-identifier. There is one context-identifier - one might call it 
context-address - per context-instance.

So the score will have a contextID like perhaps:

\layout {
  \context {
\Score
\editionID ##f bwv.247.marco.11.choral
  }
}

and the different context are created with e.g.
\new Staff \with { \editionID flute } << ... >>
so this Staff receives the ID `bwv.247.marco.11.choral.flute`.
This should be stable across all compilations for all targets.
Now you can enter modifications like
\editionMod score 2 3/4 bwv.247.marco.11.choral.Staff score>

\editionMod part 2 3/4 bwv.247.marco.11.choral.Staff 
\editionMod global 2 3/4 bwv.247.marco.11.choral.Staff 

(you can shorten this significantly with a variable!)

Inside the respective files for the core and the part you can add 
targets as you like:

\addEdition score
\addEdition global

The EE will apply all modifications for all active targets. In the part 
files you might use the shorter variant

\setEditions part.violin.global

To activate the "part", "violin" and "global" targets. If lilypond reads 
the mods for the score while compiling the violin part, it doesn't 
matter, as long as the score-target is not active.


The edition-engraver is using pointers/IDs/addresses in three dimensions:
1. the target of the current compilation-run
2. the context-address
3. the timestep

Right now target IDs can not be changed within a file/a compilation for 
different scores. So you will have one file for the fullscore and one 
for each part. These files will include the music from other files and 
then apply the mods needed for the current target.


HTH
Jan-Peter

Btw.:
One of the projects I have been working on over the last two years is 
typesetting a new reconstruction of the "Markus-Passion" from Johann 
Sebastian Bach (Ortus-Verlag/Berlin - fullscore ISMN 979-0-502340-65-0, 
piano reduction ISMN 979-0-502340-66-7, choir part ISMN 
979-0-502340-67-4, instrumental parts ISMN 979-0-502340-68-1)

by Andreas Fischer (St.Katharinen, Hamburg, Germany).
I am going to write a description of this project when my schedule allows.




Am 01.03.2018 um 02:34 schrieb Craig Dabelstein:

Hi all,

I thought I had my head around the edition engraver but I'm going wrong 
somewhere. If I want to have different mods for a score, the parts, and 
a selection of mods applicable to both the score and the parts, do I 
need to create three different editions such as this:


\addEdition score
\addEdition parts
\addEdition scoreandparts

If so, how do I switch between them?

I was trying to use different editionIDs for everything but it's not 
working. Can a score have multiple IDs such as:


\layout{
\context {
     \Score
     \editionID ##f score
     \editionID ##f both
     }
}

Thanks in advance,

Craig

--
*Craig Dabelstein*
Maxime's Music
craig.dabelst...@gmail.com 
/http://maximesmusic.com/


___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user




___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user