Re: [Frescobaldi] cannot add lilypond 2.19.57 to lilypond preference

2017-03-27 Thread MING TSANG
Federico,Thank you for the info.I have been using USB to install lilypond. But 
I have not try to use it an another computer. I will try to use it on another 
computer to check it out.I have lilypond v2.19.49, to v2.19.56 on my USB drive 
and there is no problem to do the frecobaldi lilypond preference.  I installed 
v2.19.57 on the same USB, it said install complete. I assume every thing is OK. 
 When try to do frecobaldi lilypond preference, it failed. Later I check the 
directory of the USB, v2.19.57 is there, but there is no content it it.  That 
is why doing frecobaldi lilypond preference failed. I seems that the USB is 
full. I plan to unstall older version, say v2.19.49, v2.19.50, v2.19.51 and 
install v2.19.57 again onto the USB to check if the frecobalri lilypond 
preference fails or not. Ming. 

  From: Federico Bruni 
 To: MING TSANG  
Cc: "frescoba...@googlegroups.com" ; 
Lilypond-usermailinglist 
 Sent: Sunday, March 26, 2017 11:53 AM
 Subject: Re: [Frescobaldi] cannot add lilypond 2.19.57 to lilypond preference
   
I had the same problem years ago. I wanted to have LilyPond and 
Frescobaldi installed on a USB stick because I needed to use in a 
computer where I could not install any software.

I think I asked for help on lilypond-user, bat cannot find it in the 
archive.
I vaguely remember that the error was due to lilypond "relocation".

Il giorno gio 23 mar 2017 alle 20:14, MING TSANG  
ha scritto:
> Knute, Simon and Anders.
> 
> Thank you for all your response.
> It looks that I install v2.19.57 to a USB drive give me problem. 
> After the install, directory entry is there and I assume everything 
> is there.  When I add lilypond preference to frecobaldi v3.0.0 and it 
> fails.
> Knute, after your email I check the directory content of directory on 
> USD drive, but find none. So I re-install lilypond v2.19.57 to drive 
> C, and the "add" lilypond preference works.
> 
> Thank you,
> Ming.
> 
> 
> From: Knute Snortum 
> To: frescoba...@googlegroups.com
> Sent: Thursday, March 23, 2017 11:10 AM
> Subject: Re: [Frescobaldi] cannot add lilypond 2.19.57 to lilypond 
> preference
> 
> I have the same setup and it works fine.
> 
> What happens if you open a command prompt window and type this:
> 
> > E:
> > cd \Lilypond_2-19-57\lilypond\usr\bin
> > lilypond --version
> 
> If that give you a version message, I'd try changing the preference 
> to "lilypond.exe" instead of "lilypond-windows.exe".  I'm not sure 
> that sure matter, but we'll see.
> 
> ---
> Knute Snortum
> (via Gmail)
> 
> On Wed, Mar 22, 2017 at 5:24 PM,  wrote:
>> I download lilypond v2.19.57 and installed it in window 10. I have 
>> multi version of lilypond. Each has it own file folder.  I try to 
>> add the version v2.19.57 to lilypond preference and it failed. refer 
>> to .png attached.  Any change to frecobaldi 3.0.0 that caused this.
>> 
>> Thank you,
>> Ming
>> --
>> Frescobaldi homepage: http://www.frescobaldi.org/
>> Mailing list: http://groups.google.com/ group/frescobaldi
>> Issue tracker: https://github.com/wbsoft/ frescobaldi/issues
> 
> --
> Frescobaldi homepage: http://www.frescobaldi.org/
> Mailing list: http://groups.google.com/group/frescobaldi
> Issue tracker: https://github.com/wbsoft/frescobaldi/issues
> 
> 

-- 
Frescobaldi homepage: http://www.frescobaldi.org/
Mailing list: http://groups.google.com/group/frescobaldi
Issue tracker: https://github.com/wbsoft/frescobaldi/issues


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


Re: Rootless slash chords, 2017 edition

2017-03-27 Thread Kieren MacMillan
Hello Dmitry,

> There's been a long standing feature request:
> https://sourceforge.net/p/testlilyissues/issues/3909/
> Time to give it another try?

If I’m not mistaken, the entire ChordNames context/mechanism is under 
consideration for Google Summer of Code. Perhaps your best option might be to 
coordinate with whomever is involved with that initiative, to ensure that 
whatever you need is considered and (if possible) included.

Best regards,
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: LSR down?

2017-03-27 Thread Andrew Bernard
Hi Harm,

Snippets seems to be able to swim all the way over to Australia again now.

Andrew


On 28 March 2017 at 07:25, Thomas Morley  wrote:

>
> May I ask for feedback whether it works out there as well?
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Rootless slash chords, 2017 edition

2017-03-27 Thread Dmitry
Hi,

There's been a long standing feature request:

https://sourceforge.net/p/testlilyissues/issues/3909/

#3909 a feature to disable the chord root name printing - just print
the slash and inversion

Over the years, it has been addressed more or less. Time to give it
another try?

In a few words, we need a mechanism to suppress printing repeated root
chord name over a progression of slash chords. That means, we'd like to
see this:

F#min9 /F /E /D#

instead of this:

F#min9 F#min9/F F#min9/E F#min9/D#

The latter is much less readable, occupies more space and bloats the
score.

To say this feature is demanded in jazz means say nothing! I've
recently started working on a bunch of jazz scores, and the very first
piece features three (!) different progressions with changing bass
notes, like the above. OK, there is a well-known hack that uses
\whiteout: http://lsr.di.unimi.it/LSR/Item?id=776

Unfortunately, for the real-life scores it is simply a no-go. It
requires a chord exception for each and every rootless slash chord, it
messes up MIDI output (as slash chords are not recognized in chord
exceptions), not to mention that it produces unclean output.

There is another workaround from 2011: http://www.mail-archive.com/lily
pond-user%40gnu.org/msg67087.html
Needless to say, it doesn't work in 2017 :) but I've managed to fix it.
Here we go,

#(define (rootless-chord-names in-pitches bass inversion context) 
   (ignatzek-chord-names `(,(ly:make-pitch 0 0 0) ,(ly:make-pitch 0 0
0)) bass inversion context))

#(define (empty-namer pitch lower?) (make-simple-markup ""))

retainChordNoteNamer =
\applyContext
  #(lambda (context)
 (let ((rn (ly:context-property context 'chordRootNamer)))
   (ly:context-set-property! context 'chordNoteNamer rn)))

rootless = {
  \retainChordNoteNamer
  \once \set chordNameFunction = #rootless-chord-names
  \once \set chordRootNamer = #empty-namer
}

After that, one can use \rootless as follows:

fis2:m7.9 \rootless fis4:m7.9/f \rootless fis4:m7.9/e \rootless
fis1:m7.9/dis

This produces perfect output, but the code is ugly as hell. What I'm
doing here is basically the following:
- kill off chordRootNamer, but retain chordNoteNamer;
- after that, the root note note wouldn't be printed, but the suffix
(like m9, etc.) would be. To suppress it, we supply a
proxy chordNameFunction that would guarantee a suffix-less chord.

It should be easy to convert this one-shot semantics to something like
\rootlessOn and \rootlessOff. In fact, it would be nice if mainstream
Lilypond had something similar to "\set chordChanges = ..." but for
slash chords; but of course nobody would like to see ugly hacks like
the above in the mainstream :)

Off the top of my head, I could propose the following solution:

- inside Scheme code for chord name functions ({ignatzek,banter,jazz}-
chord-names), allow for NIL "pitches" argument. That should mean
"produce output for bass note only, omitting everything before the
slash";
- in Chord_name_engraver::process_music, track repeating root parts of
slash chords and pass NIL pitches to a chordNameFunction in case of
repetition. Everything should be similar to handling chordChanges,
however this time we should remember and compare whole chord
structures, not markup.

What do you think?

Cheers,
Dmitry



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


Re: TabStaff answer

2017-03-27 Thread caagr98
You could use \tag to remove the \set, or you could use <<>> to combine 
\solo with another staff containing only \set and spacer rests. I like 
using that technique to keep tempos and marks (structure) separate from 
the actual content.


Or, as David mentioned, you could just set Staff.minimumFret, which 
would be ignored by the normal Staff.


To clarify:

minfret = \tag fret \set TabStaff.minimumFret = ...
% (I think that needs to be a music function)
\new Staff { \removeWithTag fret \solo }
\new TabStaff \solo

--- or ---

\new Staff \solo
\new TabStaff << \solo { s1 \minfret 5 \s1 } >>



On 03/28/17 00:08, Rob Torop wrote:

Oops

Your answer works but there is something else I'd like to be able to do
(not to be greedy ...).  I like to embed lots of

   \set TabStaff.minimumFret = ...

in music to force the tab to be where I want it.  I find that with a
small number of hints like this, I can avoid having to specify the
string number with \ as in e\2 to get an e on the 5th fret of the B string.

What I would love to do is embed those minimumFret settings in the
music, but then do something like this

minfret = ...
getRidOfTabSettings =

solo = \relative c' {
  % in the tab, it will be open high E string
  e

  % in the tab it will be the 5th fret of the B string
  \minfret 5
  e
}

\score {
<<
 \new Staff { \getRidOfTabSettings \solo}
 \new TabStaff \solo



}







On Sun, Mar 26, 2017 at 6:35 PM > wrote:

No problem, but I think you're supposed to reply to the list, not
just me.

On 03/27/17 00:33, Rob Torop wrote:
> Thank you!
>
> -- Forwarded message -
> From: 
>>
> Date: Sun, Mar 26, 2017 at 4:58 PM
> Subject: lilypond-user Digest, Vol 172, Issue 145
> To: 
>>
>
>
> Send lilypond-user mailing list submissions to
> lilypond-user@gnu.org 
>
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.gnu.org/mailman/listinfo/lilypond-user

> or, via email, send a message with subject or body 'help' to
> lilypond-user-requ...@gnu.org

>
>
> You can reach the person managing the list at
> lilypond-user-ow...@gnu.org

>
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of lilypond-user digest..."
>
>
> Today's Topics:
>
>1.  (Rob Torop)
>2. Re: (caag...@gmail.com 
>)
>
>
> --
>
> Message: 1
> Date: Sun, 26 Mar 2017 20:49:53 +
> From: Rob Torop 
>>
> To: "lilypond-user@gnu.org 
>"
> 
>>
> Message-ID:
>
>

Re: TabStaff answer

2017-03-27 Thread Rob Torop
Oops

Your answer works but there is something else I'd like to be able to do
(not to be greedy ...).  I like to embed lots of

   \set TabStaff.minimumFret = ...

in music to force the tab to be where I want it.  I find that with a small
number of hints like this, I can avoid having to specify the string number
with \ as in e\2 to get an e on the 5th fret of the B string.

What I would love to do is embed those minimumFret settings in the music,
but then do something like this

minfret = ...
getRidOfTabSettings =

solo = \relative c' {
  % in the tab, it will be open high E string
  e

  % in the tab it will be the 5th fret of the B string
  \minfret 5
  e
}

\score {
<<
 \new Staff { \getRidOfTabSettings \solo}
 \new TabStaff \solo
>>
}







On Sun, Mar 26, 2017 at 6:35 PM  wrote:

> No problem, but I think you're supposed to reply to the list, not just me.
>
> On 03/27/17 00:33, Rob Torop wrote:
> > Thank you!
> >
> > -- Forwarded message -
> > From:  gnu.org>>
> > Date: Sun, Mar 26, 2017 at 4:58 PM
> > Subject: lilypond-user Digest, Vol 172, Issue 145
> > To: >
> >
> >
> > Send lilypond-user mailing list submissions to
> > lilypond-user@gnu.org 
> >
> > To subscribe or unsubscribe via the World Wide Web, visit
> > https://lists.gnu.org/mailman/listinfo/lilypond-user
> > or, via email, send a message with subject or body 'help' to
> > lilypond-user-requ...@gnu.org  gnu.org>
> >
> > You can reach the person managing the list at
> > lilypond-user-ow...@gnu.org 
> >
> > When replying, please edit your Subject line so it is more specific
> > than "Re: Contents of lilypond-user digest..."
> >
> >
> > Today's Topics:
> >
> >1.  (Rob Torop)
> >2. Re: (caag...@gmail.com )
> >
> >
> > --
> >
> > Message: 1
> > Date: Sun, 26 Mar 2017 20:49:53 +
> > From: Rob Torop >
> > To: "lilypond-user@gnu.org "
> > >
> > Message-ID:
> >
> > 

Re: LSR down?

2017-03-27 Thread tisimst
On Mon, Mar 27, 2017 at 3:21 PM, caagr98 [via Lilypond] <
ml-node+s1069038n201626...@n5.nabble.com> wrote:

> Works for me. The snippet took a little longer to load than usual, but
> that was probably just my internet.
>

Works for me, too!

- Abraham




--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/LSR-down-tp201561p201628.html
Sent from the User mailing list archive at Nabble.com.___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: LSR down?

2017-03-27 Thread caagr98
Works for me. The snippet took a little longer to load than usual, but 
that was probably just my internet.


Any idea what made it break (other than just "daylight saving time")?

On 03/27/17 22:25, Thomas Morley wrote:

2017-03-27 9:24 GMT+02:00 Malte Meyn :



Am 27.03.2017 um 02:30 schrieb Andrew Bernard:

LSR still down as at 0030 UTC here in Australia.

Andrew


No time zone problems here so http://lsr.di.unimi.it/LSR/Snippet?id=1007
shows up correctly but the search gives no results:
http://lsr.di.unimi.it/LSR/Search?q=notehead




Hi all,

I had reported the problem.

Seba thinks it's fixed now (for now).
My own testings were successful.

May I ask for feedback whether it works out there as well?

Cheers,
 Harm



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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread David Kastrup
Kaj Persson <70147pers...@telia.com> writes:

> David,
>>
>> Since I already explained this in detail in the first reply, it seems
>> like a total waste of effort when you express your complete surprise
>> that things work the way I already explained in the first reply.  Or
>> actually, that the _result_ is the way I explained it.  Because "I
>> thought, that tags always change the source, but obviously I was
>> wrong."  rather suggests that you did not actually consider thinking
>> about the explanation.
>>
>> Particularly in the light of that, you should aim to provide smaller
>> examples in future as your mode of learning seems to be focused
>> _completely_ on looking at examples _without_ considering explanations.
>> So since the dissemination of an example is _mandatory_ for your
>> learning, you really should aim to make at least this step as painless
>> as possible for helpers.
>>
> Of course you are right. In your eyes I am a stupid person who does
> not understand simple relations and explanations.

I might have expressed myself poorly.  In my eyes I wasted time with an
approach that wasn't helping you.  The approach actually able to help
you consisted on working through your example.  One reason that I did
not choose this approach right away but tried with non-example
explanations was that your example was way too complex to explain things
with unless one broke it down into elements suitable for explanation.

Most people aren't fans of wasting their time, so I told you that in the
light of you being someone who benefits significantly from having things
explained by example (most people do, though to somewhat different
degree), you'd do quite better if you made this as easy to do as
possible.

That you different than I do is no value judgment.  Invariably when
people ask how to learn C++, the answer is some "C++ made easy" book
with 1500 pages consisting of handwavy explanations and examples.
This kind of book is totally annoying to me in how it forces me to sift
through lots of irrelevancies to get at the actual information, often
forcing me to deduce it.  I prefer just reading the standard definitions
(or rather, the last public draft standard).  Still bulky enough, but
without all that noise.

I am well aware that very few people do _that_, and that the market for
books written like that is very small.

That doesn't mean that I consider everybody benefitting from more
example-heavy information than I prefer it "stupid": most of the people
ending up doing the heavy lifting are in that category and are much more
likely than myself to deliver a continuous stream of solid work without
getting sidestepped or procrastinating while getting on everybody's
nerves.

> I can also tell, that I have followed your advice from your first
> answer about variable. It was a fruitful solution and much better than
> quoting (this time).

Quoting really is rather limited in its usefulness.  The main feature it
has over music variables is extracting the correct time of a quote from
a longer passage automatically.  That is its principal value.  If you
don't particularly need _that_ or if it even gets in your way because
your referencing music expression is given different timing (like when
removing passages), you tend to be better off with music variables.
Quotes can only work with a single voice and are _tied_ in their timing.
This can often get in the way when using them outside of orchestral
contexts.

-- 
David Kastrup

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


Re: LSR down?

2017-03-27 Thread Thomas Morley
2017-03-27 9:24 GMT+02:00 Malte Meyn :
>
>
> Am 27.03.2017 um 02:30 schrieb Andrew Bernard:
>> LSR still down as at 0030 UTC here in Australia.
>>
>> Andrew
>
> No time zone problems here so http://lsr.di.unimi.it/LSR/Snippet?id=1007
> shows up correctly but the search gives no results:
> http://lsr.di.unimi.it/LSR/Search?q=notehead



Hi all,

I had reported the problem.

Seba thinks it's fixed now (for now).
My own testings were successful.

May I ask for feedback whether it works out there as well?

Cheers,
 Harm

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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread Kaj Persson

David,

On 2017-03-27 at 20:17, David Kastrup wrote:

Kaj Persson <70147pers...@telia.com> writes:


So the result you show printed is _exactly_ the result according to
my explanation, yet you say it isn't, possibly because of glossing
over half of the explanation, possibly because of misunderstanding
some part of the explanation.

Which is it?
   

You gave the explaination above at "since the tag isn't relevant for
quoting." I thought, that tags always change the source, but obviously
I was wrong.

So let's see when I bothered mentioning it.  In my first reply I wrote:

 That being said, tags are a mechanism for manipulating input and
 quotes are a mechanism for recording input and replaying the
 recorded results (which no longer are input put streams of events).

 So all of your tag manipulations need to be done by the time you use
 \addQuote .  Maybe you don't need quotes here but rather
 straightforward music variables: those contain the input and are
 still susceptible to tag manipulations.

In my second reply I wrote:

 >
 > \addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

 The tag here is ineffective since it is inside of the quote.

So I gave the information two times rather explicitly and still had to
take your complex example apart in the third answer before you actually
considered it.

Since I already explained this in detail in the first reply, it seems
like a total waste of effort when you express your complete surprise
that things work the way I already explained in the first reply.  Or
actually, that the _result_ is the way I explained it.  Because "I
thought, that tags always change the source, but obviously I was wrong."
rather suggests that you did not actually consider thinking about the
explanation.

Particularly in the light of that, you should aim to provide smaller
examples in future as your mode of learning seems to be focused
_completely_ on looking at examples _without_ considering explanations.
So since the dissemination of an example is _mandatory_ for your
learning, you really should aim to make at least this step as painless
as possible for helpers.

Of course you are right. In your eyes I am a stupid person who does not 
understand simple relations and explanations. I cannot deny that. O 
course you are right. I have for quite a long time tried to learn this 
program LilyPond, but still I have not reached your heights. I do not 
know  scheme, but am trying to understand how the program behaves. Yes, 
already in your first answer you gave an explaination, I read it, but at 
that time I was more anxious to come back with a readable code, and did 
not look so hard into your words of wisdom. Then they have been 
repeated, and I have read them, but shame to say, I do not yet 
understand the full essence. I am not the cleverest man walking on this 
earth, and have to use time (and several examples) before the real 
knowledge enters my head.


I am sorry I have irritated you. I am aware of mistakes in my writing an 
example, and, I repeat, I will try to make them not complete but more 
simple, in the future, if I will have to call for help again. I am sorry 
having to admit, I assume I will need that. I know you are a busy 
person, yet willing to help idiots like me. Of course I appreciate that, 
and I am very grateful. So thank you very, very much.


I can also tell, that I have followed your advice from your first answer 
about variable. It was a fruitful solution and much better than quoting 
(this time).


/Kaj


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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread David Kastrup
Kaj Persson <70147pers...@telia.com> writes:

>> So the result you show printed is _exactly_ the result according to
>> my explanation, yet you say it isn't, possibly because of glossing
>> over half of the explanation, possibly because of misunderstanding
>> some part of the explanation.
>>
>> Which is it?
>>   
> You gave the explaination above at "since the tag isn't relevant for
> quoting." I thought, that tags always change the source, but obviously
> I was wrong.

So let's see when I bothered mentioning it.  In my first reply I wrote:

That being said, tags are a mechanism for manipulating input and
quotes are a mechanism for recording input and replaying the
recorded results (which no longer are input put streams of events).

So all of your tag manipulations need to be done by the time you use
\addQuote .  Maybe you don't need quotes here but rather
straightforward music variables: those contain the input and are
still susceptible to tag manipulations.

In my second reply I wrote:

>
> \addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

The tag here is ineffective since it is inside of the quote.

So I gave the information two times rather explicitly and still had to
take your complex example apart in the third answer before you actually
considered it.

Since I already explained this in detail in the first reply, it seems
like a total waste of effort when you express your complete surprise
that things work the way I already explained in the first reply.  Or
actually, that the _result_ is the way I explained it.  Because "I
thought, that tags always change the source, but obviously I was wrong."
rather suggests that you did not actually consider thinking about the
explanation.

Particularly in the light of that, you should aim to provide smaller
examples in future as your mode of learning seems to be focused
_completely_ on looking at examples _without_ considering explanations.
So since the dissemination of an example is _mandatory_ for your
learning, you really should aim to make at least this step as painless
as possible for helpers.

-- 
David Kastrup

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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread Simon Albrecht

Am 27.03.2017 um 19:26 schrieb Kaj Persson:
I agree, that my example is a wee to big and too scattered, which I 
also did comment in my first post. Instead of putting the marks in an 
own voice I could have included them in the code itself. I thought I 
made it more clear, but maybe I was wrong. The same with the  \G which 
now just includes the \time command, but another time perhaps will 
contain more of common definitions. Maybe I should also have given 
them more descriptive names. I will think of that another time.


There’s a reason why it’s recommended to use minimal examples 
 also on the user list. It will 
make your actual problem stand out and save anybody helping the hassle 
of removing the irrelevant parts themselves. Really, that’s the least 
courtesy you should extend for the voluntary helpers around here.


Best, Simon

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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread caagr98

On 03/27/17 19:26, Kaj Persson wrote:

I thought, that tags always change the source, but obviously I was wrong.


Tags don't actually do anything; they just add a new property to the 
tagged music expression. \{remove,with}WithTag then recurses through the 
music expression and removes everything that has(n't) the correct tag.


If you use variables, then that literally inserts the variable's content 
into the music expression. However, if you use \quoteDuring, that 
inserts a QuoteMusic, which is an instruction to insert a quote with a 
specific name and duration. (This has the advantage of being able to 
reference quotes that aren't defined until later.) Since the QuoteMusic 
doesn't actually contain the referenced music expression, 
\{remove,keep}WithTag can't recurse into it.


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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread Kaj Persson



Den 2017-03-27 kl. 18:53, skrev David Kastrup:

Kaj Persson <70147pers...@telia.com> writes:


On 2017-03-27 at. 17:54, David Kastrup wrote:

Kaj Persson <70147pers...@telia.com> writes:


Oh sorry, this was not according to my intention. And yet I embraced
the code with the HTML tags  ... , a methode I have been
using several times before, with good results. Well I take your words

Some of them at least.  I did write an answer.


and send this e-mail again as pure text, which means I cannot paste
the images, why I instead attach them as files. Sorry for the mistake.

Here is the code:

\version "2.18.2"

Ma = \relative g' { c4 c c }
Mb = \relative g' { b4 b b }
Mc = \relative g' { a4 a a a a a \bar "||" }
Md = \relative g' { g4 g g }

Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }

Mk = \relative g' {
 \quoteDuring "Q" { s1*4*3/4 }
 \tag #'X { \quoteDuring "Q" { s4*3 } }
 \quoteDuring "Q" { s4*3 }
}

That likely doesn't do what you think it does.  If you remove the tagged
expression, what remains will be

Mk = \relative g' {
 \quoteDuring "Q" { s1*4*3/4 }
 \quoteDuring "Q" { s4*3 }
}

This is exactly what I want, but my impression is that I get this:

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\quoteDuring "Q" { s4*3 } }
\quoteDuring "Q" { s4*3 }
}

It just ignores and removes the "\tag #'X {".

My intention is that Mk shall follow Mj, and when the \removewithtag
#'X is active the Mb shall be excluded (the second time) in Mj as well
as in Mk. In Mj this works very well, but Mk ignores the tag and
continues with Mb after Mc.

You know what you actually quote following this?  The following:


instead of

Mk = \relative g' {
 \quoteDuring "Q" { s1*4*3/4 }
 s4*3
 \quoteDuring "Q" { s4*3 }
}

So what gets removed is the _end_ of the quoted expression rather than
the middle.


\addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

The tag here is ineffective since it is inside of the quote.

I really recommend that you try reading _all_ of my commentary and
understanding it.

This is getting tiresome.  In particular since your "minimal example" is
rather convoluted and does lots of cross-referencing, making it
impossible to follow it.

But let's get through the bulk of it in small parts since there seems no
way to make you apply my comments to your code yourself.

First the definitions:

\version "2.18.2"

Ma = \relative g' { c4 c c }
Mb = \relative g' { b4 b b }
Mc = \relative g' { a4 a a a a a \bar "||" }
Md = \relative g' { g4 g g }

Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\tag #'X { \quoteDuring "Q" { s4*3 } }
\quoteDuring "Q" { s4*3 }
}

As stated, removing the middle of Mk will result in the equivalent of

Mk = { \quoteDuring "Q" { s1*4*3/4 s4*3 } }

\addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

is equivalent to

\addQuote "Q" { \Ma \Mb \Mc \Mb \Md }

since the tag isn't relevant for quoting.
Yes, this is the explanation! I thought that it takes the source as it 
is after change because of tags, but if it does not (as you say) my 
observations are exactly what you describe.


Then you have

S = {
s1*3/4
\mark \markup { \musicglyph #'"scripts.segno" } s4*3
\mark \markup { \musicglyph #'"scripts.coda" }
s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph
#'"scripts.coda" } s2
\tag #'X { s4*3 } \break
\mark \markup { \musicglyph #'"scripts.coda" }
}

Where removing the tagged code will result in

S = {
s1*3/4
\mark \markup { \musicglyph #'"scripts.segno" } s4*3
\mark \markup { \musicglyph #'"scripts.coda" }
s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph
#'"scripts.coda" } s2
\break
\mark \markup { \musicglyph #'"scripts.coda" }
}

and G = { \time 3/4 } (is there any reason you seem to want to obfuscate
your example as much as possible with trivial music expressions?)

So we get

\score {
   \removeWithTag #'X  % already executed everywhere
   {
 <<
   \new Staff {
 \time 3/4
 <<
\new Voice {
s1*3/4
\mark \markup { \musicglyph #'"scripts.segno" } s4*3
\mark \markup { \musicglyph #'"scripts.coda" }
s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph
 #'"scripts.coda" } s2
\break
\mark \markup { \musicglyph #'"scripts.coda" }
}
\new Voice {
  \voiceOne
  \Ma \Mb \Mc \Md
}
 >>
   }
   \new Staff {
 \time 3/4
 \new Voice { \voiceTwo
   { \quoteDuring "Q" { s1*4*3/4 s4*3 } }
   % Q is \Ma \Mb \Mc \Mb \Md
   % and the quoted parts are 5 bars of 3/4 each, namely
   % \Ma \Mb \Mc \Mb
 }
   }
>>
   }
}

So the result you show printed is _exactly_ the result according to my
explanation, yet you say it isn't, possibly because of glossing over
half of the 

Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread David Kastrup
Kaj Persson <70147pers...@telia.com> writes:

> On 2017-03-27 at. 17:54, David Kastrup wrote:
>> Kaj Persson <70147pers...@telia.com> writes:
>>
>>> Oh sorry, this was not according to my intention. And yet I embraced
>>> the code with the HTML tags  ... , a methode I have been
>>> using several times before, with good results. Well I take your words
>> Some of them at least.  I did write an answer.
>>
>>> and send this e-mail again as pure text, which means I cannot paste
>>> the images, why I instead attach them as files. Sorry for the mistake.
>>>
>>> Here is the code:
>>>
>>> \version "2.18.2"
>>>
>>> Ma = \relative g' { c4 c c }
>>> Mb = \relative g' { b4 b b }
>>> Mc = \relative g' { a4 a a a a a \bar "||" }
>>> Md = \relative g' { g4 g g }
>>>
>>> Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }
>>>
>>> Mk = \relative g' {
>>> \quoteDuring "Q" { s1*4*3/4 }
>>> \tag #'X { \quoteDuring "Q" { s4*3 } }
>>> \quoteDuring "Q" { s4*3 }
>>> }
>> That likely doesn't do what you think it does.  If you remove the tagged
>> expression, what remains will be
>>
>> Mk = \relative g' {
>> \quoteDuring "Q" { s1*4*3/4 }
>> \quoteDuring "Q" { s4*3 }
>> }
> This is exactly what I want, but my impression is that I get this:
>
> Mk = \relative g' {
>\quoteDuring "Q" { s1*4*3/4 }
>\quoteDuring "Q" { s4*3 } }
>\quoteDuring "Q" { s4*3 }
> }
>
> It just ignores and removes the "\tag #'X {".
>
> My intention is that Mk shall follow Mj, and when the \removewithtag
> #'X is active the Mb shall be excluded (the second time) in Mj as well
> as in Mk. In Mj this works very well, but Mk ignores the tag and
> continues with Mb after Mc.

You know what you actually quote following this?  The following:

>> instead of
>>
>> Mk = \relative g' {
>> \quoteDuring "Q" { s1*4*3/4 }
>> s4*3
>> \quoteDuring "Q" { s4*3 }
>> }
>>
>> So what gets removed is the _end_ of the quoted expression rather than
>> the middle.
>>
>>> \addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }
>> The tag here is ineffective since it is inside of the quote.

I really recommend that you try reading _all_ of my commentary and
understanding it.

This is getting tiresome.  In particular since your "minimal example" is
rather convoluted and does lots of cross-referencing, making it
impossible to follow it.

But let's get through the bulk of it in small parts since there seems no
way to make you apply my comments to your code yourself.

First the definitions:

\version "2.18.2"

Ma = \relative g' { c4 c c }
Mb = \relative g' { b4 b b }
Mc = \relative g' { a4 a a a a a \bar "||" }
Md = \relative g' { g4 g g }

Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }

Mk = \relative g' {
   \quoteDuring "Q" { s1*4*3/4 }
   \tag #'X { \quoteDuring "Q" { s4*3 } }
   \quoteDuring "Q" { s4*3 }
}

As stated, removing the middle of Mk will result in the equivalent of

Mk = { \quoteDuring "Q" { s1*4*3/4 s4*3 } }

\addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

is equivalent to

\addQuote "Q" { \Ma \Mb \Mc \Mb \Md }

since the tag isn't relevant for quoting.

Then you have

S = {
   s1*3/4
   \mark \markup { \musicglyph #'"scripts.segno" } s4*3
   \mark \markup { \musicglyph #'"scripts.coda" }
   s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph
#'"scripts.coda" } s2
   \tag #'X { s4*3 } \break
   \mark \markup { \musicglyph #'"scripts.coda" }
}

Where removing the tagged code will result in

S = {
   s1*3/4
   \mark \markup { \musicglyph #'"scripts.segno" } s4*3
   \mark \markup { \musicglyph #'"scripts.coda" }
   s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph
#'"scripts.coda" } s2
   \break
   \mark \markup { \musicglyph #'"scripts.coda" }
}

and G = { \time 3/4 } (is there any reason you seem to want to obfuscate
your example as much as possible with trivial music expressions?)

So we get

\score {
  \removeWithTag #'X  % already executed everywhere
  {
<<
  \new Staff {
\time 3/4
<<
   \new Voice {
   s1*3/4
   \mark \markup { \musicglyph #'"scripts.segno" } s4*3
   \mark \markup { \musicglyph #'"scripts.coda" }
   s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph
#'"scripts.coda" } s2
   \break
   \mark \markup { \musicglyph #'"scripts.coda" }
   }
   \new Voice {
 \voiceOne
 \Ma \Mb \Mc \Md
   }
>>
  }
  \new Staff {
\time 3/4
\new Voice { \voiceTwo
  { \quoteDuring "Q" { s1*4*3/4 s4*3 } }
  % Q is \Ma \Mb \Mc \Mb \Md
  % and the quoted parts are 5 bars of 3/4 each, namely
  % \Ma \Mb \Mc \Mb
}
  }
   >>
  }
}

So the result you show printed is _exactly_ the result according to my
explanation, yet you say it isn't, possibly because of glossing over
half of the explanation, possibly because of misunderstanding some part
of the explanation.

Which is it?
 
-- 
David Kastrup


Re: Combining \tag with \quoteDuring does not work - addendum

2017-03-27 Thread Kaj Persson

On 2017-03-27 at. 17:54, David Kastrup wrote:

Kaj Persson <70147pers...@telia.com> writes:


Oh sorry, this was not according to my intention. And yet I embraced
the code with the HTML tags  ... , a methode I have been
using several times before, with good results. Well I take your words

Some of them at least.  I did write an answer.


and send this e-mail again as pure text, which means I cannot paste
the images, why I instead attach them as files. Sorry for the mistake.

Here is the code:

\version "2.18.2"

Ma = \relative g' { c4 c c }
Mb = \relative g' { b4 b b }
Mc = \relative g' { a4 a a a a a \bar "||" }
Md = \relative g' { g4 g g }

Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\tag #'X { \quoteDuring "Q" { s4*3 } }
\quoteDuring "Q" { s4*3 }
}

That likely doesn't do what you think it does.  If you remove the tagged
expression, what remains will be

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\quoteDuring "Q" { s4*3 }
}

This is exactly what I want, but my impression is that I get this:

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\quoteDuring "Q" { s4*3 } }
\quoteDuring "Q" { s4*3 }
}

It just ignores and removes the "\tag #'X {".

My intention is that Mk shall follow Mj, and when the \removewithtag #'X 
is active the Mb shall be excluded (the second time) in Mj as well as in 
Mk. In Mj this works very well, but Mk ignores the tag and continues 
with Mb after Mc.



===>

Addendum:
My thought was that when \removeWithTag #'X is active, the variables 
would be:

 Mj = { \Ma \Mb \Mc \Md }
 Mk = \relative g' {
  \quoteDuring "Q" { s1*4*3/4 }
  \quoteDuring "Q" { s4*3 }
 }
 \addQuote "Q" { \Ma \Mb \Mc \Md }

so because Mj now does not contain the second \Mb, the quote in Mk 
should copy \Md, but as far as I can see \Mk does not behave so.



instead of

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
s4*3
\quoteDuring "Q" { s4*3 }
}

So what gets removed is the _end_ of the quoted expression rather than
the middle.


\addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

The tag here is ineffective since it is inside of the quote.


/Kaj


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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread Kaj Persson

On 2017-03-27 at. 17:54, David Kastrup wrote:

Kaj Persson <70147pers...@telia.com> writes:


Oh sorry, this was not according to my intention. And yet I embraced
the code with the HTML tags  ... , a methode I have been
using several times before, with good results. Well I take your words

Some of them at least.  I did write an answer.


and send this e-mail again as pure text, which means I cannot paste
the images, why I instead attach them as files. Sorry for the mistake.

Here is the code:

\version "2.18.2"

Ma = \relative g' { c4 c c }
Mb = \relative g' { b4 b b }
Mc = \relative g' { a4 a a a a a \bar "||" }
Md = \relative g' { g4 g g }

Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\tag #'X { \quoteDuring "Q" { s4*3 } }
\quoteDuring "Q" { s4*3 }
}

That likely doesn't do what you think it does.  If you remove the tagged
expression, what remains will be

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
\quoteDuring "Q" { s4*3 }
}

This is exactly what I want, but my impression is that I get this:

Mk = \relative g' {
   \quoteDuring "Q" { s1*4*3/4 }
   \quoteDuring "Q" { s4*3 } }
   \quoteDuring "Q" { s4*3 }
}

It just ignores and removes the "\tag #'X {".

My intention is that Mk shall follow Mj, and when the \removewithtag #'X 
is active the Mb shall be excluded (the second time) in Mj as well as in 
Mk. In Mj this works very well, but Mk ignores the tag and continues 
with Mb after Mc.

instead of

Mk = \relative g' {
\quoteDuring "Q" { s1*4*3/4 }
s4*3
\quoteDuring "Q" { s4*3 }
}

So what gets removed is the _end_ of the quoted expression rather than
the middle.


\addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

The tag here is ineffective since it is inside of the quote.


/Kaj

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


Re: Brackets question

2017-03-27 Thread Menu Jacques
Hello David,

Yes, I think thez are actually ligatures, hadn’t found them searching for 
brackets.

Thanks!

JM

> Le 27 mars 2017 à 14:34, David Nalesnik  a écrit :
> 
> On Mon, Mar 27, 2017 at 7:14 AM, Andrew Bernard
>  wrote:
>> Hi Menu,
>> 
>> Well I was suggesting a way of faking it out, rather than being semantically 
>> pure. Not sure that Binchois used such brackets!
>> 
>> Andrew
>> 
>> -Original Message-
>> From: Menu Jacques [mailto:imj-...@bluewin.ch]
>> Sent: Monday, 27 March 2017 11:12 PM
>> To: Andrew Bernard 
>> Cc: Menu Jacques ; Lilypond User List 
>> 
>> Subject: Re: Brackets question
>> 
>> Sorry for not having been more explicit: I saw that when imporing 
>> Recordare’s Binchois.xml file into Finale.
>> 
>> The meter is 3/4, so it’s no tuplet it seems.
>> 
> 
> I think you want ligature brackets:
> http://lilypond.org/doc/v2.18/Documentation/notation/ancient-notation_002d_002dcommon-features#ligatures
> 
> David
> 
> ___
> 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: Combining \tag with \quoteDuring does not work

2017-03-27 Thread David Kastrup
Kaj Persson <70147pers...@telia.com> writes:

> Oh sorry, this was not according to my intention. And yet I embraced
> the code with the HTML tags  ... , a methode I have been
> using several times before, with good results. Well I take your words

Some of them at least.  I did write an answer.

> and send this e-mail again as pure text, which means I cannot paste
> the images, why I instead attach them as files. Sorry for the mistake.
>
> Here is the code:
>
> \version "2.18.2"
>
> Ma = \relative g' { c4 c c }
> Mb = \relative g' { b4 b b }
> Mc = \relative g' { a4 a a a a a \bar "||" }
> Md = \relative g' { g4 g g }
>
> Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }
>
> Mk = \relative g' {
>\quoteDuring "Q" { s1*4*3/4 }
>\tag #'X { \quoteDuring "Q" { s4*3 } }
>\quoteDuring "Q" { s4*3 }
> }

That likely doesn't do what you think it does.  If you remove the tagged
expression, what remains will be

Mk = \relative g' {
   \quoteDuring "Q" { s1*4*3/4 }
   \quoteDuring "Q" { s4*3 }
}

instead of

Mk = \relative g' {
   \quoteDuring "Q" { s1*4*3/4 }
   s4*3
   \quoteDuring "Q" { s4*3 }
}

So what gets removed is the _end_ of the quoted expression rather than
the middle.

>
> \addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

The tag here is ineffective since it is inside of the quote.

-- 
David Kastrup

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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread Kaj Persson
Oh sorry, this was not according to my intention. And yet I embraced the 
code with the HTML tags  ... , a methode I have been using 
several times before, with good results. Well I take your words and send 
this e-mail again as pure text, which means I cannot paste the images, 
why I instead attach them as files. Sorry for the mistake.


Here is the code:

\version "2.18.2"

Ma = \relative g' { c4 c c }
Mb = \relative g' { b4 b b }
Mc = \relative g' { a4 a a a a a \bar "||" }
Md = \relative g' { g4 g g }

Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md }

Mk = \relative g' {
   \quoteDuring "Q" { s1*4*3/4 }
   \tag #'X { \quoteDuring "Q" { s4*3 } }
   \quoteDuring "Q" { s4*3 }
}

\addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md }

S = {
   s1*3/4
   \mark \markup { \musicglyph #'"scripts.segno" } s4*3
   \mark \markup { \musicglyph #'"scripts.coda" }
   s2. s4 \mark \markup \line { "D.S. al" \raise #0.9 \musicglyph 
#'"scripts.coda" } s2

   \tag #'X { s4*3 } \break
   \mark \markup { \musicglyph #'"scripts.coda" }
}

G = {
   \time 3/4
}

\paper { ragged-right = ##t
  indent = #0
}

\score {
   \removeWithTag #'X
   {
 <<
   \new Staff {
 \G
 <<
   \new Voice \S
   \new Voice { \voiceOne \Mj }
 >>
   }
   \new Staff {
 \G
 \new Voice { \voiceTwo \Mk }
   }
 >>
   }

   \layout {}
   % \midi {}
}

Two images attached:
Layout_of_tag-quoteDuring.png
Midi_of_tag-quoteDuring.png


For the preamble, see the original post (also cited below).

/Kaj

On 2017-03-27 at 14:33,  David Kastrup wrote:
> 70147pers...@telia.com writes:
>
>> In movements where the music jumps between different sections marked
>> with segno signs, one has do deal with those in a quite different way
>> in the layout and the midi scores. Then the \tag is of good help to
>> exclude parts in the layout score that has to be there in the midi
>> score. Now, if two voices are almost equal there also a good aid in
>> the \addQuote and \quoteDuring mechanism. However to combine this with
>> the \tag facility does not work for me. The quotes neglect the tags
>> and is running as if they do not exist. I know my snippet is a wee too
>> long, but I will illustrate the whole situation with signs and
>> others. I also know that the construction with "D.S. al coda" is not
>> the cleverest, but it was the shortest I could find out here. To
>> shorten the example I have not doubled the score, but in the real case
>> the layout score is running with the "\removeWithTag #'X" while the
>> midi score has this line removed. Instead of the long \addQuote
>> expression you can write \Mj (which it is) but no difference. Here is
>> my example:
>>
>> \version "2.18.2" Ma = \relative g' { c4 c c } Mb = \relative g' { 
b4 b b } Mc =
>> \relative g' { a4 a a a a a \bar "||" } Md = \relative g' { g4 g g } 
Mj = { \Ma
>> \Mb \Mc \tag #'X \Mb \Md } Mk = \relative g' { \quoteDuring "Q" { 
s1*4*3/4 }
>> \tag #'X { \quoteDuring "Q" { s4*3 } } \quoteDuring "Q" { s4*3 } } 
\addQuote "Q"
>> { \Ma \Mb \Mc \tag #'X \Mb \Md } S = { s1*3/4 \mark \markup { 
\musicglyph

> No, I am not going to figure out this heap of code without line breaks.
> I recommend that you switch off HTML-formatted mails in your mail
> program or at the very least learn how to teach it _not_ to wrap lines
> where no line wraps belong.
>
> That being said, tags are a mechanism for manipulating input and quotes
> are a mechanism for recording input and replaying the recorded results
> (which no longer are input put streams of events).
>
> So all of your tag manipulations need to be done by the time you use
> \addQuote .  Maybe you don't need quotes here but rather straightforward
> music variables: those contain the input and are still susceptible to
> tag manipulations.
>


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


Re: Brackets question

2017-03-27 Thread David Nalesnik
On Mon, Mar 27, 2017 at 7:14 AM, Andrew Bernard
 wrote:
> Hi Menu,
>
> Well I was suggesting a way of faking it out, rather than being semantically 
> pure. Not sure that Binchois used such brackets!
>
> Andrew
>
> -Original Message-
> From: Menu Jacques [mailto:imj-...@bluewin.ch]
> Sent: Monday, 27 March 2017 11:12 PM
> To: Andrew Bernard 
> Cc: Menu Jacques ; Lilypond User List 
> 
> Subject: Re: Brackets question
>
> Sorry for not having been more explicit: I saw that when imporing Recordare’s 
> Binchois.xml file into Finale.
>
> The meter is 3/4, so it’s no tuplet it seems.
>

I think you want ligature brackets:
http://lilypond.org/doc/v2.18/Documentation/notation/ancient-notation_002d_002dcommon-features#ligatures

David

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


Re: Combining \tag with \quoteDuring does not work

2017-03-27 Thread David Kastrup
70147pers...@telia.com writes:

> In movements where the music jumps between different sections marked
> with segno signs, one has do deal with those in a quite different way
> in the layout and the midi scores. Then the \tag is of good help to
> exclude parts in the layout score that has to be there in the midi
> score. Now, if two voices are almost equal there also a good aid in
> the \addQuote and \quoteDuring mechanism. However to combine this with
> the \tag facility does not work for me. The quotes neglect the tags
> and is running as if they do not exist. I know my snippet is a wee too
> long, but I will illustrate the whole situation with signs and
> others. I also know that the construction with "D.S. al coda" is not
> the cleverest, but it was the shortest I could find out here. To
> shorten the example I have not doubled the score, but in the real case
> the layout score is running with the "\removeWithTag #'X" while the
> midi score has this line removed. Instead of the long \addQuote
> expression you can write \Mj (which it is) but no difference. Here is
> my example:
>
> \version "2.18.2" Ma = \relative g' { c4 c c } Mb = \relative g' { b4 b b } 
> Mc =
> \relative g' { a4 a a a a a \bar "||" } Md = \relative g' { g4 g g } Mj = { 
> \Ma
> \Mb \Mc \tag #'X \Mb \Md } Mk = \relative g' { \quoteDuring "Q" { s1*4*3/4 }
> \tag #'X { \quoteDuring "Q" { s4*3 } } \quoteDuring "Q" { s4*3 } } \addQuote 
> "Q"
> { \Ma \Mb \Mc \tag #'X \Mb \Md } S = { s1*3/4 \mark \markup { \musicglyph

No, I am not going to figure out this heap of code without line breaks.
I recommend that you switch off HTML-formatted mails in your mail
program or at the very least learn how to teach it _not_ to wrap lines
where no line wraps belong.

That being said, tags are a mechanism for manipulating input and quotes
are a mechanism for recording input and replaying the recorded results
(which no longer are input put streams of events).

So all of your tag manipulations need to be done by the time you use
\addQuote .  Maybe you don't need quotes here but rather straightforward
music variables: those contain the input and are still susceptible to
tag manipulations.

-- 
David Kastrup

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


Combining \tag with \quoteDuring does not work

2017-03-27 Thread 70147persson
In movements where the music jumps between different sections marked 
with segno signs, one has do deal with those in a quite different way in 
the layout and the midi scores. Then the \tag is of good help to exclude 
parts in the layout score that has to be there in the midi score. Now, 
if two voices are almost equal there also a good aid in the \addQuote 
and \quoteDuring mechanism. However to combine this with the \tag 
facility does not work for me. The quotes neglect the tags and is 
running as if they do not exist. I know my snippet is a wee too long, 
but I will illustrate the whole situation with signs and others. I also 
know that the construction with "D.S. al coda" is not the cleverest, but 
it was the shortest I could find out here. To shorten the example I have 
not doubled the score, but in the real case the layout score is running 
with the "\removeWithTag #'X" while the midi score has this line 
removed. Instead of the long \addQuote expression you can write \Mj 
(which it is) but no difference. Here is my example:


|\version "2.18.2" Ma = \relative g' { c4 c c } Mb = \relative g' { b*4 
b b } Mc = \relative g' { a4 a a a a a \bar "||" } Md = \relative g' { 
g4 g g } Mj = { \Ma \Mb \Mc \tag #'X \Mb \Md } Mk = \relative g' { 
\quoteDuring "Q" { s1*4*3/4 } \tag #'X { \quoteDuring "Q" { s4*3 } } 
\quoteDuring "Q" { s4*3 } } \addQuote "Q" { \Ma \Mb \Mc \tag #'X \Mb \Md 
} S = { s1*3/4 \mark \markup { \musicglyph #'"scripts.segno" } s4*3 
\mark \markup { \musicglyph #'"scripts.coda" } s2. s4 \mark \markup 
\line { "D.S. al" \raise #0.9 \musicglyph #'"scripts.coda" } s2 \tag #'X 
{ s4*3 } \break \mark \markup { \musicglyph #'"scripts.coda" } } G = { 
\time 3/4 } \paper { ragged-right = ##t indent = #0 } \score { 
\removeWithTag #'X { << \new Staff { \G << \new Voice \S \new Voice { 
\voiceOne \Mj } >> } \new Staff { \G \new Voice { \voiceTwo \Mk } } >> } 
\layout {} % \midi {} } *|


with the layout result:

and the midi:

You can see, that the lower voice in the layout score in the coda 
instead of running music section Md is running the Mb, hence it neglects 
the tag.


/Kaj

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


RE: Brackets question

2017-03-27 Thread Andrew Bernard
Hi Menu,

Well I was suggesting a way of faking it out, rather than being semantically 
pure. Not sure that Binchois used such brackets!

Andrew

-Original Message-
From: Menu Jacques [mailto:imj-...@bluewin.ch] 
Sent: Monday, 27 March 2017 11:12 PM
To: Andrew Bernard 
Cc: Menu Jacques ; Lilypond User List 

Subject: Re: Brackets question

Sorry for not having been more explicit: I saw that when imporing Recordare’s 
Binchois.xml file into Finale.

The meter is 3/4, so it’s no tuplet it seems.



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


Re: Brackets question

2017-03-27 Thread Menu Jacques
Sorry for not having been more explicit: I saw that when imporing Recordare’s 
Binchois.xml file into Finale.

The meter is 3/4, so it’s no tuplet it seems.

> Le 27 mars 2017 à 13:17, Andrew Bernard  a écrit :
> 
> Hi Menu,
> 
> Making some assumptions here.
> 
> Andrew
> 
> 
> == snip
> 
> \version "2.19.58"
> 
> treble = {
>   \clef treble
>   \omit TupletNumber
>   \tupletUp
>   \tuplet 5/4 { c'''4 d'''4. } b''8
> }
> 
> bass = {
>   \clef bass
>   \omit TupletNumber
>   \tupletUp
>   \tuplet 5/4 { c4 \stemUp a4. } f8
> 
> }
> 
> \score {
>   \new PianoStaff
>   <<
> \new Staff { \treble }
> \new Staff { \bass }
>   >>
> 
>   \layout {
>   }
> }
> 
> == snip
> 
> ___
> 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: Brackets question

2017-03-27 Thread Andrew Bernard
Hi Menu,

Making some assumptions here.

Andrew


== snip

\version "2.19.58"

treble = {
  \clef treble
  \omit TupletNumber
  \tupletUp
  \tuplet 5/4 { c'''4 d'''4. } b''8
}

bass = {
  \clef bass
  \omit TupletNumber
  \tupletUp
  \tuplet 5/4 { c4 \stemUp a4. } f8

}

\score {
  \new PianoStaff
  <<
\new Staff { \treble }
\new Staff { \bass }
  >>

  \layout {
  }
}

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


Re: lilybin php script (was: Re: (fwd))

2017-03-27 Thread Martin Tarenskeen



On Thu, 23 Mar 2017, Martin Tarenskeen wrote:


lilybin infile.ly
---> process infile.ly without downloading from Lilybin server, returns an ID 
for download


lilybin -d ID.pdf
lilybin -d ID.midi
---> download results from Lilybin server

lilybin -a infile.ly outfile.pdf
---> upload infile.ly and save as outfile.pdf

lilybin -a -m infile.ly outfile.mid
---> upload infile.ly and save as outfile.mid



Hi, I have re-organised Sven's lilybin php script again. The -a and -m 
options are not needed and used anymore. You can now simply do:


lilybin infile.ly outfile.mid
lilybin infile.ly outfile.pdf

The outfile extension (.pdf, .mid, or .midi) will automatically tell the 
script what to download.


If only infile is specified, an ID will be returned that can be used 
with the -d option.


With the -u option the unstable/devel version of Lilypond on the Lilybin 
server will be used.


I think it's more intuitive this way. I have also rewritten the help text.

See attachment. I hope it's useful for someone.

--

Martin
#!/usr/bin/env php

 * Martin Tarenskeen 
*/

function do_curl($url, $opts)
{
$curl = curl_init($url);
curl_setopt_array($curl, $opts);
$result = curl_exec($curl);
curl_close($curl);

return $result;
}

$VERSION = "lilybin v0.2 (2017-03-27)" . PHP_EOL;
$opts = getopt('dhuv', $argv);
$sep = array_search('--', $argv);
$files = array_slice($argv, $sep ? ++$sep : count($opts) + 1);
$download = isset($opts['d']);
$unstable = isset($opts['u']);
$help = "Usage:" . PHP_EOL .
"\tlilybin [-u] INFILE.ly OUTFILE.pdf" . PHP_EOL .
"\tlilybin [-u] INFILE.ly OUTFILE.mid" . PHP_EOL .
"\t\t=> Download and directly save result" . PHP_EOL .
"\tlilybin [-u] INFILE.ly" . PHP_EOL .
"\t\t=> Only print ID for download" . PHP_EOL .
"\tlilybin -d (ID.pdf|ID.midi)" . PHP_EOL .
"\t\t=> Download result from remote server" . PHP_EOL .
"Other options:" . PHP_EOL .
"\t-h print this Help message" . PHP_EOL .
"\t-u use Unstable lilypond-devel version" . PHP_EOL;

if (count($files) === 0 || count($files) > 2) {
echo $VERSION;
die($help);
}

if (count($files) == 2) {
$all = True;
$ext = "." . pathinfo($files[1])['extension'];
if ($ext == ".mid") {
$ext = ".midi";
}
} else {
$all = False;
}

if ($unstable) {
$stable = 'unstable';
} else {
$stable = 'stable';
}

if ($all || !$download) {
$url = 
'https://7icpm9qr6a.execute-api.us-west-2.amazonaws.com/prod/prepare_preview/' 
. $stable;
$result = json_decode(do_curl($url, [
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => json_encode(['code' =>
file_get_contents($files[0])]),
CURLOPT_RETURNTRANSFER => true,
]));
if (!$result->id) {
echo "ERROR:", PHP_EOL, $result->stderr;
exit(1);
}
if ($all) {
$files[0] = $result->id . $ext;
} else {
echo $argv[0], ' -d ', $result->id, ".(pdf|midi)", PHP_EOL;
exit;
}
}

if ($all || $download) {
$url = 'https://s3-us-west-2.amazonaws.com/lilybin-scores/' . $files[0];
$file = fopen(@$files[1] ?: $files[0], 'w');
do_curl($url, [CURLOPT_FILE => $file]);
fclose($file);
}

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


Re: Brackets question

2017-03-27 Thread David Kastrup
Menu Jacques  writes:

> Hello,
>
> These brackets look like analysis brackets, but are not quite as Lily 
> displays them:
>
> *
>
> Maybe they’re something else?

What is the meter?

-- 
David Kastrup

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


Brackets question

2017-03-27 Thread Menu Jacques
Hello,

These brackets look like analysis brackets, but are not quite as Lily displays 
them:



Maybe they’re something else?

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


Re: Determine if a stem is present

2017-03-27 Thread Urs Liska


Am 27.03.2017 um 11:45 schrieb Thomas Morley:
> 2017-03-27 11:38 GMT+02:00 Urs Liska :
>> Hi all,
>>
>> I want to know if a given notehead has a stem attached. Obviously even
>> whole notes do have a stem object, but with zero extent.
>>
>> I've found the following calculation to be reliable, but I can't imagine
>> it has to be so complicated:
>>
>> (if (or (= +inf.0 (car stem-y-extent))
>> (= -inf.0 (car stem-y-extent))
>> (= +inf.0 (cdr stem-y-extent))
>> (= -inf.0 (cdr stem-y-extent)))
>>
>> (with stem-y-extent being the Y-extent property of the stem object).
>>
>> I think there should be some property I can ask directly about this? But
>> I didn't find any suspicious entry for Stem or stem-interface.
>>
>> Any suggestions?
>> Urs
> interval-sane?
>
> exp.:
>
> (interval-sane? (ly:stencil-extent empty-stencil X))
> --> #f
>
> Maybe grob::is-live? may help as well, didn't test that.

Ah, no, but it brought me in the right direction. While

(ly:grob-object notehead 'stem) does give an object
(ly:grob-property stem 'stencil) => '()

Thanks
Urs

>
>
> HTH,
>   Harm

-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org


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


Re: Determine if a stem is present

2017-03-27 Thread Thomas Morley
2017-03-27 11:38 GMT+02:00 Urs Liska :
> Hi all,
>
> I want to know if a given notehead has a stem attached. Obviously even
> whole notes do have a stem object, but with zero extent.
>
> I've found the following calculation to be reliable, but I can't imagine
> it has to be so complicated:
>
> (if (or (= +inf.0 (car stem-y-extent))
> (= -inf.0 (car stem-y-extent))
> (= +inf.0 (cdr stem-y-extent))
> (= -inf.0 (cdr stem-y-extent)))
>
> (with stem-y-extent being the Y-extent property of the stem object).
>
> I think there should be some property I can ask directly about this? But
> I didn't find any suspicious entry for Stem or stem-interface.
>
> Any suggestions?
> Urs

interval-sane?

exp.:

(interval-sane? (ly:stencil-extent empty-stencil X))
--> #f

Maybe grob::is-live? may help as well, didn't test that.


HTH,
  Harm

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


Determine if a stem is present

2017-03-27 Thread Urs Liska
Hi all,

I want to know if a given notehead has a stem attached. Obviously even
whole notes do have a stem object, but with zero extent.

I've found the following calculation to be reliable, but I can't imagine
it has to be so complicated:

(if (or (= +inf.0 (car stem-y-extent))
(= -inf.0 (car stem-y-extent))
(= +inf.0 (cdr stem-y-extent))
(= -inf.0 (cdr stem-y-extent)))

(with stem-y-extent being the Y-extent property of the stem object).

I think there should be some property I can ask directly about this? But
I didn't find any suspicious entry for Stem or stem-interface.

Any suggestions?
Urs

-- 
u...@openlilylib.org
https://openlilylib.org
http://lilypondblog.org


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


Re: (unknown)

2017-03-27 Thread David Kastrup
Rob Torop  writes:

> I'm finding that when I use a TabStaff and also set some properties (either
> or both of minimumFret and restrainOpenStrings), my first line has an extra
> TabStaff!  What can I do to get rid of it? Thanks!
>
> Here's what it looks like:
>
> [image: Screen Shot 2017-03-26 at 4.46.59 PM.png]
>
> And here's the code that generated this:
>
> \version "2.19"
> \language "english"
>
> solo = \relative c' {
>
> % Either of both of the two settings will cause an extra "TAB" staff to
> be rendered
>  \set TabStaff.minimumFret=#1
>  \set TabStaff.restrainOpenStrings = ##t
>
>  c8   f e ef df c bf af
> }
>
> \score {
>   <<
>  \new Staff\solo
>  \new TabStaff  \solo
>>>
> }

The easiest remedy in this case is likely to use
\set Staff.minimumFret ...
since TabStaff is aliased to Staff, so you'll just be setting
properties in the _Staff_ context that are irrelevant, while the
settings reach the _TabStaff_ fine.

This will not work when writing something like

\new StaffGroup { \solo }

or so since then \set Staff.xxx will create a _Staff_ context before a
TabStaff has a chance to be available.  But if one is already there, it
will get used.

-- 
David Kastrup

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


Re:

2017-03-27 Thread Phil Holmes
Others have pointed out the problem to you, but you would have found it 
yourself by reading the Learning Manual:

http://lilypond.org/doc/v2.19/Documentation/learning/some-common-errors
http://lilypond.org/doc/v2.19/Documentation/usage/common-errors#an-extra-staff-appears

--
Phil Holmes


  - Original Message - 
  From: Rob Torop 
  To: lilypond-user@gnu.org 
  Sent: Sunday, March 26, 2017 9:49 PM


  I'm finding that when I use a TabStaff and also set some properties (either 
or both of minimumFret and restrainOpenStrings), my first line has an extra 
TabStaff!  What can I do to get rid of it? Thanks!


  Here's what it looks like:





  And here's the code that generated this:


  \version "2.19"
  \language "english"
 
  solo = \relative c' {
  
  % Either of both of the two settings will cause an extra "TAB" staff to 
be rendered
   \set TabStaff.minimumFret=#1
   \set TabStaff.restrainOpenStrings = ##t

   c8   f e ef df c bf af   
  }


  \score {
<<
   \new Staff\solo
   \new TabStaff  \solo
 >> 
  }






--


  ___
  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: LSR down?

2017-03-27 Thread Malte Meyn


Am 27.03.2017 um 02:30 schrieb Andrew Bernard:
> LSR still down as at 0030 UTC here in Australia.
> 
> Andrew

No time zone problems here so http://lsr.di.unimi.it/LSR/Snippet?id=1007
shows up correctly but the search gives no results:
http://lsr.di.unimi.it/LSR/Search?q=notehead

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


detect line breaks

2017-03-27 Thread Jan-Peter Voigt

Dear list,

I'd like to add line numbers to a score. I thought, ackowledging the 
system-interface might help, but that isn't called in a scheme-engraver:



\version "2.19.58"

\layout {
  \context {
\Score
\consists
#(lambda (context)
   (make-engraver
(acknowledgers
 ((system-interface engraver grob source-engraver)
  (ly:message "System"))
 )
))
  }
}

\repeat unfold 25 \relative { c' d e f }


Also line-break-events are only catched, if they are actively fired.
Is there a way to acknowledge line-breaks with a scheme-engraver?
Of course there is, otherwise break-alignment would not work. So maybe I 
don't see the forest for the trees?


So my question is: How can I detect line-breaks?

TIA

Jan-Peter


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