Re: Curve in a macro?

2017-09-16 Thread Kieren MacMillan
Hi,

> I'm quite puzzled by the
> fact that the closing cannot be in the macro…

I'm sure it can be — for example (but not recommended):

\version "2.19.65"

curve =
  #(define-music-function (parser location curved) (ly:music?)
#{
  \once \override Slur.control-points = #'((0.5 . 4) (1 . 6) (2 . 6) (2.5 . 
4))
  s8*0( $curved s8*0)
#})

{ \curve { b' c'' } \curve { a' c'' b' f' g' }  }

Cheers,
Kieren.


Kieren MacMillan, composer
‣ website: www.kierenmacmillan.info
‣ email: i...@kierenmacmillan.info


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


Re: Curve in a macro?

2017-09-16 Thread David Kastrup
M Sun  writes:

> Hi list,
>
> If I have a note and a curve like this:
>
>   b8-\tweak control-points #'((0.5 . 4) (1 . 6) (2 . 6) (2.5 . 4)) ( <> )
>
> How can I make the curve into a macro, so that I can write "b8 \curve"
> or "\curve b8"?

It's a bad idea to turn this into a single macro/command since such a
command does not "scale": you cannot possibly use it anywhere than as
the last part of an expression and before the next expression, and
that's only possible once since the result is a sequential expression no
longer able to accept an articulation, certainly not so for its _first_
element.

Current master (to become 2.21.0) can combine stuff without using Scheme
so you could write

\version "2.21.0"
curve =
#(define-music-function (arg) (ly:music?)
  #{ #arg \tweak control-points #'((0.5 . 4) (1 . 6) (2 . 6) (2.5 . 4))
  ( <> ) #})

and it would work as intended for \curve b8 .  However, it would be a
lousy user interface exactly because you could never combine it with a
second, similar command or expression: when trying to do that, the
second articulation would attach itself to the <> rather than the b8 .

So while 2.21.0 will be able to execute this as desired, the desire is
still imprudent.

-- 
David Kastrup

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


Re: \mark and slur

2017-09-16 Thread David Kastrup
Thomas Morley  writes:

> Other 5181-topic:
> In your patch description you wrote about the problem with
> c-\single \dynamicUp \f
>
> Here I can't follow, compiling this with 2.18.2 and current master
> returns no noticeable difference for me, even using
> display(Lily)Music.
> May be I overlooked something.
> Could you explain a bit more verbose?

>From the commit message:

Issue 5181/2: Allow lone postevents in braced lists

Reattaching post-events to a preceding music variable or music
function call (or expression) is often desired but was unsupported.

This commit caters for the support in braced lists.

The problem with supporting such expressions _everywhere_ is that it
breaks the use of

The grammar used here is slightly wrong because it uses indicative mode
for an irrealis.  It should rather be:

The problem with supporting such expressions _everywhere_ would be that
it would break the use of ... since then \f would be attached to
\dynamicUp instead of ...

c-\single \dynamicUp \f

since then \f is attached to \dynamicUp instead of becoming the second
argument to \single, due to operator precedence.  So reattaching lone
post-events is only done with lower precedence in selected constructs.

This part of the commit message explains why it has not been possible to
support things like

xxx = c4

{ \void \displayLilyMusic \xxx \f }

even while \xxx \f now works.  If the grammar precendences in this case
would have combined \xxx \f, they would also combine \dynamicUp \f in
the use case involving \single since \dynamicUp is a bona-fide
(non-post-event) music expression.

So I just committed with unsuitable grammar for a hypothetical.  You
will not be able to see the described problem with anything committed to
the central repository, but there may be a few instances in the reflog
of my personal repository.  Basically I wanted to commit an
implementation that happened not to pass the regtests, so I had to scrap
that approach after convincing myself that this could not otherwise be
made to work.

-- 
David Kastrup

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


Re: \mark and slur

2017-09-16 Thread Thomas Morley
2017-09-15 1:11 GMT+02:00 David Kastrup :
> Thomas Morley  writes:

>>> Frankly, what does it even _mean_ to use a
>>> particular righthand finger and string for a non-existing note?
>>
>> Well, that hold as well for:
>> { -1 -- d' }
>> but this one works.
>
> That's because historically you could do
>
> -1-2-3
>
> and consequently _equivalently_
>
> << 
>s-1-2-3 >>
>
> either of which do the formatting differently from , using
> the Fingering_engraver rather than the New_fingering_engraver .
>
> But this historic crap is so unrelated to issue 5181 that I am not
> interested in discussing or addressing it in this context.  Issue 5181
> does not touch it.

Indeed.
I didn't intend to object, just to point to possible expectations.
Also, adding post-events to non-existing notes does not make a lot of
sense, musically speaking, yes.
But LilyPond accepts already
{ <>^.\fermata }
Ok, the output is bad, but the "does it make sense?"-argument is then
not that strong, imho.


Other 5181-topic:
In your patch description you wrote about the problem with
c-\single \dynamicUp \f

Here I can't follow, compiling this with 2.18.2 and current master
returns no noticeable difference for me, even using
display(Lily)Music.
May be I overlooked something.
Could you explain a bit more verbose?


Cheers,
  Harm

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


Re: \mark and slur

2017-09-16 Thread David Kastrup
Thomas Morley  writes:

> 2017-09-15 1:11 GMT+02:00 David Kastrup :
>> Thomas Morley  writes:
>
 Frankly, what does it even _mean_ to use a
 particular righthand finger and string for a non-existing note?
>>>
>>> Well, that hold as well for:
>>> { -1 -- d' }
>>> but this one works.
>>
>> That's because historically you could do
>>
>> -1-2-3
>>
>> and consequently _equivalently_
>>
>> << 
>>s-1-2-3 >>
>>
>> either of which do the formatting differently from , using
>> the Fingering_engraver rather than the New_fingering_engraver .
>>
>> But this historic crap is so unrelated to issue 5181 that I am not
>> interested in discussing or addressing it in this context.  Issue 5181
>> does not touch it.
>
> Indeed.
> I didn't intend to object, just to point to possible expectations.
> Also, adding post-events to non-existing notes does not make a lot of
> sense, musically speaking, yes.
> But LilyPond accepts already
> { <>^.\fermata }
> Ok, the output is bad, but the "does it make sense?"-argument is then
> not that strong, imho.

I was not talking about post-events in general (which include things
like \< which are partly even positioned deliberately between notes).
But a righthand finger indication or a string number?

Might make sense when putting such execution instructions into a
separate music variable, but they are mostly used for guitar and other
quite explicitly polyphonic instruments so the note/event association
seems important.

-- 
David Kastrup

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


Re: \mark and slur

2017-09-16 Thread David Kastrup
David Kastrup  writes:

> Noeck  writes:
>
>> Hi,
>>
>>> Note or chord or rest or skip or bass figure or cluster note or lyrics
>>> or multimeasure rest.  Something like that.
>>
>> :)
>>
>>> Slur or phrasing slur or absolute dynamic or annote output or arpeggio
>>> or articulation or beam or beam forbid or bendafter or crescendo or
>>> decrescendo or episema or, well, the alphabet is long yet.
>>
>> :) Well that's what I feared.
>>
>>> SlurEvent has the advantage that it is a property of the music
>>> expression one can get and print comparatively easy.
>>
>> I expected something like that. So it would be an easy and helpful
>> improvement of the message. One could also automatically remove the
>> "Event" part.  But there's not much gain.
>
> Slur is a grob type.  slur-event is a stream event class.  At the point
> the error message is triggered, we are processing music expressions.
> For someone without a clue about LilyPond internals, SlurEvent is not
> harder to decipher than Slur, and someone versed in LilyPond will be
> quite confused to read about a Slur in this context.
>
> So there's not just "not much gain" but only confusion to be had by
> trying to masquerade the type of the music expression.  If we try to
> substitute technical terms by handwaving, we are not likely to match the
> hand size of every LilyPond user well.

Further bikeshedding on
, code review at
.

-- 
David Kastrup

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


Re: \mark and slur

2017-09-16 Thread Thomas Morley
2017-09-16 13:28 GMT+02:00 David Kastrup :
> Thomas Morley  writes:
>
>> Other 5181-topic:
>> In your patch description you wrote about the problem with
>> c-\single \dynamicUp \f
>>
>> Here I can't follow, compiling this with 2.18.2 and current master
>> returns no noticeable difference for me, even using
>> display(Lily)Music.
>> May be I overlooked something.
>> Could you explain a bit more verbose?
>
> From the commit message:
>
> Issue 5181/2: Allow lone postevents in braced lists
>
> Reattaching post-events to a preceding music variable or music
> function call (or expression) is often desired but was unsupported.
>
> This commit caters for the support in braced lists.
>
> The problem with supporting such expressions _everywhere_ is that it
> breaks the use of
>
> The grammar used here is slightly wrong because it uses indicative mode
> for an irrealis.  It should rather be:
>
> The problem with supporting such expressions _everywhere_ would be that
> it would break the use of ... since then \f would be attached to
> \dynamicUp instead of ...
>
> c-\single \dynamicUp \f
>
> since then \f is attached to \dynamicUp instead of becoming the second
> argument to \single, due to operator precedence.  So reattaching lone
> post-events is only done with lower precedence in selected constructs.
>
> This part of the commit message explains why it has not been possible to
> support things like
>
> xxx = c4
>
> { \void \displayLilyMusic \xxx \f }
>
> even while \xxx \f now works.  If the grammar precendences in this case
> would have combined \xxx \f, they would also combine \dynamicUp \f in
> the use case involving \single since \dynamicUp is a bona-fide
> (non-post-event) music expression.
>
> So I just committed with unsuitable grammar for a hypothetical.  You
> will not be able to see the described problem with anything committed to
> the central repository, but there may be a few instances in the reflog
> of my personal repository.  Basically I wanted to commit an
> implementation that happened not to pass the regtests, so I had to scrap
> that approach after convincing myself that this could not otherwise be
> made to work.
>
> --
> David Kastrup

Thanks for the explanations.

(1)
In this thread we mostly discussed what happens for examples like:
{ -"foo" r4 }
especially which sort of warning should be printed.
(I'm fine with 5194 and will comment in this way)
But let me focus on other parts:

(2)
If I understand correctly, with this patch things like below are now possible:

xxx = c4
{ \xxx -- }

and

foo =
#(define-music-function (mus)(ly:music?)
  (music-map
(lambda (m)
  (if (music-is-of-type? m 'note-event)
  #{ $m -. #}
  m))
mus)
  #{
\new ChordNames {
\tweak self-alignment-X #LEFT
  \mark "This function is a limited demo, don't use it for any
other stuff."
}
$mus
  #})

\foo \new Staff \relative c' { c d e f g a b c }

Which is a big, big goody!

(3)
In the light of your explanations above I was afraid the following
would fail (meaning the displayed expression wouldn't be complete):

buzz =
#(define-music-function (mus)(ly:music?)
  (music-map
(lambda (m)
  (if (music-is-of-type? m 'note-event)
  (begin
(display-scheme-music (ly:music-property m 'articulations))
m)
  m))
mus)
  #{
\new ChordNames {
\tweak self-alignment-X #LEFT
  \mark "This function is a limited demo, don't use it for any
other stuff."
}
$mus
  #})

yyy = c4

\buzz \new Staff { \yyy -\single \dynamicUp \f }

But as far as I can tell, all works.

So I can live with the problem of

xxx = c4
{ \void \displayLilyMusic \xxx \f }



Great stuff!!


Cheers,
  Harm

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


Re: \mark and slur

2017-09-16 Thread David Kastrup
Thomas Morley  writes:

> If I understand correctly, with this patch [issue 5581] things like
> below are now possible:
>
> xxx = c4
> { \xxx -- }

Yes.

> and
>
> foo =
> #(define-music-function (mus)(ly:music?)
>   (music-map
> (lambda (m)
>   (if (music-is-of-type? m 'note-event)
>   #{ $m -. #}

Yes.  #m -. should be fine as well.

>   m))
> mus)
>   #{
> \new ChordNames {
> \tweak self-alignment-X #LEFT
>   \mark "This function is a limited demo, don't use it for any
> other stuff."
> }
> $mus
>   #})
>
> \foo \new Staff \relative c' { c d e f g a b c }
>
> Which is a big, big goody!

Well, it's mostly convenience that allows using LilyPond syntax instead
of Scheme.

> (3)
> In the light of your explanations above I was afraid the following
> would fail (meaning the displayed expression wouldn't be complete):

Why?

> buzz =
> #(define-music-function (mus)(ly:music?)
>   (music-map
> (lambda (m)
>   (if (music-is-of-type? m 'note-event)
>   (begin
> (display-scheme-music (ly:music-property m 'articulations))
> m)
>   m))
> mus)
>   #{
> \new ChordNames {
> \tweak self-alignment-X #LEFT
>   \mark "This function is a limited demo, don't use it for any
> other stuff."
> }
> $mus
>   #})
>
> yyy = c4
>
> \buzz \new Staff { \yyy -\single \dynamicUp \f }

Try { \buzz \yyy -\single \dynamicUp \f } or even { \buzz \yyy \f }

\buzz \yyy will be interpreted _before_ \single \dynamicUp \f is
combined with c4 .

> But as far as I can tell, all works.

No.  You just used input where { } could already reattach the
post-events that did not make it at first try.

> So I can live with the problem of
>
> xxx = c4
> { \void \displayLilyMusic \xxx \f }

It's more extensive than that, but the problem can be contained using
sequential music.

-- 
David Kastrup

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


Re: \mark and slur

2017-09-16 Thread David Kastrup
David Kastrup  writes:

> Thomas Morley  writes:
>
>> If I understand correctly, with this patch [issue 5581] things like
>> below are now possible:
>>
>> xxx = c4
>> { \xxx -- }
>
> Yes.
>
>> and

>>   #{ $m -. #}
>
> Yes.  #m -. should be fine as well.
>>
>> Which is a big, big goody!
>
> Well, it's mostly convenience that allows using LilyPond syntax instead
> of Scheme.

And, uh, it is lacking regtests and documentation.  Because someone for
some reason finds it less challenging to implement functionality than
inventing examples using it...

If you are testing things out anyway, at least regtests should not be
too far away...

-- 
David Kastrup

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


scheme-question: restricted list inserting

2017-09-16 Thread Thomas Morley
Hi all,

what's the best (less expensive) method to insert elements only at the
head of a list and between first and second element of said list.
But don't insert an element at list-end if the list is of length 1.

I do have:

(define (list-insert-first-and-third lst arg1 arg2)
  (if (pair? lst)
  (append
(list arg1)
(list (car lst))
(if (pair? (cdr lst))
(list arg2)
'())
(cdr lst))
  lst))

(display (list-insert-first-and-third '(1 2 3 4 5) "a" "b"))

--> (a 1 b 2 3 4 5)

This looks clumsy, though.

Any hint for a better code?


Thanks,
  Harm

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


Re: \mark and slur

2017-09-16 Thread Thomas Morley
2017-09-16 21:49 GMT+02:00 David Kastrup :
> David Kastrup  writes:
>
>> Thomas Morley  writes:
>>
>>> If I understand correctly, with this patch [issue 5581] things like
>>> below are now possible:
>>>
>>> xxx = c4
>>> { \xxx -- }
>>
>> Yes.
>>
>>> and
>
>>>   #{ $m -. #}
>>
>> Yes.  #m -. should be fine as well.
>>>
>>> Which is a big, big goody!
>>
>> Well, it's mostly convenience that allows using LilyPond syntax instead
>> of Scheme.
>
> And, uh, it is lacking regtests and documentation.  Because someone for
> some reason finds it less challenging to implement functionality than
> inventing examples using it...

Absolutely no idea which person you may have in mind ...

> If you are testing things out anyway, at least regtests should not be
> too far away...

Will do, at least for regtests and as soon as I find some time.

Cheers,
  Harm

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


Re: frescobaldi print

2017-09-16 Thread Gianmaria Lari
I forgot to mention I'm using Windows 10.

No, Ctrl-P or file/print music does not work and I don't get any error.
g.


On 14 September 2017 at 17:42, Malte Meyn  wrote:

>
>
> Am 14.09.2017 um 12:49 schrieb Gianmaria Lari:
>
>> Sorry to ask this that probably is a very trivial question, but I have not
>> able to find a solution online.
>>
>> Is there any way to print the pdf file generated by lilypond directly from
>> Frescobaldi?
>>
>
> File → Print music … or Ctrl+P as in most applications.
>
> ___
> 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: scheme-question: restricted list inserting

2017-09-16 Thread David Kastrup
Thomas Morley  writes:

> Hi all,
>
> what's the best (less expensive) method to insert elements only at the
> head of a list and between first and second element of said list.
> But don't insert an element at list-end if the list is of length 1.
>
> I do have:
>
> (define (list-insert-first-and-third lst arg1 arg2)
>   (if (pair? lst)
>   (append
> (list arg1)
> (list (car lst))
> (if (pair? (cdr lst))
> (list arg2)
> '())
> (cdr lst))
>   lst))
>
> (display (list-insert-first-and-third '(1 2 3 4 5) "a" "b"))
>
> --> (a 1 b 2 3 4 5)
>
> This looks clumsy, though.
>
> Any hint for a better code?

(define (list-insert-first-and-third lst arg1 . rest)
  (if (pair? lst)
  (cons* arg1 (car lst)
 (if (pair? rest)
 (apply list-insert-first-and-third (cdr lst) (cdr rest))
 (cdr lst)))
  lst))

Something like that?  It's a bit more generic than you asked for, but so
what.

At any rate, it would appear that cons* would be a good building-block
even in your non-recursive approach.

-- 
David Kastrup

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


Problem with Codas

2017-09-16 Thread Shamus Hammons
http://shamusworld.gotdns.org/music/one-small-child.pdf (see page 2,
bars 33-34)

I have a dream, that one day Lilypond will make codas first class
citizens instead of having to exist as a series of ugly hacks. In that
day, I could simply write \coda (with maybe some options) and Lilypond
would automagically do the right thing. Alas, that day is not today. :-(

In trying to make nice charts with Lilypond, I keep running into this
issue. It works fine for the most part, though it's still an ugly hack
that I have to put in multiple places for my charts to look right; but
when it fails it's frustrating beyond belief (for me, and, I suspect,
others).

I can hear the replies already: 'why don't you just put a \break in
there, why don't you just do x, y, and z to work around it?' But this is
the problem: the hacks are inconsistent, and while they might work in
some places they don't in others (like you see on page two, where the
4/4 time signature should be on bar 34 but instead is floating out in
space, and spurious bars are floating on the edge of the page). If you
somehow manage to make a change where the coda falls in the middle of
page, another change will push it to the side and screw things up.

So this my my call for an official path within the internals of Lilypond
to support codas for real without having to resort to ugly hacks that
work only some of the time (depending on where in the line they fall). I
am willing to undertake the coding of this feature, if someone can point
me in the right direction. But this needs to change. I am very
surprised, really, that such a common musical construct has no official
support in Lilypond.

\version "2.19.0"
\include "pop-chords.ly"
\include "english.ly"

% Good sizes are 16, 18, & 20 (11, 13, 14, 23, 26)
staffSize = #20
#(set-default-paper-size "letter")
#(set-global-staff-size staffSize)
#(ly:set-option (quote no-point-and-click))

\header
{
	title= \markup { \override #'(font-family . sans) \fontsize #3.5 "One Small Child" }
	composer = \markup { \override #'(font-family . sans) \fontsize #1.3 "D. Meece" }
	arranger = \markup { \override #'(font-family . sans) \fontsize #1.3 "arr. Ed Smart" }
	tagline  = $(string-append "Engraved by JLH and Lilypond " (lilypond-version))
}


%
% Song's structure
%
Global =
{
	\key d \minor
	\numericTimeSignature
	\time 4/4

	% Intro

	s1*4 \bar "||"   % 1-4

	% Verse

	\mark \markup { \override #'(font-family . sans) { \box { A } } }

	s1*9 |   % 5-13

	\once \override Score.RehearsalMark #'self-alignment-X = #right
	\mark \markup { { To Coda } \hspace #0.5 \musicglyph #"scripts.coda" }

	s1 \bar ".|:-||"   % 14

	\repeat volta 2
	{
		% Verse

		\mark \markup { \override #'(font-family . sans) { \box { B } } }

		s1*10 \bar "||"   % 15-24

		% Bridge

		\mark \markup { \override #'(font-family . sans) { \box { C } } }

		s1*7 |   % 25-31
	}
	\alternative
	{
		{
			\time 6/4 s1. |   % 32
		}
		{
			\time 6/4 s1. \bar "||"   % 33
		}
	}

	\time 4/4
	\once \override Score.RehearsalMark #'self-alignment-X = #right
	\mark \markup { \hspace #0.0 \raise #1.0 \italic { D.C. al Coda } }

	% Coda

	% blank measure between last measure and coda
%	\stopStaff s1 \bar "" \startStaff   % That removed the spurious floating bar line from line break
	\stopStaff s1 \startStaff
%	\break % Meh
	\set Score.currentBarNumber = #34

	\once \override Score.RehearsalMark #'self-alignment-X = #left
	\mark \markup { { \musicglyph #"scripts.coda" } "Coda" }

	s1*5 \bar "|."   % 34-38
}


%
% Lead vocal
%
LeadVox = \relative c'
{
	% Intro

	s1*4 |% 1-4

	% Verse

	d4 a' g f8 e |% 5
	d4 e8 f e ( d ) c4 |% 6
	d4 a' c c8 c |% 7
	b8 a g4 a2 |% 8
	d,4 a' g f8 e |% 9
	d4 e8 f e ( d ) c4 |% 10
	d4 a' g f8 e |% 11
	d1 |% 12
	d4 a' g f8 e |% 13
	d2. r4 |% 14

	% Verse

	d4 a' g f8 e |% 15
	d4 e8 ( f ) e ( d ) c4 |% 16
	d4 a' c c8 c |% 17
	b8 a g4 a2 |% 18
	d,4 a' g f8 e |% 19
	d4 e8 f e d c4 |% 20
	d4 a' g f8 e |% 21
	d4 ( a' g ) f8 ( e |% 22
	d4 a' g f8 e |% 23
	d1 ) |% 24

	% Bridge

	a'4 a g a8 bf |% 25
	a4 bf8 a g4 c, |% 26
	a'4 a g c |% 27
	f,8 ( e ) d4 c2 |% 28
	a'4 a g c |% 29
	a4 bf8 a g4 c, |% 30
	a'4 a g c |% 31

	f,8 ( e ) d4 c1 |% 32

	f8 ( e ) d4 c1 |% 33

	% Coda

	s1   % For blank measure

	d1 |% 34
	d4 a' g-\fermata f8 c' |   % 35
	d1 |   % 36
	s1*2 |% 37-38
}


LeadVoxText = \lyricmode
{
	One small child in a land of a thou -- _ sand,
	One small dream of a sav -- ior to -- night.
	One small hand reach -- ing out to the star -- _ light,
	One small ci -- ty of life.
	One small ci -- ty of life.

	One king bring -- ing his gold and _ ri -- _ ches,
	One king rul -- ing an ar -- my of might,
	One king kneel -- ing with in -- cense and can -- dle -- light,
	One King bring -- ing us life. __ _ _
	Oh, __ _ _ _ _ _ _ _

	See him ly -- ing a cra -- dle be -- neath him,
	See him smil -- ing in _ the stall.
	See his moth -- er prai

Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread Chris Crossen
Hi all,

I am the co-founder of a small software company (www.lyricalapps.com) that is 
seeking LilyPond engravers for paid work.

We have an Android app, ScoreMaestro (www.scoremaestro.com), that manages music 
scores generated from LilyPond. ScoreMaestro users buy their scores as in-app 
purchases. We also offer a service to produce digital sheet music as Amazon 
Kindle Books and Apple iBooks. We can produce these eBooks from LilyPond, 
Sibelius, or Finale sources. But, if a client wants an eBook produced from a 
PDF or paper score, we engrave it with LilyPond. We outsource the LilyPond 
engraving and the person we normally use doesn’t have the time to handle all 
our work.

If you are interested in doing some engraving for us, email me privately at 
ebo...@scoremaestro.com with your rates.

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


Re: \mark and slur

2017-09-16 Thread David Kastrup
Thomas Morley  writes:

> 2017-09-16 21:49 GMT+02:00 David Kastrup :
>
>> And, uh, it is lacking regtests and documentation.  Because someone for
>> some reason finds it less challenging to implement functionality than
>> inventing examples using it...
>
> Absolutely no idea which person you may have in mind ...
>
>> If you are testing things out anyway, at least regtests should not be
>> too far away...
>
> Will do, at least for regtests and as soon as I find some time.

Thanks.  Sorry for my mental laziness.

-- 
David Kastrup

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


Re: Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread Sfs
On 9/16/2017 4:20 PM, Chris Crossen wrote:
> Hi all,
>
> I am the co-founder of a small software company (www.lyricalapps.com) that is 
> seeking LilyPond engravers for paid work.
>
> We have an Android app, ScoreMaestro (www.scoremaestro.com), that manages 
> music scores generated from LilyPond. ScoreMaestro users buy their scores as 
> in-app purchases. If a client wants an eBook produced from a PDF or paper 
> score, we engrave it with LilyPond. We outsource the LilyPond engraving and 
> the person we normally use doesn’t have the time to handle all our work.
>
> If you are interested in doing some engraving for us, email me privately at 
> ebo...@scoremaestro.com with your rates.
>
> Thanks,
> Chris
>

Hello Chris,

Can you give us a little more info on the type of projects you have and
more about what you're looking for - full time/part time, contract, etc?
Thanks!



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


Re: Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread SoundsFromSound
Chris Crossen wrote
> Hi all,
> 
> I am the co-founder of a small software company (www.lyricalapps.com) that
> is seeking LilyPond engravers for paid work.
> 
> We have an Android app, ScoreMaestro (www.scoremaestro.com), that manages
> music scores generated from LilyPond. ScoreMaestro users buy their scores
> as in-app purchases. We also offer a service to produce digital sheet
> music as Amazon Kindle Books and Apple iBooks. We can produce these eBooks
> from LilyPond, Sibelius, or Finale sources. But, if a client wants an
> eBook produced from a PDF or paper score, we engrave it with LilyPond. We
> outsource the LilyPond engraving and the person we normally use doesn’t
> have the time to handle all our work.
> 
> If you are interested in doing some engraving for us, email me privately
> at 

> ebooks@

>  with your rates.
> 
> Thanks,
> Chris

Hello Chris,

Can you give us a little more info on the type of projects you have and more
about what you're looking for - full time/part time, contract, scope, etc?

Thanks!



-
composer | sound designer | asmr artist 
lilypond video tutorials --> http://bit.ly/bcl-lilypond
--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

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


Re: Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread Ben

On 9/16/2017 4:20 PM, Chris Crossen wrote:
> Hi all,
>
> I am the co-founder of a small software company (www.lyricalapps.com) that is 
> seeking LilyPond engravers for paid work.
>
> We have an Android app, ScoreMaestro (www.scoremaestro.com), that manages 
> music scores generated from LilyPond. ScoreMaestro users buy their scores as 
> in-app purchases...But, if a client wants an eBook produced from a PDF or 
> paper score, we engrave it with LilyPond. We outsource the LilyPond engraving 
> and the person we normally use doesn’t have the time to handle all our work.
>
> If you are interested in doing some engraving for us, email me privately at 
> ebo...@scoremaestro.com with your rates.
>
> Thanks,
> Chris
> ___
> lilypond-user mailing list
> lilypond-user@gnu.org
> https://lists.gnu.org/mailman/listinfo/lilypond-user

Hello Chris,

Can you give us a little more info on the type of projects you have and more 
about what you're looking for:
full time/part time, contract, scope, etc?

Thanks!


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


Re: Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread Chris Crossen

>> But, if a client wants an eBook produced from a PDF or paper score, we 
>> engrave it with LilyPond. We outsource the LilyPond engraving and the person 
>> we normally use doesn’t have the time to handle all our work.
>> 
>> If you are interested in doing some engraving for us, email me privately at 
>> ebo...@scoremaestro.com with your rates.
>> 
> 
> Hello Chris,
> 
> Can you give us a little more info on the type of projects you have and more 
> about what you're looking for:
> full time/part time, contract, scope, etc?
> 
> Thanks!

Hey Ben,

We would need the LilyPond engraving done if a client wanted an eBook produced 
from a PDF or paper score instead of LilyPond source, so the type of work could 
be anything.

We would pay an engraver their hourly rate and then charge it back to our 
client. We want the LilyPond as input to our workflow that produces eBooks.

Let me know if you have other questions.

Chris



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


Re: scheme-question: restricted list inserting

2017-09-16 Thread Thomas Morley
2017-09-16 22:20 GMT+02:00 David Kastrup :
> Thomas Morley  writes:
>
>> Hi all,
>>
>> what's the best (less expensive) method to insert elements only at the
>> head of a list and between first and second element of said list.
>> But don't insert an element at list-end if the list is of length 1.
>>
>> I do have:
>>
>> (define (list-insert-first-and-third lst arg1 arg2)
>>   (if (pair? lst)
>>   (append
>> (list arg1)
>> (list (car lst))
>> (if (pair? (cdr lst))
>> (list arg2)
>> '())
>> (cdr lst))
>>   lst))
>>
>> (display (list-insert-first-and-third '(1 2 3 4 5) "a" "b"))
>>
>> --> (a 1 b 2 3 4 5)
>>
>> This looks clumsy, though.
>>
>> Any hint for a better code?
>
> (define (list-insert-first-and-third lst arg1 . rest)
>   (if (pair? lst)
>   (cons* arg1 (car lst)
>  (if (pair? rest)

As far as I can tell the line below misses one argument
>  (apply list-insert-first-and-third (cdr lst) (cdr rest))
(apply list-insert-first-and-thirds (cdr lst) (car rest) (cdr rest))
works for me.
>  (cdr lst)))
>   lst))
>
> Something like that?  It's a bit more generic than you asked for, but so
> what.

No problem with a more generic code. More, with this hint I did:
(define (list-alternate l1 l2)
  (if (and (pair? l1) (pair? l2))
  (cons* (car l2) (car l1)
 (cond ((null? (cdr l1)) '())
   ((null? (cdr l2)) (cdr l1))
   (else (list-alternate (cdr l1) (cdr l2)
  l1))
Ok, other arguments, but let me quote you "but so what" :)

> At any rate, it would appear that cons* would be a good building-block
> even in your non-recursive approach.

I missed cons*, I should really implement it into my vocabulary.

Thanks a lot,
  Harm

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


Re: Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread Ben
On 9/16/2017 6:08 PM, Chris Crossen wrote:
>>> But, if a client wants an eBook produced from a PDF or paper score, we 
>>> engrave it with LilyPond. We outsource the LilyPond engraving and the 
>>> person we normally use doesn’t have the time to handle all our work.
>>>
>>> If you are interested in doing some engraving for us, email me privately at 
>>> ebo...@scoremaestro.com with your rates.
>>>
>> Hello Chris,
>>
>> Can you give us a little more info on the type of projects you have and more 
>> about what you're looking for:
>> full time/part time, contract, scope, etc?
>>
>> Thanks!
> Hey Ben,
>
> We would need the LilyPond engraving done if a client wanted an eBook 
> produced from a PDF or paper score instead of LilyPond source, so the type of 
> work could be anything.
>
> We would pay an engraver their hourly rate and then charge it back to our 
> client. We want the LilyPond as input to our workflow that produces eBooks.
>
> Let me know if you have other questions.
>
> Chris
>
>

Thanks for the fast reply Chris! Much appreciated!


PS. Whoa! I just noticed that somehow there were a bunch of duplicates
of my drafts/messages sent to the list - apologies!
My Thunderbird has really been acting strange recently. Sorry! No clue
what happened...



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


Re: scheme-question: restricted list inserting

2017-09-16 Thread David Kastrup
Thomas Morley  writes:

> 2017-09-16 22:20 GMT+02:00 David Kastrup :
>> Thomas Morley  writes:
>>
>>> Hi all,
>>>
>>> what's the best (less expensive) method to insert elements only at the
>>> head of a list and between first and second element of said list.
>>> But don't insert an element at list-end if the list is of length 1.
>>>
>>> I do have:
>>>
>>> (define (list-insert-first-and-third lst arg1 arg2)
>>>   (if (pair? lst)
>>>   (append
>>> (list arg1)
>>> (list (car lst))
>>> (if (pair? (cdr lst))
>>> (list arg2)
>>> '())
>>> (cdr lst))
>>>   lst))
>>>
>>> (display (list-insert-first-and-third '(1 2 3 4 5) "a" "b"))
>>>
>>> --> (a 1 b 2 3 4 5)
>>>
>>> This looks clumsy, though.
>>>
>>> Any hint for a better code?
>>
>> (define (list-insert-first-and-third lst arg1 . rest)
>>   (if (pair? lst)
>>   (cons* arg1 (car lst)
>>  (if (pair? rest)
>
> As far as I can tell the line below misses one argument
>>  (apply list-insert-first-and-third (cdr lst) (cdr rest))
> (apply list-insert-first-and-thirds (cdr lst) (car rest) (cdr 
> rest))
> works for me.

Argl.  I messed up one of the more elegant pieces: it's actually just

(apply list-insert-first-and-thirds (cdr lst) rest)

Less is more.  Sorry for that.

>>  (cdr lst)))
>>   lst))
>>
>> Something like that?  It's a bit more generic than you asked for, but so
>> what.


-- 
David Kastrup

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


Re: scheme-question: restricted list inserting

2017-09-16 Thread Thomas Morley
2017-09-17 0:29 GMT+02:00 David Kastrup :
> Thomas Morley  writes:
>
>> 2017-09-16 22:20 GMT+02:00 David Kastrup :
>>> Thomas Morley  writes:
>>>
 Hi all,

 what's the best (less expensive) method to insert elements only at the
 head of a list and between first and second element of said list.
 But don't insert an element at list-end if the list is of length 1.

 I do have:

 (define (list-insert-first-and-third lst arg1 arg2)
   (if (pair? lst)
   (append
 (list arg1)
 (list (car lst))
 (if (pair? (cdr lst))
 (list arg2)
 '())
 (cdr lst))
   lst))

 (display (list-insert-first-and-third '(1 2 3 4 5) "a" "b"))

 --> (a 1 b 2 3 4 5)

 This looks clumsy, though.

 Any hint for a better code?
>>>
>>> (define (list-insert-first-and-third lst arg1 . rest)
>>>   (if (pair? lst)
>>>   (cons* arg1 (car lst)
>>>  (if (pair? rest)
>>
>> As far as I can tell the line below misses one argument
>>>  (apply list-insert-first-and-third (cdr lst) (cdr rest))
>> (apply list-insert-first-and-thirds (cdr lst) (car rest) (cdr 
>> rest))
>> works for me.
>
> Argl.  I messed up one of the more elegant pieces: it's actually just
>
> (apply list-insert-first-and-thirds (cdr lst) rest)
>
> Less is more.  Sorry for that.

Yep, works. I will use it this way.

For my current use-case the even more generic 'list-alternate' would
mean the need to build l2 first, i.e one unneeded step more.

Thanks again,
  Harm

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


Re: frescobaldi print

2017-09-16 Thread Ben
On 9/16/2017 10:40 AM, Gianmaria Lari wrote:
> I forgot to mention I'm using Windows 10. 
>
> No, Ctrl-P or file/print music does not work and I don't get any error.
> g.
>
>
> On 14 September 2017 at 17:42, Malte Meyn  > wrote:
>
>
>
> Am 14.09.2017 um 12:49 schrieb Gianmaria Lari:
>
> Sorry to ask this that probably is a very trivial question,
> but I have not
> able to find a solution online.
>
> Is there any way to print the pdf file generated by lilypond
> directly from
> Frescobaldi?
>
>
> File → Print music … or Ctrl+P as in most applications.
>

Hi G,

PRINT is found in the File menu, where you can print the source / music,
as you choose.

Printing is usually quite easy from Frescobaldi.

1) What printer are you using, a "PDF" printer, network, etc?

--- I have a Windows 10 machine here to help you test. ---

2) When you hit File / Print, you should at the very least get a pop up
dialog box showing available printers, do you? (see attached)

If not, that's another issue...with Windows...



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


Re: Dynamics within divisi

2017-09-16 Thread SoundsFromSound
Alistair Millar wrote
> When I use the following divisi, I get the error message: "(De)crescendo
> with
> unspecified starting volume in MIDI." A \f is set a couple of bars before
> the
> divisi bar. 
> 
> <<
> {r8\< c'4-.\> c8-.\!}
> \\
> {g4-. c,-.}
>>>
> 
> How do I overcome this? Thanks
> 
> Alistair

---

Hello Alistair,

Not 100% sure, but perhaps it's related to this link:
https://code.google.com/archive/p/lilypond/issues/3945



-
composer | sound designer | asmr artist 
lilypond video tutorials --> http://bit.ly/bcl-lilypond
--
Sent from: http://lilypond.1069038.n5.nabble.com/User-f3.html

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


Re: Problem with Codas

2017-09-16 Thread Carl Sorensen
On 9/16/17 8:09 AM, "Shamus Hammons"  wrote:

>I have a dream, that one day Lilypond will make codas first class
>citizens instead of having to exist as a series of ugly hacks. In that
>day, I could simply write \coda (with maybe some options) and Lilypond
>would automagically do the right thing. Alas, that day is not today. :-(

What do you consider the "right thing" to be with a coda?

Thanks,

Carl


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


Re: Seeking LilyPond Engravers for Paid Work

2017-09-16 Thread Chris Crossen
> ...We want the LilyPond as input to our workflow that produces eBooks...
> 
> Interesting. Are there any samples available online, to preview and get an 
> idea of what's expected? Say, on Amazon with their "look inside" feature.
> 
> And, eBooks for music scores... I've dreamed of making eBook hymnal versions, 
> and wondered if it's possible to use SVG in eBook formats. I'd expect that 
> would be better suited to scaling than JPEG. Could you comment about any 
> findings you've had on the feasibility of this?
> --
> Karlin High
> Missouri, USA


Karlin,

We aren’t using SVG. We are using PNG files generated by LilyPond. Rather than 
scale the images, we generate them specifically for tablet sizes. The Android 
tablet eBooks are sized differently than the iPad eBooks because of the 
different aspect ratios of the devices. You can see that if you compare the 
same score on Amazon and on iTunes.

We also build scores for our Android application, ScoreMaestro. The eBooks we 
have produced are a subset of our ScoreMaestro inventory. If you have an 
Android tablet, you can download ScoreMaestro (it’s free) from either Amazon or 
Google Play depending on whether your tablet is a Kindle Fire or another 
Android tablet. Once you download the app, you can download a score free to try 
it out from within the application.

ScoreMaestro (see http://www.scoremaestro.com for more details) is a complete 
score management application. You can display scores in two sizes and in either 
portrait or landscape mode. Score pages are rendered to fit the 
size/orientation combination. One advantage of ScoreMaestro over our eBooks is 
that you can annotate your ScoreMaestro scores. These annotations can also be 
shared, for example with other members of a choir.

Let me know if you have other questions.
Chris


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


Re: Problem with Codas

2017-09-16 Thread David Kastrup
Carl Sorensen  writes:

> On 9/16/17 8:09 AM, "Shamus Hammons"  wrote:
>
>>I have a dream, that one day Lilypond will make codas first class
>>citizens instead of having to exist as a series of ugly hacks. In that
>>day, I could simply write \coda (with maybe some options) and Lilypond
>>would automagically do the right thing. Alas, that day is not today. :-(
>
> What do you consider the "right thing" to be with a coda?

\repeat coda 2 { %{ segno appears here %} common part }
 \alternative { { %{ coda sign here %} first part }
{ %{ actual coda formatted here %} coda } }


-- 
David Kastrup

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