Re: OT: high-precision tuner app

2016-05-27 Thread Anthonys Lists

On 27/05/2016 07:16, Michael Hendry wrote:

Other mysteries (to me!) may also be explained in a similar way:

Why aren’t trumpets and clarinets made a bit shorter, so that they don’t have 
to have transposed parts?
Well, they DON'T need transposed parts. You just need to learn a 
different mapping between notes and fingers. As indeed, having learnt 
the trombone, I have to do. If I'm given a part in bass clef, I read a 
C, I play a C. When given a part in treble clef, I read a C, I play a Bb 
a ninth lower.


The major reason as far as I know that clarinets and trumpets etc 
transpose is to do with the fact that a player may play several 
instruments in the course of one piece. And as far as bands are 
concerned, players may be asked to switch instruments to cover for 
missing players. To explain ... (using the trumpet as an example...)


The trumpet comes typically in two tunings - Bb or D. The equivalent 
member of the horn family, the cornet, comes in Bb or Eb (and I believe 
both have a - rare - C version).  Then you have the flugel horn as well. 
Imagine having to play part of a part on a Bb trumpet, then switch to a 
D trumpet half way through, when all your parts are written in concert 
pitch? You read a C, and on the Bb instrument it's first finger. A few 
bars and an instrument switch later, you read a C and on the Eb 
instrument it's first and second finger an embouchure/harmonic lower. 
(And in the orchestra, French/English horns used to change pitch by 
changing the crook, again typically several times in one piece...)


I look at music for brass and wind instruments as tablature. The note 
position tells you what fingering/harmonic to use. The music is 
transposed so the resulting note is the correct pitch. This means that 
any clarinet/sax player can pick up any clarinet/sax and know how to 
play it. Likewise (excluding the trombone) any brass player can pick up 
any brass instrument and know how to play it.


To give an example specifically for you, aimed at the guitar, I'm also 
an amateur classical guitarist. I remember going round my aunt's, who 
was having guitar lessons, and she showed me some pieces that she said 
"were very hard, because they were written for the lute". She was rather 
shocked when I said "oh I could probably sight-read those". It wasn't 
easy, but by tuning the g string down to f#, it wasn't hard either. 
Imagine how much easier it would have been if all the notes meant for 
the g string were transposed up a semitone to match :-) In other words, 
a sort of tablature - the note position indicates the string/position, 
not the pitch.


Oh - and why is the trombone different? Unlike the other brass/woodwind 
instruments, which in their modern form all date from the 1800s, the 
trombone in approximately its present form goes back at least three 
centuries earlier, to the sackbut from the 1500s. So brass/wind notation 
evolved with the instruments, but the trombone long predates that.


Cheers,
Wol

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


Re: OT: high-precision tuner app

2016-05-24 Thread Anthonys Lists

On 23/05/2016 18:38, N. Andrew Walsh wrote:
it's very common to describe a pitch with something like "C# -49.52c" 
where the latter part is a deviation in cents from a standard 
reference pitch (which can also be set as "A440" or some other tuning 
pitch [which is sometimes necessary when dealing with European 
orchestras inexorably tuning themselves higher and higher to seem more 
"flashy" or whatever]).


Not a modern phenomenon. A lot of Baroque parts are almost unsingable in 
the original pitch because they were written for A=400 or somesuch.


And when I bought my first trombone the band I played with threatened to 
hacksaw bits off it because as a modern instrument it was tuned to 
A=440. Most of the (ancient) band instruments were tuned to something 
like A=460 and mine wouldn't sharpen up enough.


Cheers,
Wol

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


Fwd: Re: Placing a section name at the start of a staff

2016-05-12 Thread Anthonys Lists

Resending yet again because the list kept rejecting large attachments ...


 Forwarded Message 
Subject:Re: Placing a section name at the start of a staff
Date:   Tue, 10 May 2016 21:27:26 +0100
From:   Anthonys Lists 
To: lilypond-user@gnu.org



On 10/05/2016 01:05, David Wright wrote:

On Mon 09 May 2016 at 16:52:44 (+0100), Wols Lists wrote:
Reading the manual saves you having to remember everything.
Read 3.2 Titles and headers.


Very helpful, thanks. I do, however, have a slight problem with that ...
I have a custom bookTitleMarkup ... edited in a rather "monkey see,
monkey do" kind of way. That said, it should work pretty much as the
standard version does.




My other approach to doing this sort of thing is "\stopStaff
\cadenzaOn ... \cadenzaOff \startStaff" but will this suppress
things like key signature etc at the start of the line? My initial
experiments in that respect haven't worked, although it seems
obvious to me why. But I don't want to carry on down that route if
it's going to turn into a rabbit's warren of tweaks and fixes to get
right.

Without an example of whay you've done, I wouldn't like to comment.
It seems more complicated.

I use it to put text in the middle of a piece usually - some scores
break the part and put the word "Coda" in the middle, or in my most
recent case, "extended cadenza". I just expect if I try it at the start
of a piece, it's likely to collide with a lot of the stuff lilypond
"just does" for you.

Well, if you've actually done it, then it should be simple to do again
for the new case, ie the start of a piece.

Or is it that you just want somebody to do it for you and then report
back on what they find?


No - I was hoping somebody HAD ALREADY done it, and could say "this is
what worked for me". I've been down enough rabbit holes trying to get
lily to do what I want, and I was hoping somebody might save me a few
trips down the garden path ...

And I DID search the lsr, with no joy.




How do other people deal with section names? Especially, how do you
do it like the score I'm copying - at the start of the line ...

I don't know what the score you're copying looks like. I think we've
been here before...


I'm not a visual person - I tend to describe things as text ... I was
hoping someone who's done something similar would chime in - I would
expect them to recognise the description if they have. I don't like
repurposing stuff meant to be used otherwise - lily normally expects the
section name to be *above* the score part, as part of the header, iirc.

What sort of reasoning is that? If you repurpose something
successfully and report back on it, there's a chance that your case
will be folded into the software. It may even happen that a
generalisation is discovered that had been originally missed. †


And the instrument name normally doesn't change several times per part
... :-) so if I put the section name in the instrument variable I'm not
expecting it work exactly as I would like ... and it'll probably come
with unwanted surprises.

Use the short name; that can be changed on the fly. I use it when the
number of staves changes so that singers know which line is theirs.

† 1) It used to give me great satisfaction to sit down with a user of
my software and watch them do things with it that I had never designed
it for. It their methodology was not straightforward, I would then
redesign things to make it easier and more efficient (which is why I
sat with them in the first place).


I've had the reverse experience - try and design something where the
workflow just flowed, and the users moaned and demanded that the job be
made much more messy and complicated. The company I worked for did
surveys, and I was tasked with writing the survey analysis software. So
I asked for a copy of the questionnaire, and designed the data entry
form to match. The user was meant to open the questionnaire, type the
contents of the first page into the first data entry form, turn the
page, type the contents of the second page into the second form, etc
etc. You'll need to know that page 1 was the company details, and there
were multiple page 2s, one per country.

When the survey designers had successfully run the first survey, they
handed it over to the department who were supposed to be maintaining the
survey. They were outraged. They wanted to rip all the questionnaires
apart, bulk enter all the page 1s together, sort all the page 2s BY
HAND, and bulk enter each country one by one ... sometimes one despairs ...



† 2) A picture is worth a thousand words.



Q. Why do some people much prefer the radio over the TV?
A. Because the pictures are so much better!

I'm one of those people. That said, if I want other people to help me,
then it behoves me to meet them on *their* terms, not mine,

Re: sorry for the spam

2016-05-10 Thread Anthonys Lists

On 10/05/2016 20:55, Federico Bruni wrote:
The message was sent from nabble, so I guess that someone stole the 
password to log in there (not your gmail password). Try updating the 
password on nabble.com 


Does nabble hide (or partially obscure) email addresses like google 
groups does? If not, then it's pretty irresponsible of nabble but a 
simple screen-scraper-type program could easily find your posts to the 
list, and from that send messages to the list that claimed to be from 
you. No password-stealing required at all ...


Cheers,
Wol

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


Re: sorry for the spam

2016-05-10 Thread Anthonys Lists

On 10/05/2016 19:05, MarcM wrote:

I am sorry but i am not sending those messages. Someone accessed my gmail
account, took the contacts and is spoofing my email address.

I received an email of insults from Cynthia Karl  which
really is not necessary. I secured my gmail account but it's apparently not
enough.

Thanks for your understanding.

Feel free to remove me from the list.

Dunno about gmail, but we regularly have this problem with yahoo 
accounts. I get the impression that hackers get into the server and as 
Marc says, they get the contact list and spoof the email address.


Contrary to Marc's assumption, I doubt his email account was hacked. The 
hackers have some way of getting hold of the contacts without having to 
actually break into the account, which is why securing the account 
didn't work ... and which is why I avoid cloud email accounts ...


Cheers,
Wol

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


Re: Placing a section name at the start of a staff

2016-05-10 Thread Anthonys Lists

On 10/05/2016 17:45, Stephen MacNeil wrote:
>>Thank you very much. It's close, but will need a little tweaking. 
Your example is right-justified against the left margin, whereas I 
want it >>starting at the left margin, and pushing the staff to the right


remove indent

\paper {


%indent = 0


%left-margin = 15


}


does that work?


I tried that ... the text moved to the right, but not enough. I suspect 
removing the indent re-installed the standard indent, and the text is 
justified flush with that, but I need to add a bigger indent to make room.


>>The other glitch is the inter-score spacing seems to be slightly 
larger than the intersystem spacing - I'm trying to tell by eye and 
it's >>difficult to be sure - but if it's hard to tell then I should 
be able to live with it :-)


If I understand it's probably because the instrument name takes lager 
space, so make it smaller? But I am not exactly sure that's what you mean.



What I meant was I suspect the space between scores is greater than the 
space between staffs. I need to investigate. It's bed time for me now 
(silly o'clock start for work tomorrow) so I can't play with it now, but 
I've got plenty of leads to keep me going, thanks. I'm probably going to 
try shortInstrumentName for the subsequent texts to try and keep 
everything in one \score, but if that doesn't work I think multiple 
scores will work fine.


Thanks very much,
Wol

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


Re: Placing a section name at the start of a staff

2016-05-10 Thread Anthonys Lists

On 09/05/2016 04:11, Stephen MacNeil wrote:
Actually I just noticed \halign -- that's not needed I copied it from 
another one where it was needed


so those examples should just read

\set Staff.instrumentName = \markup { \box \fontsize #5 \pad-around 
#.5 \bold "B"}



etc.



Thank you very much. It's close, but will need a little tweaking. Your 
example is right-justified against the left margin, whereas I want it 
starting at the left margin, and pushing the staff to the right 
(actually, I think that was your \halign, removing that moves it 
partially (but not enough) to the right so I'll have to play).


The other glitch is the inter-score spacing seems to be slightly larger 
than the intersystem spacing - I'm trying to tell by eye and it's 
difficult to be sure - but if it's hard to tell then I should be able to 
live with it :-) So now I know this approach should work without too 
much difficulty.


It sounds like shortInstrumentName might work even better from my point 
of view, but my first attempts in that direction have not been 
promising. I think I know what I'm doing wrong, though.


Thanks again
Wol

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


Placing a section name at the start of a staff

2016-05-08 Thread Anthonys Lists
Basically, I want to do pretty much what "instrument name" does in a 
score - I want to put the name of the section in front of the start of 
the staff. The problem is, as always, when you use a feature for what 
it's not intended for, you can get unexpected side effects. I've got 
four sections, so that'll mean four \score's. Will I get unexpected 
(read - unwanted) headers between the scores? Basically, if you don't 
notice the section name, you shouldn't realise that the music doesn't 
just flow on.


My other approach to doing this sort of thing is "\stopStaff \cadenzaOn 
... \cadenzaOff \startStaff" but will this suppress things like key 
signature etc at the start of the line? My initial experiments in that 
respect haven't worked, although it seems obvious to me why. But I don't 
want to carry on down that route if it's going to turn into a rabbit's 
warren of tweaks and fixes to get right.


Searching the lsr or googling just points me at loads of stuff about 
"outside staff objects" - not surprisingly since text is normally 
outside the staff - but it leaves me wondering "am I not using the right 
search terms, or is there nothing to find?".


How do other people deal with section names? Especially, how do you do 
it like the score I'm copying - at the start of the line ...


Cheers,
Wol

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


Re: Choice of pitch input mode

2016-04-29 Thread Anthonys Lists

On 29/04/2016 12:58, Matt Hood wrote:

Hi all,

I’ve got a non-technical question regarding mode of pitch input. What does 
everyone prefer? Relative, absolute, or a mix of both?


Relative. Every time. Alhough I'm sure other people will disagree with 
me :-)


I’ve always stuck to relative, but I feel like I’ve hit a brick wall as far as 
fluency goes. I’m still quite slow at it, and I spend half of my time trying to 
work out whether I need to change octave or not - usually getting it wrong, and 
watching half of a page disappear into ledger lines.


The problem isn't applying the rule (the rule is easy). The problem is 
*remembering* to apply the rule. If it's a fourth away or less then no 
modifier is needed. I actually find it more effort keeping note 
*lengths* accurate.



  Add in temporary polyphonic passages, chords, etc, and it all just becomes an 
exercise in trial and error. Any tips for keeping control?


Mmmm. I don't tend to do chords ... I can see where that makes life 
difficult ... I think if I had to do a lot of chords I probably would 
switch to absolute. But for entering voices - and even when combining 
them - to me relative just seems so much simpler.




Any anecdotes or mildly related musings are welcome, I feel like it would be 
good to facilitate a general discussion.



Cheers,
Wol

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


Re: Replying to posts

2016-04-28 Thread Anthonys Lists

On 28/04/2016 15:18, Johan Vromans wrote:

On Thu, 28 Apr 2016 13:43:34 +0100
Steve Downes  wrote:


4) it doesn't go out of date due to format change

Although not related to email per se, this is the strongest argument to
always use the simplest data format that can represent the information.



5) It doesn't corrupt your formatting

Which is why HTML is considered "not fit for purpose" (as indeed 
Thunderbird often is ...) on many development lists.


Cheers,
Wol

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


Re: Multi-measure rests and mark collisions ...

2016-04-28 Thread Anthonys Lists

On 27/04/2016 01:04, Carl Sorensen wrote:

On 4/26/16 3:56 PM, "Thomas Morley"  wrote:


2016-04-26 2:21 GMT+02:00 Wols Lists :

On 25/04/16 05:31, David Wright wrote:

(I still don't know what you're trying to accomplish
[...])


The problem here is the thread has drifted quite a lot. Sorry, David, my 
previous email was a bit sarky, for which I apologise, but as I said in 
my original email, this is my eternal bugbear, and you touched a nerve 
... Incidentally, I didn't notice this earlier, but the house style I'm 
copying DOES put the tempo above the tune name ... :-)

Copy "House Style", maybe?
And the whole point of this entire thread has been about
SAVING VERTICAL SPACE - it's just plain butt-ugly for markup to stack
vertically when a slight shift sideways could save lines - plus there's
the high price I put on page turns that could be saved by reclaiming
that wasted space.



Anyway, you seem to want multiple texts applied to a the same BarLine.
These texts shouldn't be stacked vertically but horizontally, right?

I think that the desired functionality is to allow markups to be loosely
tied to notes, so that if possible, they can shift horizontally some
amount instead of shifting vertically to avoid collisions.


Yup. Because actually, a lot of markup doesn't actually belong to a 
*note*. It belongs to a *phrase*. Which leads to the desire that, not 
only should markup shift right or left to avoid a collision, it should 
be able to push *music* out of the way. For example, I have a bit of 
code similar to the following ...


R1 | \mark \default \tempo "Scherzando" R1*8 | \mark \default

At present, the scherzando sits above both rehearsal marks. And if I had 
another tempo at the second mark, I'd have colliding tempi which doesn't 
make musical sense :-) If only the scherzando could say "I apply to the 
next 8 bars. The 9th bar must come after I end".


That is, there could potentially be a shift in both X and Y to avoid
collisions, and the shift with the least badness is the one that is chosen
-- perhaps it's one line up in Y and two lines left in X, or something
similar.

If we had some facility for doing such a movement, then it would be
relatively straightforward to assign penalties for taking up more vertical
space, along with penalties for moving horizontally away from the desired
home point.  And we'd choose the layout with the lowest penalty.

But right now, as far as I know, we have no such facility.  I believe that
right now, we horizontally space the music elements to avoid collisions,
and then we vertically shift the outside-staff grobs to avoid collisions,
and then we space the skylined staves to achieve the desired spacing.  And
there's nothing in this algorithm that lets us simultaneously vertically
AND horizontally shift the outside-staff grobs.

Such a feature would be cool to add.  But it's not trivial in any sense of
the word, given the current LilyPond spacing architecture, as I understand
it.


That's what I understood, too. Because the outside-staff grobs need to 
make the music elements wider if appropriate, and coding that sort of 
feedback loop is probably a nightmare! In fact, coding it AT ALL seems 
to be a nightmare with the current state of lilypond. You need some way 
of allocating a minumum width to a random fragment of music (like above 
- I need those 8 bars to take a minumum width, but while the current 
part is all rests, another part may be all notes, so I can't even say 
"make this rest that wide" because next time round it might not be a rest!


And apologies if I am grumpy about this topic, but as I said earlier in 
the thread, it seems that every time I work around one problem, a 
different one replaces it - that's why the original post just asked "any 
pointers?".


I always used to deal with the multiple markups problem by doing 
"s4\markup s2.", except that this time round I noticed the problem with 
it breaking up multi-measure-rests. So I (re)found the trick of 
"<>\markup", except that moved the markup to the left and exacerbated 
the collision problem.


Now I've been given the trick of "\markup "   text" " (ie leading 
spaces) but that seems temperamental - with pretty much identical code I 
have two markups where, in the first instance, the rehearsal mark has 
fallen through the blank space to rest on the stave, as required. But 
the second instance - near as dammit identical as far as I can see - the 
rehearsal mark has only fallen to the horizontal centre line of the 
markup, despite there being nothing underneath it preventing it falling 
to the stave.


It's just so  frustrating :-(

Cheers,
Wol

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


Re: Replying to posts

2016-04-27 Thread Anthonys Lists

On 27/04/2016 12:35, N. Andrew Walsh wrote:


With all due respect, considerate is as considerate does. Shouting
and screaming because you use some obscure tool that doesn't work
the way 99% of the internet messaging tools in use work, and
expect people to be accommodating of you, isn't considerate.

Well,  here's the part where I feel like I should put the popcorn down 
and step back in. See, I've had to spend no small amount of time 
arguing with people higher up in the various institutions where I've 
worked, that I can't read mails they send in proprietary formats. I 
had one place that would type an email message as a Word document and 
send that as an email attachment, because they didn't understand how 
email worked. And I, that annoying nerd with the Linux box, had to 
point out every time that I couldn't read it and got told in no 
uncertain terms that I would "get mail like everybody else did" and 
kindly asked to keep my mouth shut.


And the reality is, most people HERE, including the most important ones! 
use simple, plain-text, email clients. There's a reason why Outlook 
Lusers are not welcome on most mailing lists, and that's because the 
result is incomprehensible, pretty fast!


Why is it that you get so many idiots who think that "ooh, shiny" is the 
same as "new, improved". Lilypond is not aimed at the "ooh shiny" 
brigade, so if you want to be part of that, please go somewhere else ...


>>> But the slow internet connection issue is not really a problem for 
emails, even at the snail-like speed of 1.6GBs.


I would absolutely LOVE a speed of 1.6GBs (This wasn't you Andrew, I 
know) but, much as some people may have moved up, I think a speed of 
1.6Mb/s is much more common - and maybe four orders of magnitude slower! 
Amd even THAT is fast for a lot of people. Ever heard of the "long 
tail"? There's a lot of people still who are on slow links or 
pay-per-MB, and mailing list etiquette is aimed at not wasting OTHER 
PEOPLES' resources. It's just plain rude to expect otherwise.


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


Re: Guitar bend error

2016-04-24 Thread Anthonys Lists

On 24/04/2016 16:13, Stephen MacNeil wrote:

Add a line break before bar 25

r4 r8 e' g2 | \break  % gradual bend on g2 towards a |

% BAR 25

\bendGrace g8( a2) g2( | % gradual bend on g2 towards a |

\bendGrace g8 a4 g8) e g2( | % gradual bend on g2 towards a |



Or, if it's a longer piece and you want lily to choose the line breaks 
to look nice, you could put a \noBreak after bars 25 and 25?


r4 r8 e' g2 | % gradual bend on g2 towards a |

% BAR 25

\bendGrace g8( a2) g2( \noBreak | % gradual bend on g2 towards a |

\bendGrace g8 a4 g8) e g2( \noBreak | % gradual bend on g2 towards a |


(not tested, but that was my immediate reaction on reading this thread - 
disallow breaks where they're going to cause a problem)


Cheers,
Wol

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


Re: Multi-measure rests and mark collisions ...

2016-04-24 Thread Anthonys Lists

On 24/04/2016 03:13, David Wright wrote:

On Sat 23 Apr 2016 at 11:25:05 (+0100), Wols Lists wrote:

On 22/04/16 19:36, David Wright wrote:

On Fri 22 Apr 2016 at 15:47:59 (+0100), Anthonys Lists wrote:

On 22/04/2016 14:31, Kieren MacMillan wrote:

David K wrote:

Hm?  How could you even have a compressed multi-measure rest when there
is anything like an "8-bar phrase" in parallel?
That sounds like a problem that cannot occur.

I assume Wol (like me) has the problem where the compressed rest happens in the 
part, not in the full score — but one wants not to have to use multiple \tag 
constructs just to handle this issue.

Exactly... I write my music with "voiceStaff" to contain all the
score-level stuff eg tempi, tune names, rehearsal marks etc, and
"voiceInstrument" to contain the stuff that varies by instrument, eg
notes, dynamics, anything else like that ...

In the case example, the phrase is eight bars long, commencing with
a two-bar rest. For another instrument, it won't have a rest. And I
don't want the output to change dramatically depending on what's in
the part.

So of course, because voiceStaff is not meant to contain notes, it
uses "s" all the time. And I very rarely produce scores, this case
is absolutely typical for me in that we only have a bass-clef part,
and because while some players in our section can read both, we have
some players who can only read bass or treble clef so transposing is
a regular requirement. So I'll have three parts to do, 1st, 2nd and
bass.

I haven't followed all that. Is this the sort of thing you want?


Pretty much. In your example it's exactly okay - the "poco allegretto"
is to the right of the rehearsal mark, so the four marks take three
lines to display. (Note I tend to use box-barnumber, so my rehearsal
marks can get quite wide :-)

Now, imagine the "poco allegretto" and "This is the army mr jones" were
the other way round - the "This" would collide with the rehearsal mark,
and it would take four lines.

I'm not quite sure why you'd do that. The tempo is part of the
music. The tune titles that you want to include are not. But you can
add spaces to the beginnings of strings to avoid collisions.


Ah - does that mean the rehearsal mark would happily overwrite the blank 
space at the start of the other markup string?


But as for "why would I want to do that" - to serve as an example maybe. 
Let's change it then. Get rid of the tempo. The title would still 
collide with the rehearsal mark, and it would still take three lines - I 
wouldn't save a line. But shift the title a couple of mill to the right, 
and it would drop down and save us a line. SAVING VERTICAL SPACE is the 
point.



I want some semi-automatic way so I can push the other markup to the
right of the rehearsal mark and make sure I only use three lines. Oh -
and if I use "extra-spacing-width" (which iirc works fine with
multi-measure-rests), as soon as I have another part which actually has
some notes in the first bar of the MMR, that first bar will be the same
width as the markup so that then looks awful :-(

A lot in there. Your OP didn't have automation specified. Most people
drop into scheme for that, don't they?


Most people? Most people probably give up and go back to Sibelius, or 
Finale, or whatever. My day job was programming, and I haven't managed 
to get to grips with Scheme (it was FORTRAN/C, so Scheme is a bit of a 
culture shock :-) because time to concentrate and learn is a luxury :-(



Why not push the rehearsal mark left if you want loads of text to the right?
I don't get the bit about notes in a MMR. Isn't that a contradiction?


Not really. My modus operandi is

voiceStaff = ...
voiceInstrument1 = ...
voiceInstrument2 = ...

\score {
  <<
voiceStaff
voiceInstrument1
  >>
}
\score {
  <<
voiceStaff
voiceInstrument2
  >>
}

The problem is that the contents of voiceInstrumentx has a *major* 
influence on the way the contents of voiceStaff is displayed :-( 
Instrument1 may have an MMR, Instrument2 may have notes, they affect the 
bar spacing in different ways, and I may get markup collisions in one 
part, and no collisions in the other. Basically, lily is setting the 
notes, and then fitting the markup over the notes. There are occasions 
when you want to set the markup and then fit the notes under it.





The problem really is, all I want to do is stick multiple marks on a
barline (which doesn't work, lily doesn't do multiple \mark's :-(, and I
want to be able to move those markups to the right so they don't collide
with the rehearsal mark. \tempo *partly* solves my problem.

Well, that's a relief. BTW you can have multiple marks. My example had
one \tempo and the rest were marks.


The trouble
is, all the tweaks I've come up with (like f

Re: Multi-measure rests and mark collisions ...

2016-04-23 Thread Anthonys Lists

On 23/04/2016 12:23, Kieren MacMillan wrote:

Hi Wol,


if I use "extra-spacing-width" (which iirc works fine with
multi-measure-rests), as soon as I have another part which actually has
some notes in the first bar of the MMR, that first bar will be the same
width as the markup so that then looks awful

\textLengthOff

?

Hope this helps,
Kieren.


BRILLIANT (but not the way you intended :-)

As far as I can tell, \textLengthOff is the default, but I looked it up 
in the manual, and found out how to attach a markup to a zero-length 
note! Just attach it to an empty chord!


So instead of doing "s4\markup s2. s1*7", I can simply do "<>\markup 
s1*8", and that stops my multi-measure-rests mucking up. (I think I'd 
found that before ages ago, but forgotten it ...)


I'll need to play a bit more, but that's another niggle fixed ... :-)

Cheers,
Wol

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


Re: Multi-measure rests and mark collisions ...

2016-04-22 Thread Anthonys Lists

On 22/04/2016 16:55, David Kastrup wrote:

>The first fermata prints fine. The second fermata prints "programming
>error: Object is not a markup." in the log and doesn't print. So
>that's another bug tracked down in my piece,

That's_explicitly_  what \fermataMarkup is for.  If people consulted the
manual before reporting known quirks...


Oops - I *used* to know the manuals very well - I proofread them from 
cover to cover back in Graham's day ...


I know a lot has changed since then - as I said \fermata didn't even 
work on notes back then - but there's a lot that's changed since then. 
Having a comprehensive out-of-date knowledge can bite you ... and I 
don't use lily enough to keep up with the changes.


That said, this *is* the user list, and sometimes RTFM is a good answer. 
Although I hate it when they don't tell you where in the FM to R. 
(That's not the case here, though, I ought to be able to find it very 
easily :-) Often it's not knowing WHAT to look for that's the problem, 
as in here I thought I knew about fermata ...




We'd probably have less inclination to address the quirks eventually.
As David Wright said, it seems MMRs are just one big quirk (as I'm 
finding out with this piece), so that's probably a big job to address :-(


Cheers,
Wol

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


Re: Multi-measure rests and mark collisions ...

2016-04-22 Thread Anthonys Lists

On 22/04/2016 14:49, Paul Scott wrote:

I assume Wol (like me) has the problem where the compressed rest happens
>in the part, not in the full score — but one wants not to have to use
>multiple \tag constructs just to handle this issue.

Me too.  I asked a long time ago and got the idea that I was the only
one concerned about this.  Essentially why is alignment different for
multi-measure rests than notes.

And other things too? Try the following ...

f1->\fermata R1*3 R1\fermata

The first fermata prints fine. The second fermata prints "programming 
error: Object is not a markup." in the log and doesn't print. So that's 
another bug tracked down in my piece, but - from a musician's pov - it 
doesn't make sense that the first example on a note should work fine, 
and the second on a rest produces an error. (It never used to work on 
notes at all, iirc, only as a mark on barlines, so maybe I should be 
grateful for small mercies :-)


It's easy enough to fix - something like "\markup #symbol.fermata" - 
I'll have to look up the syntax - but it's just frustrating that it's 
not consistent.


Cheers,
Wol

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


Re: Multi-measure rests and mark collisions ...

2016-04-22 Thread Anthonys Lists

On 22/04/2016 14:31, Kieren MacMillan wrote:

Wol: Scan through the thread starting 
at  and 
see if anything there helps.

Good luck,
Kieren.
Just scanned it - unfortunately I'm using \markup on an s, rather than 
\mark, for my tune name (because I've already got two colliding marks, 
rehearsal and tempo), so that thread saying "compress MMRs when they 
don't contain blah blah" will fail because I've got a markup in there :-(


If I had some mark I could stick the tune name in that wouldn't collide 
with and be suppressed by the rehearsal mark, then maybe it would work. 
But without writing some new kind of mark (is there one already 
available? it might have been added at some point?) I don't know what 
else to do - using markup seemed the best option. And I don't fancy 
trying to write a new mark, I've dug into this on a couple of occasions 
and got out of my depth rather quickly.


Losing an MMR isn't really a problem, it just looks a little bit odd :-( 
and I come across plenty of music that (imho) has weird MMR settings 
anyway. Usually because they've compressed the end of one phrase into 
the start of another - I really don't like it when a single MMR spans 
several incomplete musical phrases.


Oh well. I'll carry on fiddling :-) But it is frustrating when all I 
want to do is move a bit of text a smidgeon to one side, and I just can 
NOT work out how to do it without all sorts of other unintended side 
effects ...


Cheers,
Wol

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


Re: Multi-measure rests and mark collisions ...

2016-04-22 Thread Anthonys Lists

On 22/04/2016 14:31, Kieren MacMillan wrote:

David K wrote:

>Hm?  How could you even have a compressed multi-measure rest when there
>is anything like an "8-bar phrase" in parallel?
>That sounds like a problem that cannot occur.

I assume Wol (like me) has the problem where the compressed rest happens in the 
part, not in the full score — but one wants not to have to use multiple \tag 
constructs just to handle this issue.
Exactly... I write my music with "voiceStaff" to contain all the 
score-level stuff eg tempi, tune names, rehearsal marks etc, and 
"voiceInstrument" to contain the stuff that varies by instrument, eg 
notes, dynamics, anything else like that ...


In the case example, the phrase is eight bars long, commencing with a 
two-bar rest. For another instrument, it won't have a rest. And I don't 
want the output to change dramatically depending on what's in the part.


So of course, because voiceStaff is not meant to contain notes, it uses 
"s" all the time. And I very rarely produce scores, this case is 
absolutely typical for me in that we only have a bass-clef part, and 
because while some players in our section can read both, we have some 
players who can only read bass or treble clef so transposing is a 
regular requirement. So I'll have three parts to do, 1st, 2nd and bass.


And because text seems to centre on the "s" (or something like that), as 
you say, its appearance is affected greatly by what happens to be in the 
part :-( I just want markups to be able to shunt stuff out of the way 
*sideways*. Bearing in mind the parts I'm setting, often the cost of a 
page turn is unacceptable, so to lose a huge amount of space because a 
markup increases staff spacing (or wastes horizontal space pushing music 
aside) is a nightmare. A march part, for example, has to cram an entire 
piece onto a piece of A5 paper (half-letter size, for Americans). And 
no, you can't just turn over ...



Wol: Scan through the thread starting 
at  and 
see if anything there helps.

Thanks, I'll investigate.

Cheers,
Wol

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


Re: Termination of variable definitions

2016-04-22 Thread Anthonys Lists

On 19/04/2016 21:55, Johannes Waldmann wrote:

http://lists.gnu.org/archive/html/lilypond-user/2016-04/msg00465.html


... But it's recursive.

what does that mean?  - J.W.



Recursion: See "Recursion".

To take the violin example,

violin = \new Staff {
  \relative {
a'4 b c b
  }
}

"violin" contains a "\new Staff { ... }" expression.

But "Staff" contains a "\relative { ... }" expression

and "relative" contains a music expression "a'4 b c b"

It's turtles all the way down :-)

Cheers,
Wol

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


Multi-measure rests and mark collisions ...

2016-04-22 Thread Anthonys Lists

My usual bugbear ... :-(

I have a couple of instances where I have a rehearsal mark, a tempo 
mark, and a tune name all wanting to be over the same barline (this is 
an arrangement, where there are several tunes and each is identified 
where it occurs).


So I have something along the lines of

<<
{ s1 | \mark \default \tempo "poco allegretto" s1^\markup "This is the 
army mr jones" s1*7 }

{ c1 | R1*2 }
>>

However, the two "s1"s are causing the R1*2 to print as two separate 
bars :-( I'm also getting


warning: MultiMeasureRestText has empty extent and non-empty stencil.

in the log, which I guess is related. Any ideas how to get the rest to 
print as a multi-measure rest? The problem, from my pov, is that the 
first, markup, line is meant to be shared across multiple parts, so if I 
do s1*8^\markup, the text is centred over the 8-bar phrase or some other 
wrongness, although that fixes the multi-measure-rest problem.


The other problem I have, is is there any way I can shunt markup left or 
right (both tempo and text)? I've been using extra-spacing-width, which 
works a treat sometimes, and is dreadful elsewhere. It's been fine for 
rehearsal marks, but when I use it on tempo and text, it's been shoving 
the music out of the way, which then looks awful. I just want to push 
the text slightly to the right to avoid colliding with the rehearsal 
mark (and I have tried extra-spacing-width leaving one or other argument 
at its default +-infinity, and again it seems to work sometimes and be a 
nightmare elsewhere ...) All the horizontal adjustment stuff I've seen 
seems to be for in-staff objects like lines, noteheads, accidentals ... 
will they work on markups?


Pointers greatly appreciated ...

Cheers,
Wol

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


Re: Lilypond error behaviour

2016-04-18 Thread Anthonys Lists

On 18/04/2016 22:01, Sharon Rosner wrote:
Lilypond would expectedly complain about line 2, then proceed to put 
together the PDF file and finally exit with a “fatal error”. The PDF 
File would include 2 scores, so that means right after encountering 
the syntax error on line 2, it continued to correctly process line 3. 
So what was it that was fatal about this? Is this a matter of some 
internal implementation details we don’t understand or what? And 
again, how is this any different than a non-fatal error?


Firstly, as a programmer and a musician, I'd say that for lilypond to 
produce whatever output it can is IMPORTANT. A failed pdf is a perfectly 
usable debugging trace - I've used a computer system that, if the 
program failed, it erased any and all changes to open files - which is a 
recipe for frustration when debugging - wtf is the computer deleting my 
debug logs for!, and actually a data integrity nightmare too ... the 
more debugging info I have the better!


And secondly, to me it seems clear why the error is termed "fatal" - the 
parser aborted. You don't want a compilation error to return a fatal 
error to "make" and, because it receives a fatal error, make throws a 
fatal error and crashes too, do you? The question is WHERE in the stack 
do we actually trap and handle the error.


Lilypond, imho, makes the correct decision FOR THE USER, traps the 
error, and then turns the incomplete output, from the *crashed* parser, 
into an incomplete pdf. (Or, in this example, restarts the parser for 
the next score.) A *programmer* (which most lilypond users are *not*), 
wants to handle the problem at the next level up, in "make", but let's 
face it, how many of lilypond's users even know what make *is*?


And how many *programmers* actually bother to check compilation logs and 
fix problems that are thrown up? If you want strict error handling then 
add a --werror option to lilypond that just says "crash on error and let 
make handle it", then those people using make can deal with the lack of 
debug info their way.


But leave it the way it is for those users who never check the logs and 
just look to see if the output looks right. I must admit I fall into 
both camps - when running lily on Windows I only check the log if I have 
a problem. When running it on linux, I run it from konsole so I see all 
the errors and warnings anyway. And being the sort of person I am I tend 
to try to get rid of warnings because I know the result is a more robust 
system.


Cheers,
Wol

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


Re: Best Practices for file structures, score and parts

2015-10-02 Thread Anthonys Lists

On 02/10/2015 08:58, N. Andrew Walsh wrote:
do I enter the transposing instruments into the score in concert pitch 
or transposed? Can Frescobaldi (my editor of choice) take an entire 
Voice and transpose it into concert pitch after I've edited, or should 
I enter the content in concert pitch (transposing back into C on the 
fly as I type)?
Playing trombone as I do, I get parts in any combination of bass clef, 
tenor clef, or treble/Bf. I need some sort of convention to avoid 
getting messed up, and the obvious one for me is:


All parts are entered as variables. All parts are copied in in the pitch 
they are written. All parts are wrapped in a transpose to make the 
variable concert pitch. So the notes are entered as either


voiceTromboneI = \transpose c' bf { c e g }

or

voiceTromboneI = \transpose c' c' { bf d f }

When outputting a treble clef part I can then do the following no 
problem ...


\transpose bf c' \voiceTromboneI

Cheers,
Wol

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


Re: Repeat with alternatives

2015-10-02 Thread Anthonys Lists

On 02/10/2015 07:24, Johan Vromans wrote:

On Thu, 01 Oct 2015 19:41:21 +0100
Anthonys Lists  wrote:


Anyways, I think we've all missed the OPs problem. As he phrased it, I
understand he wants

{fixed part 1} {alternative 1} {alternative 2} {fixed part 2} repeat

I'm not familiar with a clean notation for the above.

For the normal repeat, with alternative endings, this would be

|: fixed part 1 |1 alterrnative 1 :|2 alternative 2 |

Would this be understood by the average musician?

|: fixed part 1 |1 alterrnative 1 |2 alternative 2 | fixed part 2 :|

-- Johan


Quite possibly, actually ...

I won't email it to the list, but if people want it (email me off-list, 
trombone parts only) my version of Radetzky iirc has some weird volta 
progression. At the end of the day, it's down to the conductor to make 
sure the players know what they're doing.


Cheers,
Wol

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


Re: Repeat with alternatives

2015-10-01 Thread Anthonys Lists

On 01/10/2015 18:40, Tim McNamara wrote:

On Sep 30, 2015, at 8:22 AM, s.p.korzil...@gmail.com wrote:

Dear Sir / Madam,
  
I’m trying to write a piece that has repeats with alternatives. It seems that “\repeat volta 2” is the way to go with supplying the alternatives in “\alternative”. However, this seems to work only for alternative endings, while I have alternative middle parts.
  
I have tried to fix this manually with introducing volta brackets and repeat signs. Unfortunately Lilypond doesn’t recognize this as a repeat and counts the notes of the alternatives as if they are all played in one run (so that the first note after the alternatives does not start a new measure, as it should, see attachment).

Yes.  You are starting the alternative in the middle of the bar which, from the 
perspective of the musician reading the piece, is going to look very odd and be 
hard to follow.  The alternatives should always be full bars not only for 
Lilypond to function correctly but for the musicians to be able to play it 
correctly without needing a lot of instruction.


But that's no use if you're setting parts for something that someone 
else has written ... it gets thoroughly confusing if some people have 
parts one way, and others have parts another way. I've had to set stuff 
like that and it gets tricky ...


I think I used a mixture of \partial and spacer rests.

Anyways, I think we've all missed the OPs problem. As he phrased it, I 
understand he wants


{fixed part 1} {alternative 1} {alternative 2} {fixed part 2} repeat

How you do that, I dunno, apart from just not using \repeat and setting 
the bits manually.


Cheers,
Wol

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


Re: License of code posted to this list

2015-05-09 Thread Anthonys Lists

On 09/05/2015 22:06, David Bellows wrote:

I'm not sure so this maybe wrong. But AFAIK copyright for content posted to the 
list is by default with the author and has no license by itself. So I think you 
can't assume it's PD.

This sounds correct as well. Does just making the code available to
the world in a public manner imply anything about it being OK to use
it in another project? I don't know the answer to that and thus these
questions. But you are correct, I'm betting, that the author does
automatically own the copyright to the code (at least in the US).


The Berne Convention (which applies to pretty much every country in the 
world - the US was one of the last to join the system) says that 
EVERYTHING you write, by default, is your copyright, for a minimum term 
of 50 years. Various modifications apply, of course, for example 
employees are assumed for the purpose of this to be the employer, so the 
employer gets the copyright etc etc.


The other crucial thing about Berne is that it says the nationality of 
the copyright holder is irrelevant (this was crucial because of the way 
the US made it almost impossible for foreign authors to register or keep 
copyrights).


There's nothing, as far as I know, in Berne that says copyrights have to 
be protectable (a country could abolish copyright and still be compliant 
with Berne, as long as the same rules were applied to works by local 
nationals as to foreign nationals).


So basically, unless the list post explicitly says "this is PD", or 
"this code may be used for any purpose", or some other grant of 
permission, then in most jurisdictions using it is technically illegal. 
A clear example of differences in jurisdiction is that if I used your 
code to make money, that's a criminal offense over here. But not afaik 
in America.


Then in some jurisdictions you cannot abrogate your rights (EU 
especially), and in some jurisdictions you can't place stuff in the 
Public Domain.


Should there be some kind of agreement that everyone signs off on when
subscribing to the mail list concerning any code they might
contribute?

And is the line that David added sufficient?:

Dunno about what David wrote, but I'm sure I didn't sign off on anything 
when I joined the list. Basically, if you want to be legal and you want 
to use some code you saw on the list, you need to get the author's 
permission. Hopefully, he put that permission in the post, otherwise you 
need to contact him. That said, the chances of anyone complaining are 
minimal, and in most jurisdictions breach of copyright is a civil 
offence so the damages will be small and the costs horrendous so nobody 
will want to do anything about it.


Cheers,
Wol

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


Putting text IN the staff

2015-04-26 Thread Anthonys Lists

Simple problem, I can't find the solution ... :-)

Basically, what I want is "\StaffOff   ...text...   \StaffOn". So, 
thinking treble clef, the text would be centred on the "b" line. Markup, 
however, seems to want to be above or below the staff, and that's it. 
How do I force it IN the staff, or am I using the wrong technique 
completely? I know you can force a rest to a note-position, is there any 
way of doing the same with text?


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-26 Thread Anthonys Lists

On 25/04/2015 00:35, Thomas Morley wrote:

Oh - and how do I get Score.VoltaBracket.shorten-pair to affect only the
>*second*  bracket? Do I stick it between the two alternatives? I know when I
>tried something like that last time, it wouldn't even compile ...

\alternative {
   { R2*2 }
   { \once \override Score.VoltaBracket.shorten-pair = #'(1 . 1.4) R2*2 }
}

BINGO.

Thanks. It's all coming together. So voltaSpannerDuration (as suggested 
in the lsr) was the wrong property ... :-(


Looks like I'll have to use this piece as the basis for a little 
tutorial or something :-) Not sure where it would go in the docu.


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


Re: Fixing overlapping notation

2015-04-26 Thread Anthonys Lists

On 26/04/2015 22:02, Anthonys Lists wrote:
And, I'm not quite sure of what it was before, but having changed 
"Take 2nd to D.S." to a rehearsal mark as you suggest, what do I get? 
STAIRCASING MARKUP AGAIN as it collides with the volta spanner! The 
text is supposed to be to the left of the barline, the spanner above 
and to the right. There's no collision, so how do I tell lily to put 
them on the same level? 

CRACKED! :-)

  \once \override Score.RehearsalMark.outside-staff-horizontal-padding 
= -0.1


But it really shouldn't be that difficult ... :-)

Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-26 Thread Anthonys Lists

On 26/04/2015 22:02, Anthonys Lists wrote:
As you suggested, I changed "Allegretto con moto" to a metronome mark 
(that's \tempo, right?) Instant result? STAIRCASING MARKUP AGAIN :-( 
wtf do I adjust now? The documentation is great at telling you HOW to 
change things, but not WHAT to change. I don't know scheme, I don't 
know what to change, Google is useless ... where do I find out what 
the properties are and which one I need to change? 


FOUND IT. I found the magic incantation for Google, which led me to the 
internals reference. Which is on the documentation page ...


Now to do some more digging and try to find the fixes to the other 
problems ... :-)


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-26 Thread Anthonys Lists

On 25/04/2015 01:28, Kieren MacMillan wrote:

Hi Wol,


Hi Kieren, Thomas

So I'm now having another go, and it's just blown up again !!! :-(



It seems to me that there is too much "addressing one issue", when my big 
problem is conflicting solutions! In other words, the solution to one problem promptly 
screws up the solution to another!

You need to apply the solution correctly to all grobs that are affected, i.e., 
both RehearsalMark and TextScript (and maybe MetronomeMark, if you ever use 
it). You can’t honestly expect that we, having taught you that 2+2=4 and 2+3=5, 
also must work out 3+2 for you. Lilypond “programming” (such as it is) requires 
that you take examples of fixes and tools, and apply them beyond the explicit 
example that was first illustrated.


Except to do that, I need a knowledge of tweaks, and scheme, and what 
properties to mess about with.


In other words, I need to be an expert in lilypond to get even basic 
stuff working right!!! This goes back to my comment about "addressing 
one issue" - I've just tried to do what you asked me to do here, and 
it's one step forward, two steps back :-(

Take the "Allegretto con Moto" "Take 2nd on D.S." issue. In the original pdf, 
they were \markup's stacked above each other.

"Allegretto con Moto" should be a MetronomeMark.
"Take 2nd on D.S.” should be a RehearsalMark.
Each grob was created for a reason — please use them correctly.


I have now tried converting "Take 2nd on D.S." into a \mark

Good.


but it breaks Kieren's fix for the stacking! :-(

Then apply to RehearsalMark the tweak I gave you for TextScript. Does that not 
fix the problem?


it really cannot handle colliding markups very well (sorry Kieren!)
And here I am, making exactly this moan YET AGAIN, having tried to do 
exactly what you told me! :-(

Please don’t blame the tool. In the last 10,000-frame score (50 staves x 200 
measures) I compiled, which contained thousands of markups, the number of 
tweaks I had to make to RehearsalMarks, MetronomeMarks, and TextScripts put 
together was incredibly low (somewhere around 20).

I’m not discounting your frustration — I’m sure it’s real and constant. But 
Lilypond is not the main problem here.


As you suggested, I changed "Allegretto con moto" to a metronome mark 
(that's \tempo, right?) Instant result? STAIRCASING MARKUP AGAIN :-( wtf 
do I adjust now? The documentation is great at telling you HOW to change 
things, but not WHAT to change. I don't know scheme, I don't know what 
to change, Google is useless ... where do I find out what the properties 
are and which one I need to change?


And, I'm not quite sure of what it was before, but having changed "Take 
2nd to D.S." to a rehearsal mark as you suggest, what do I get? 
STAIRCASING MARKUP AGAIN as it collides with the volta spanner! The text 
is supposed to be to the left of the barline, the spanner above and to 
the right. There's no collision, so how do I tell lily to put them on 
the same level?


I know I'm imposing on you, expecting a load of help, but this IS a big 
frustration. Why should I need to be delving so deeply into tweaks, 
properties, and all that just to do something as simple as getting two 
markup thingys (of whatever sort) to print NEXT to each other instead of 
ABOVE each other :-( I know I'm being a pain, but if you're looking at 
persuading more people to jump into the pool, how many people hit these 
problems and silently jump out again :-(


And sorry, but yes, just before I've hit send, I *have* gone to the 
website, and *have* looked at the documentation, and everything seems to 
be aimed either at getting the NOTES in the right place, or WRITING NEW 
CODE. I can't see anything on the documentation page that looks like 
it's supposed to tell you what scheme properties are available for 
tweaking. Is the only way to find out, to start digging into the code?


(NB - don't rush to reply - I'm doing this in a few snatched moments 
before going to bed - my alarm will be going off in only a few hours for 
a "silly o clock" start to work so I'm going to bed in a few minutes...)


Cheers,
Wol

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


Re: Creating LilyPond Object Models

2015-04-26 Thread Anthonys Lists

On 26/04/2015 17:08, Urs Liska wrote:

Hi Paul,

I don't know if that's in any way related to our talk yesterday or if 
it has exclusively been triggered by Carl starting it. But this is 
very much a skeleton of what I was talking about!
It would be absolutely great if you could pour that into a tutorial on 
the basics of writing Scheme engravers.


Maybe "users" will usually not need this kind of information, but OTOH 
users often need solutions that can be provided using this technique. 
So having a slow-paced introductions may well lead to a greater number 
of people daring to dive into these waters. 


Don't forget, also, that "need to know" may be great in wartime, to 
prevent secrets leaking, but it's not good for learning. And certainly, 
I find the best way of learning is to have stuff aimed at what I'm 
trying to do, but is full of snippets of bits of information that go 
that little bit deeper. That way, I have the incentive to study the 
teaching material, but it's actually teaching me at a deeper level than 
I need - so I can then progress to the next level with greater ease. So 
probably this information would work well as a footnote in a user 
tutorial - when it talks superficially about engravers it could point 
them at this somewhat deeper explanation of what an engraver actually is.


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 25/04/2015 01:28, Kieren MacMillan wrote:

Hi Wol,


It seems to me that there is too much "addressing one issue", when my big 
problem is conflicting solutions! In other words, the solution to one problem promptly 
screws up the solution to another!

You need to apply the solution correctly to all grobs that are affected, i.e., 
both RehearsalMark and TextScript (and maybe MetronomeMark, if you ever use 
it). You can’t honestly expect that we, having taught you that 2+2=4 and 2+3=5, 
also must work out 3+2 for you. Lilypond “programming” (such as it is) requires 
that you take examples of fixes and tools, and apply them beyond the explicit 
example that was first illustrated.


Take the "Allegretto con Moto" "Take 2nd on D.S." issue. In the original pdf, 
they were \markup's stacked above each other.

"Allegretto con Moto" should be a MetronomeMark.
"Take 2nd on D.S.” should be a RehearsalMark.
Each grob was created for a reason — please use them correctly.


I have now tried converting "Take 2nd on D.S." into a \mark

Good.


but it breaks Kieren's fix for the stacking! :-(

Then apply to RehearsalMark the tweak I gave you for TextScript. Does that not 
fix the problem?



THANK YOU THANK YOU THANK YOU.

It's not perfect, but this has got it looking right! I now need to try 
and understand what exactly is going on "under the hood", especially 
where things didn't seem to be behaving right, but I think my 
understanding has already improved somewhat.


And I need to learn what has changed since I first started using 
lilypond - I don't think things like MetronomeMark existed back then :-) 
I know lily has changed but I don't think I realised quite how much - it 
says something that all the stuff that worked back then for me still 
works today.


It's time for bed - it's past 2am here (GMT+1), but thank you very much 
again!


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 25/04/2015 01:08, Kieren MacMillan wrote:

Hi Wol,


How do I justify markup against a note?

How about \once \override TextScript.self-alignment-X = #RIGHT ?


That's what Thomas has kindly suggested. Except it's not working for me 
- his example works fine, my cut-n-paste doesn't ... what gives ???



It seems the only way to do it is to use a mark

Please don’t mix RehearsalMark grobs with TextScript grabs. Use the correct one 
for the correct circumstance, and adjust/tweak as necessary.


I know it's not a good idea, I'm clutching at straws here ... it's just 
so damn frustrating :-(




Hope this helps!
Kieren.


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 25/04/2015 00:44, Thomas Morley wrote:

Thanks. That looks great EXCEPT I can't get it to work for me :-( I run 
your example, and it's bang on. I try to do the same in my part, and it 
don't work :-(


You've got a rehearsal mark, followed by a right-aligned text markup. I 
copy your right-aligned markup syntax, and it just doesn't work for me 
:-( I can't copy your example exactly, unfortunately, because you start 
with a rehearsal mark and I start with markup - I can't convert the 
markup to a mark because I've already got a mark there ...


  s2*8 \mark \markup { \musicglyph #"scripts.segno" }
  \repeat volta 2 {
<>^\markup { "Allegretto con Moto"} s2*7
\override Score.TextScript.self-alignment-X = #RIGHT
\textLengthOn
<>^"Take 2nd on D.S."
  } \alternative { { s2 } { s2 } }

As you can see, unless I'm going blind or something, I've copied your 
syntax for right-aligned markup exactly (I copy-n-pasted it). So why the 
devil isn't it working :-( because "Take 2nd" is still in the first time 
bar :-(


Cheers,
Wol

Play around with:

{
 \set Staff.instrumentName = "default "
 R1
 \mark "REHEARSALMARK"
 c4
 <>^"TEXTSCRIPT"
 c2.
}

{
 \set Staff.instrumentName = "tweaked "
 R1
 \once
 \override Score.RehearsalMark.self-alignment-X = #LEFT
 \markLengthOn
 \mark "REHEARSALMARK"
 c4
 \override Score.TextScript.self-alignment-X = #RIGHT
 \textLengthOn
 <>^"TEXTSCRIPT"
 c2.
}

Cheers,
   Harm




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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 25/04/2015 00:35, Thomas Morley wrote:

And please, this is_not_  a tiny example!
You would significantly increase your chance to get help from the list
if you'd try to reduce it to tiny examples only showing_one_  problem.

I do appreciate that you don't want to look through too much code. BUT.

It seems to me that there is too much "addressing one issue", when my 
big problem is conflicting solutions! In other words, the solution to 
one problem promptly screws up the solution to another!


Take the "Allegretto con Moto" "Take 2nd on D.S." issue. In the original 
pdf, they were \markup's stacked above each other. Kieren's suggested 
solved that issue, but pushed "Take 2nd on D.S." into the first time 
bar. Following the docu and lsr, I have now tried converting "Take 2nd 
on D.S." into a \mark, which fixes the alignment issue, pushing it back 
over the 7 bars rest where it belongs, but it breaks Kieren's fix for 
the stacking! :-(


And from the very original post, I had hoped it was pretty clear that 
the problem lay in just a couple of lines in one file. So who cares if 
there's a lot of extraneous stuff that can (mostly) be ignored.


I don't want to moan at people who are being helpful, that doesn't help 
matters anywhere. But I hope you can see my point too - there's no point 
fixing my current problem if it promptly breaks something else 
elsewhere! And the solution seems to be tweaks and over-rides that 
aren't documented because the "simple" solution works fine on its own 
but not in conjunction with something else!


That's why I find using lilypond so frustrating at times - it really 
cannot handle colliding markups very well (sorry Kieren!). Every time I 
find a new work-around another problem kicks me in the face.


And that's why I'd like to see full-blown pieces heavily commented as a 
teaching aid. Because then it's *forced* to address issues like this - 
when problems collide and the easy solution doesn't work because you've 
got two problems not one and the two solutions just won't co-operate.


Sorry for the rant,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 25/04/2015 00:00, Anthonys Lists wrote:

On 24/04/2015 23:48, Kieren MacMillan wrote:

Hi Wol,


Hope this helps!

It has!
So now I hope you see that Lilypond is *EXCELLENT* at handling 
collisions, if you simply correctly instruct her to do so.  =)


Cheers,
Kieren.



:-)

Yup. It's just finding out how to do that :-)

(or at least I hope so. The second text is now in the wrong place, but 
I suspect once I get it justified right, it'll still be fine 
collision-wise.)

I SPOKE TOO SOON

I know have vertically stacked text once again !!! :-( :-( :-(

How do I justify markup against a note? By default it's right justified 
and \right-align etc all seem to justify text WITHIN a markup. They 
don't justifty the markup itself against the note anchor! (And of 
course, when I search the docu and lsr, they point me at \mark or 
\right-align and friends !!! :-(


It seems the only way to do it is to use a mark, where you can't get 
collisions because you can't have multiple marks! And your lovely tweak 
just doesn't work stopping a mark from colliding with a markup :-(


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 24/04/2015 23:48, Kieren MacMillan wrote:

Hi Wol,


Hope this helps!

It has!

So now I hope you see that Lilypond is *EXCELLENT* at handling collisions, if 
you simply correctly instruct her to do so.  =)

Cheers,
Kieren.



:-)

Yup. It's just finding out how to do that :-)

(or at least I hope so. The second text is now in the wrong place, but I 
suspect once I get it justified right, it'll still be fine collision-wise.)


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists


Hi, as mentioned by others your example is not very useful. Actually it 
puzzles me, I have _no_ idea about the intended output. Nevertheless, 
you happily mix different things all the time: TextScript and 
RehearsalMark. They have different usecases and different default 
settings. Anyway you could play with \textLengthOn \textLengthOff 
\markLengthOn \markLengthOff \once \override 
Score.VoltaBracket.shorten-pair = #'(1 . 1.4) adjust the values to fit 
your needs. All are mentioned in the NR. Some explained with example(s). 
'shorten-pair only with it's description (If you wanna know why the 
first value is 1, you'd need to dive in deep, very deep in the source 
code for bar-lines and how they play together with VoltaBrackets. Are 
you sure you really want?) HTH a bit, Harm P.S. \version "2.10.0"  
That would be prehistoric

Thanks - I'll play with that.

As for the intended output, basically I don't want the two text strings 
stacking above each other. It's as simple as that. There's 7 bars rest. 
Musically, "Allegretto con Molto" belongs above the first bar, "Take 2nd 
on D.S." belongs above the 7th. Because the trombone doesn't play, lily 
has put the two texts above each other, instead of one after the other 
horizontally :-(


And the coda sign - again, I don't want it stacked vertically above the 
repeat bracket - I need to shorten the bracket so it can drop down to 
sit horizontal with the bracket, over the bar line.


That's the problem with both pain-points - vertical stacking is the 
wrong thing to do.


Oh - and how do I get Score.VoltaBracket.shorten-pair to affect only the 
*second* bracket? Do I stick it between the two alternatives? I know 
when I tried something like that last time, it wouldn't even compile ...


( 2.10.0? I haven't updated the version string. My Windows laptop has 
2.18, my gentoo desktop has 2.15 (the latest "stable" there, I think))


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 24/04/2015 22:30, Carl Sorensen wrote:


On 4/24/15 2:00 PM, "Anthonys Lists"  wrote:


On 24/04/2015 20:23, Simon Albrecht wrote:

Please give us (code, eventually output) examples, else it¹s difficult
to get your point.
Yours, Simon

pdf and relevant lily code attached. I know it's not compilable, but
it's a fairly simple problem - look at the markup next to the seven bars
rest at the segno - if the rest was wider the markup would lie flat.

Right, but if the code isn't compilable, we can't try out any tricks to
see if we can improve things.  So we can only give you guesses.

If you'll send me a driver file that will include this .ily file and
produce the trombone output, I'll see what I can do.


I've just applied Kieren's suggestion, which has fixed the text stacking 
vertically, so that's one problem down. That leaves fixing the coda 
colliding with the repeat spanner, and justifying the "Take 2nd on D.S." 
text. That last is actually also a perfect example of empty chords not 
going where they should, in that lily appears to have moved it from the 
end of the volta to the start of the alternative. Okay, musically they 
are the same, but visually they're very different ...


Then I feel a bit cheeky with the last bits wrong, in that I haven't 
really tried to fix them myself yet, namely getting the DS al Coda at 
the bottom to look right, and moving the Extended Cadenza text down to 
go in the blank space between the staves. I know there's a way of 
telling it to "go on the B line", but I haven't investigated. If you 
know the answer, that would be great but really I know I should look for 
it myself.


Cheers,
Anthony


partTromboneII-T.pdf
Description: Adobe PDF document
\version "2.10.2"

\include "english.ly"
%\include "header.ily"
\include "voiceStaff.ily"
\include "voiceTromboneI.ily"

\header {
\include "header.ily"
	instrument = "1st Bb Trombone"
}

%#(ly:set-option 'point-and-click #f)
%#(set-global-staff-size 15.87)

\score {
	\new Staff {
		\set Score.skipBars = ##t
		 {
			\transpose bf c' {
\clef "treble_8"
<<
	\voiceTimeSig
	\voiceTromboneI
	\voiceMarkup
	\voiceDynamicsI
>>
			}
		}
	}
	\layout {
		system-system-spacing #'minimum-distance = #0
		system-system-spacing #'padding = #0
  	#(set-default-paper-size "a4" 'landscape)
		systems-per-page = 10
		page-count = 1
%		#(layout-set-staff-size 5)
	}
}

\version "2.10.0"

voiceTimeSig =  {
  \numericTimeSignature
  \time 2/4
  \key ef \major
  \partial 8 s8
  s2*8
  \repeat volta 2 { s2*7 } \alternative { { s2 } { s2 } }
  s2*8
  s2*8
  \repeat volta 2 { s2*6 } \alternative { { s2*2 } { s2*2 } }
  s2*8
  \key af \major
  s2*4
  \repeat volta 2 {
s2*16
s2*15
  } \alternative { { s2 } { s2 } }
  s2*12
  % coda
  s2*10

  s1 s2 s2
}

voiceMarkup =  {
  \partial 8 s8
  s2*8 \mark \markup { \musicglyph #"scripts.segno" }
  \repeat volta 2 {
<>^\markup { "Allegretto con Moto"} s2*7 <>^\markup { \right-align "Take 
2nd on D.S." }
  } \alternative { { s2 } { s2 } }
  s2*8 \bar "||"
  s2*8
%\set Score.voltaSpannerDuration = #(ly:make-moment 1/4)
  \repeat volta 2 { s2*6 }
  \alternative {
{ s2*2 } { s2*2 }
  }
%\unset Score.voltaSpannerDuration
  \bar "||"
  \once \override Score.RehearsalMark.break-visibility = 
#begin-of-line-invisible
  \mark \markup { \musicglyph #"scripts.coda" }
  s2*8 \bar "||"
  \mark \markup { Trio } <>^\markup { Piu Mosso } s2*4
  \repeat volta 2 {
s2*16 \bar "||"
s2*15
  } \alternative { { s2 } { s2 } } \bar "||"
  s2*12
  \bar "||"
  \once \override Score.RehearsalMark.break-visibility = 
#begin-of-line-invisible
  \mark \markup { \right-align \line { "D.S. al" \musicglyph #"scripts.coda" } }
  \break
  <>^\markup { \large \musicglyph #"scripts.coda" }
  s2*10
  \stopStaff \cadenzaOn s2^\markup { Extended Cadenza }
  \startStaff \teeny bf,4 af, g, f, ef,2\fermata \normalsize \cadenzaOff \bar 
"|" s2 \bar "||"
}


mbreak = { \break }
mbreak = {}

voiceTromboneII = \transpose c' bf \relative c' {

  \partial 8
  r8 | r4 r8\f c16( b | c8) c, c4 | a'2( bf) a8 r r4 R2 | r8 f\> r f |

\mbreak

  r f g4\! || \repeat volta 2 { R2*7 } \alternative { { R2 } { R2 } }

\mbreak

  f'8\f c c4 | f8-> e-> d-> c-> | R2*2\mp | f4->\f c-> | a8-> f-> g-> a-> | R2*2

\mbreak

  R2*8 \repeat volta 2 { bf8.->\f a16 bf8.-> a16 | bf c d ef g8 r |

\mbreak

  r8 a, r a | r a a4 | f8.->\f e16 f8.-> e16 | f g a bf c8 r } \alternative { { 
R2*2 } { R2*2 } }

\mbreak

  R2*8 || r8\f f, f r | r f f r |

\mbreak

  r8 bf r\&g

Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 24/04/2015 22:32, Kieren MacMillan wrote:

Hi Wol,

As mentioned by others, actual code samples will be much better than abstract 
complaints, if a solution is what you’re looking for.


If squeezing notes closer causes markup to collide and staircase, that's VERY 
painful to me.

Does this not fix your problem?

\version "2.19.18"

scriptStuff = {
 \repeat unfold 4 { c''-\markup "This is a long markup" }
}

%%  default
\score {
   \scriptStuff
}

%%  with extra spacing tweak
\score {
   \scriptStuff
   \layout {
 \context {
   \Score
   \override TextScript.extra-spacing-width = #'(-0.5 . 0.5)
 }
   }
}


my use case bumps into collisions - often several - with pretty much EVERY 
piece I do, and in every case lily's default behaviour is wrong.

Likely it’s easy to fix — either by what I’ve used (above) or otherwise.

Hope this helps!


It has!

I would, however, like to understand why :-) I can see you're setting a 
variable to some scheme value, but why does adding an extra 1/2 unit 
either side suddenly make text stack horizontally rather than 
vertically? "Monkey see monkey do" is fine as a quick fix, but not much 
help when I hit another "similar but not the same" problem.


That was my thing about example pieces - all these tweaks should be 
commented as to what they're doing and why, so someone only needs to 
find one or two examples of their type of work, and study them, to get a 
good basic grounding. I know I learn fast once someone explains things, 
but all too often with documentation (as opposed to examples) it's 
blindingly clear what it's saying once you no longer need it ... :-)

A
All I need now to make that particular bit perfect is to get it to 
justify correctly :-)


Cheers,
Wol

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 24/04/2015 20:23, Simon Albrecht wrote:
Please give us (code, eventually output) examples, else it’s difficult 
to get your point.

Yours, Simon


pdf and relevant lily code attached. I know it's not compilable, but 
it's a fairly simple problem - look at the markup next to the seven bars 
rest at the segno - if the rest was wider the markup would lie flat.


And then just before the trio, the second time bar and the coda sign 
collide. If I could work out how to shorten the spanner the coda could 
drop and that would all be as it should be. (You can see the commented 
out attempts I made as per the docu and lsr stuff I found. Maybe it 
should have worked and didn't because I didn't do it right. 
Unfortunately the example was "how to shorten the spanner to one bar" 
and my spanner is one bar long ... so I had to try tweaking it without 
actually understanding what it was doing ...)


Cheers,
Wol


Am 24.04.2015 um 18:09 schrieb Anthonys Lists:

You can tell I've looked at the relevant section of the manual ...

But I have two problems bugging me at the moment, and it's related to 
a problem I have in general with lilypond - it tries to avoid 
collsions by separating stuff vertically. How do I tell it to push 
them apart *horizontally*. Two current bugbears ...


I have seven bars rest in a part. I want some markup starting at the 
first barline, and different markup ending at the last barline. If a 
part has notes, those markups will separate horizontally naturally - 
how can I force that to happen when there's that rest?


And secondly, I want a coda sign at the end of an alternative. Of 
course, it collides with the repeat spanner :-( The problem with the 
docu or lsr snippet I found (can't remember which) was (a) it 
supposedly shortened all spanners - which I don't want - and (b) I 
couldn't get it to work anyway. I do have a different \alternative 
example that explicity codes each spanner without actually using 
"\alternative", but I couldn't get that to work either.


If we're discussing usability, I think this is a major sticking point 
for lilypond - colliding notation is VERY common, and lily really 
doesn't handle it very well at all :-( When engraving parts I'm often 
scrabbling for space, and as soon as lily starts staircasing markup 
it wastes a heck of a lot


Cheers,
Wol

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







partTromboneII-T.pdf
Description: Adobe PDF document
\version "2.10.0"

voiceTimeSig =  {
  \numericTimeSignature
  \time 2/4
  \key ef \major
  \partial 8 s8
  s2*8
  \repeat volta 2 { s2*7 } \alternative { { s2 } { s2 } }
  s2*8
  s2*8
  \repeat volta 2 { s2*6 } \alternative { { s2*2 } { s2*2 } }
  s2*8
  \key af \major
  s2*4
  \repeat volta 2 {
s2*16
s2*15
  } \alternative { { s2 } { s2 } }
  s2*12
  % coda
  s2*10

  s1 s2 s2
}

voiceMarkup =  {
  \partial 8 s8
  s2*8 \mark \markup { \musicglyph #"scripts.segno" }
  \repeat volta 2 {
%s2^\markup { "Allegretto con Moto"} s2*5 s2^\markup { "Take 2nd on D.S." }
<>^\markup { "Allegretto con Moto"} s2*7 <>^\markup { \right-align "Take 
2nd on D.S." }
  } \alternative { { s2 } { s2 } }
  s2*8 \bar "||"
  s2*8
%\set Score.voltaSpannerDuration = #(ly:make-moment 1/4)
  \repeat volta 2 { s2*6 }
  \alternative {
{ s2*2 } { s2*2 }
  }
%\unset Score.voltaSpannerDuration
  \bar "||"
  \once \override Score.RehearsalMark.break-visibility = 
#begin-of-line-invisible
  \mark \markup { \musicglyph #"scripts.coda" }
  s2*8 \bar "||"
  \mark \markup { Trio } <>^\markup { Piu Mosso } s2*4
  \repeat volta 2 {
s2*16 \bar "||"
s2*15
  } \alternative { { s2 } { s2 } } \bar "||"
  s2*12
  \bar "||"
  \once \override Score.RehearsalMark.break-visibility = 
#begin-of-line-invisible
  \mark \markup { \right-align \line { "D.S. al" \musicglyph #"scripts.coda" } }
  \break
  <>^\markup { \large \musicglyph #"scripts.coda" }
  s2*10
  \stopStaff \cadenzaOn s2^\markup { Extended Cadenza }
  \startStaff \teeny bf,4 af, g, f, ef,2\fermata \normalsize \cadenzaOff \bar 
"|" s2 \bar "||"
}

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


Re: Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

On 24/04/2015 20:54, Kieren MacMillan wrote:

Hi Wol,


I have in general with lilypond - it tries to avoid collsions by separating 
stuff vertically. How do I tell it to push them apart *horizontally*

I have often asked about devising (and paying for) an automated system for this.
Unfortunately, nobody has taken me up on my offer yet.


I have seven bars rest in a part. I want some markup starting at the first 
barline, and different markup ending at the last barline. If a part has notes, 
those markups will separate horizontally naturally - how can I force that to 
happen when there's that rest?

\override Score.RehearsalMark.extra-spacing-width = #’(-0.5 . 0.5)

should help. Adjust the values to suit your needs.


I'll try that. But seeing as it's markup, not a rehearsal mark, I'm 
guessing it won't help ...





And secondly, I want a coda sign at the end of an alternative. Of course, it 
collides with the repeat spanner

Did you try \once \override Score.Script.X-offset = #5 or similar?
Doubt it - it was something to do with VoltaSpanner or whatever it's 
called - I'm sure the grob or whatever it is was called something to 
with the repeat mark. Plus I think the argument was something like #'(x . y)





The problem with the docu or lsr snippet I found (can't remember which) was (a) 
it supposedly shortened all spanners - which I don't want

Did you use \once?


Yes I did. But it went BEFORE the \alternative { { } { } } stuff, so I'm 
guessing it was meant to apply to all the marks in that particular 
repeat. And when I did the alternatives individually, without using 
\alternative, it didn't work either. Maybe because I just don't 
understand what I'm doing :-)



colliding notation is VERY common, and lily really doesn't handle it very well 
at all

I disagree with that strong language. I think Lilypond does very well with 
almost all collisions — so well, that we take it for granted. However, I agree 
that certain collisions are not handled gracefully, nor are there adequate (and 
adequately simple) mechanisms for tweaking. That’s where development efforts 
need to be focused.


Then why does it cause maybe 90% (if not more) of my grief with 
lilypond? Bear in mind, from my point of view, a page turn can be the 
difference between a part that is playable and a part that is not. If 
squeezing notes closer causes markup to collide and staircase, that's 
VERY painful to me. Things like codas and segnos often fall on repeats 
... almost invariably I'm trying to put rehearsal marks and markups 
together on the same barline ...


I've been using lilypond on and off since the 2.4 days - that's a LONG 
time ago, and I still have to find a solution that works for those 
scenarios. Putting markup on an empty chord is a wonderful trick that 
I've picked up on recently, but even that is only a bandaid - all too 
often lily doesn't put the markup where I put the chord :-( and if I 
start using spacer notes that then causes problems elsewhere ...


I know lilypond is really nice software - I wouldn't be using it else - 
but my use case bumps into collisions - often several - with pretty much 
EVERY piece I do, and in every case lily's default behaviour is wrong. 
And all too often (like here) I don't know how to fix it. I'd much 
rather waste a little horizontal space than a lot of vertical space - as 
I said, often I don't have much space to spare.


Actually, another great tweak I would love to have is the ability to 
force staves closer together ... I've seen some pretty awful parts where 
a down-stack on one staff collides with an up-stack from the staff 
below, but if as engraver I can see that it's not going to do that, it 
would be great to be able to force an overlap. Last I tried (it might 
well have changed since, it was quite a while ago), that seemed 
impossible with lily.


You admit that "certain collisions are not handled gracefully, nor are 
there adequate (and adequately simple) mechanisms for tweaking" - I'm 
sorry if my words sound harsh, but unfortunately that is much too common 
an experience of lily for me.



as soon as lily starts staircasing markup it wastes a heck of a lot

My first tweak, applied in a \context block, should stop that from happening.

Hope this helps!
Kieren.



Thanks. I'll play with it. Now to look up what a \context block is :-)

(and yes, I do read the docu - I actually proof-read the manuals 
cover-to-cover for Graham many many moons ago. Two or three times :-)


Cheers,
Wol

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


Fixing overlapping notation

2015-04-24 Thread Anthonys Lists

You can tell I've looked at the relevant section of the manual ...

But I have two problems bugging me at the moment, and it's related to a 
problem I have in general with lilypond - it tries to avoid collsions by 
separating stuff vertically. How do I tell it to push them apart 
*horizontally*. Two current bugbears ...


I have seven bars rest in a part. I want some markup starting at the 
first barline, and different markup ending at the last barline. If a 
part has notes, those markups will separate horizontally naturally - how 
can I force that to happen when there's that rest?


And secondly, I want a coda sign at the end of an alternative. Of 
course, it collides with the repeat spanner :-( The problem with the 
docu or lsr snippet I found (can't remember which) was (a) it supposedly 
shortened all spanners - which I don't want - and (b) I couldn't get it 
to work anyway. I do have a different \alternative example that 
explicity codes each spanner without actually using "\alternative", but 
I couldn't get that to work either.


If we're discussing usability, I think this is a major sticking point 
for lilypond - colliding notation is VERY common, and lily really 
doesn't handle it very well at all :-( When engraving parts I'm often 
scrabbling for space, and as soon as lily starts staircasing markup it 
wastes a heck of a lot


Cheers,
Wol

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


Re: mutopia's shortcomings

2015-04-24 Thread Anthonys Lists

On 24/04/2015 12:42, Gilles wrote:

Even if not everyone will agree on "the" standard layout, I feel that it
is extremely important to define one, with the maximum flexibility. 


The problem arises, of course, when there are existing, conflicting, 
standards.


There IS a standard out there, to which pretty much EVERY Brass Band 
march part I've seen adheres to (probably B&H house style, as they are 
the dominant publisher), that lilypond just does not produce by default. 
Yet talk to an orchestral musician and I guess many of them would say 
that the lilypond style feels "natural".


If you impose a single style, you are pretty much guaranteeing that 
certain branches of music will stay away because the "house" style is 
just totally "wrong".


At a minimum, you need different basic styles for different types of 
music. Of course, if style sheets become a lilypond reality, that will 
make life a lot better in that respect ...


Cheers,
Wol

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


Re: short Musikmesse minutes

2014-03-22 Thread Anthonys Lists

On 20/03/2014 10:30, Urs Liska wrote:

I think that LilyPond's main strength is transformative use: different
page formats, different media, different transpositions, individual
variations.


Yes, and I have/had the impression that it _is_ possible now to 
promote this feature. Of course I don't expect the final outcome to 
match my current enthusiasm, but I'll surely keep you informed about 
my progress. 


Given my experience of buying some pieces, this is actually an extremely 
useful use.


Okay, my experience is old, but I bought some pieces by P.D.Q.Bach. For 
a small score (ten pages?) the number of transcription errors between 
the score and parts was amazing. Iirc the score was correct, but the 
parts had errors galore.


Cheers,
Wol

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


Re: A thought on Windows Experience

2013-12-11 Thread Anthonys Lists

On 05/12/2013 02:09, Tim McNamara wrote:

Powerful software and simple software are usually mutually exclusive.  Compare 
Word, Pages and LaTeX, for example.  Pages is more elegant but can do a small 
fraction of what Word can do.  Word can't do a lot of things that LaTeX can.
Word is aimed at people who can't type (which is why it's so popular). 
imho it STILL hasn't caught up with the dedicated word processing 
programs for professionals (such as WordPerfect) which were around in 
the 80s - thirty years ago!


Cheers,
Wol

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


Re: A thought on Windows Experience

2013-12-09 Thread Anthonys Lists

On 09/12/2013 06:12, James Harkins wrote:
My flippant response makes it sound like any reasonably intelligent 
person would find the right information fairly quickly, casting the 
problem in terms of user carelessness. That was a misstatement. My 
point is that reasonably intelligent, reasonably careful readers can 
visit lilypond.org and get from it no strong feeling for the 
importance of downloading a dedicated editor *in addition to* LilyPond 
itself.


Don't forget, also, that PEOPLE ARE DIFFERENT. Off-topic slightly, but 
read Feynmann on keeping time in your head. The task was "count from 1 
to 60 in your head and keep consistent time". MOST people can do that 
while watching TV, come in bang on time, and answer questions on what 
they have seen. MOST people, if you hold a conversation with them, 
either they ignore you or their time-keeping goes to pot. Feynmann was 
surprised that some of his fellow students could hold a conversation no 
problem - but watching TV trashed their time-keeping!


Turns out MOST people count in their head using "silent talking". Make 
them talk, and they can't keep time. But SOME people watch a 
ticker-tape, and have no trouble talking. Disrupt their visual sense, 
however, and they're in trouble...


I answer a lot of questions on the SuperCollider mailing list -- a LOT 
of questions. Often the answers involve "See * in the 
documentation." At some points, I would get frustrated with this... 
"Why can't people find this information? Aren't they reading the help 
pages?" Then I realized, it's not that it all -- it's just that there 
are so many help pages that nobody can get intimately familiar with 
them quickly. I have something like a 10 year head start over new SC 
users in that regard. That's a valuable resource on my part, but not a 
failing on their part. 


Are the manual pages in a suitable format? I HATE Word, because its 
mental map is not mine. On the other hand, I switched to WordPerfect no 
trouble - it has a different mental map that meshes with mine almost 
perfectly. The more WP tries to ape Word, the harder it becomes for me 
to use it.


Likewise, I have no trouble using lilypond's *P*D*F* manuals. My mind is 
very text-oriented. But I HATE HYPERTEXT. My IQ is off the scale (not 
really, but I'm in the top few percent of the population), but give me a 
web-site and if what I'm looking for is not staring me in the face, then 
I have difficulty finding it.


So you can NOT conclude that a "reasonably intelligent" visitor will be  
able to find what they're looking for. I'm "extremely intelligent" and I 
have difficulty. And I doubt I'm alone ...


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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 23:46, David Kastrup wrote:

That wasn't what the lawsuit was about.  It was not even what Oracle
claimed the lawsuit to be about.  The issue was the reimplementation of
Java classes, not the_use_  of Java classes.

Yes.

But the only thing that Oracle could sue over was the use of the api's. 
Which would not only block re-implementation, but would also block using 
any implementation. Which is the problem here ...


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 23:37, Joseph Rushton Wakeling wrote:

On 04/02/2013 11:57 PM, Anthonys Lists wrote:

On 02/04/2013 22:47, Joseph Rushton Wakeling wrote:

Indeed, and a consequence of distributing a "covered work" under
GPL-incompatible terms is that you lose the permissions granted under that
license.

EXCEPT EXCEPT EXCEPT THE LAW SAYS YOU *DON'T* *NEED* ANY PERMISSION !!!

What, I don't need permission to use a computer program written by someone else
that is still in copyright?


If your work does not include any of their work, then you don't need any 
permission to not copy their work! :-)


I get to use the GNU Scientific Library _only_ because its authors have granted
me permission to do so.  That permission is conditional on my adhering to a
number of conditions.  One of those conditions is that if I distribute what the
GPL refers to as a "covered work" -- in this case, a work based on the GNU
Scientific Library, such as my little program -- I must do so under a
GPL-compatible license.


And if you read the GPL, version 2 (I presume 3 has similar wording) 
says "the use of this work is outside the scope of this licence". The 
GPL explicitly rejects anything to do with the USE of the work.


It was YOU that said your source code did not include any part of the 
GSL. Therefore when you distribute your source code you do not need any 
permission to distribute the GSL, because you are not distributing the 
GSL. Therefore, because you are not distributing the GSL, you do not 
need the GPL's permission to not distribute!




If I break that condition, I lose the permission granted to use the GNU
Scientific Library.  That doesn't mean its authors can sue me for distributing
my little piece of code under a proprietary license.  It means they can sue me
if I continue to use the GNU Scientific Library.


And what law will they use to use you? Oh - that's right, they'll use 
copyright law!


At which point, they will have to show, to the Judge, that your work is 
LEGALLY a derivative of theirs.


Except you said it didn't contain any GSL code! Which means that, AS FAR 
AS THE LAW IS CONCERNED, it is NOT a derivative. Which means there is 
ABSOLUTELY NOTHING the GSL guys can do to stop you using their code. If 
the law says a licence is not necessary, then it doesn't matter what 
licence they used on their code, YOU DON'T NEED IT!



Sorry for shouting, but just go ask a lawyer. ANY lawyer with a half-way decent
grasp of copyright.

I suggest it's not me who doesn't understand copyright, but you who doesn't
understand the niceties of the GPL.  I'll happily accept proof that I'm wrong,
but shouting at me (or making general assertions about the relative priority of
the GPL versus the law) doesn't count as proof :-)

What I do know is that the GPL grants permissions that - absent the 
licence - you wouldn't have.


And if the law says you don't need those permissions, then you don't 
need that licence!


Let's say I write a licence that Joseph Wakeling owes me £500 per month 
for not using my code. I give you a copy. I now claim you owe me £500 
for the month of April. How am I going to enforce it?


I'm going to enforce it exactly the same way the GSL library people are 
going to enforce their licence for you not using their code - in other 
words, if either of us is stupid enough to try it, the Judge is going to 
laugh us out of court.


Actually, that seems to me to give you pretty much the question you want 
to ask SFLC or FSF or whoever it was.


"If I write a program - all my own work - which uses the public API to 
call a GPL library but does not include any code from that library, do I 
have to distribute the *source* code of my program under the GPL."


I can guarantee that the answer that comes back will be "you can use 
whatever licence you like because it's not a derivative work."


(Oh, by the way, my understanding of the GPL has changed a fair bit over 
the years. Mostly as a result of discussing the niceties on Groklaw, so 
I think most of my misunderstandings have been pretty much 
clue-by-four'd by now :-) But this isn't a case of understanding the 
GPL, it's a matter of understanding the law. The law says "you don't 
need a licence" so that's the end of it!)


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 23:31, David Kastrup wrote:

Anthonys Lists  writes:


If they DID relicence it, then it is copyrightable

Nonsense.  An explicit license can be given for things not actually
requiring a license for particular uses under current legal standards.
It is a pledge "if you follow these rules, I won't drag you to court
over use of this material", and if that explicit pledge is broken, the
complaint is very likely to just get tossed without incurring
significant costs.


Except that they didn't own any copyright in any of the header (or I 
assume so). The point I'm making is that "if a licence was needed, then 
Google had no right to grant it".


So what Google did was, effectively, say "if you follow these rules, I 
won't sue you for trespassing on my neighbour's property". Even worse, 
if it were copyrightable, Google would be inciting people to break 
copyright.




That is totally different from opining some material to not be
copyrightable.  You might need to convince a court explicitly then, and
particularly in the U.S., that can be a rather expensive feat even if
you prevail.


Agreed.

Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 23:28, Joseph Rushton Wakeling wrote:

On 04/03/2013 12:01 AM, Anthonys Lists wrote:

But as I understand it, the lawsuit as actually sued said "apis are copyright"
and you would have needed a licence to use the apis - to use Oracle's Java.

That's exactly in line with what David said.  Google were providing a clean-room
re-implementation -- the only thing it had in common with Oracle's Java was the 
API.

Oracle couldn't sue on the basis of code duplication, so they tried to stop
Google distributing their implementation by claiming copyright violation on the
basis of duplication of the API.  And (rightly) lost.

That's a different situation from the one we have been discussing here, which is
code that _uses_ (not implements) functions whose only existing implementation
is in a GPL-licensed program.

Think of the API as a looking glass. On one side you have the code that 
IMPLEMENTS the api. On the other side we have the code that CALLS the api.


Correct - Oracle wanted to stop Google writing new code to IMPLEMENT the 
api (that's what David said).


BUT - iirc what Oracle actually sued over was "using the looking glass". 
Which would have stopped people writing code that CALLS the api (that's 
what I said).


And that IS exactly the situation we have with lilypond. Using an api - 
in either direction - is not copyrightable. So if your lilypond text 
file calls a GPL lilypond function, it is not subject to the GPL because 
the api cannot be copyrighted. (If you copy the function 
*implementation* into your file, of course you then do get caught by 
copyright.)


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 22:31, David Kastrup wrote:

Anthonys Lists  writes:


Indeed, this legal claim (that using functions creates a derivative
work) is exactly the claim that Oracle tried with Android and Java,
and they came a royal cropper with it.

"exactly" in the meaning of "quite the opposite of".  Oracle did not try
to cover code intended to compile with their Java libraries, but rather
tried to prohibit a compatible reimplementation from scratch of the Java
code implementing the APIs.

So Oracle was trying to prohibit reimplementing the code _behind_ the
APIs, whereas we are talking about the implications of the APIs on the
code _calling_ them.

Hmmm... I don't think that's the way they actually put it. That's what 
they were trying to do, true.


But as I understand it, the lawsuit as actually sued said "apis are 
copyright" and you would have needed a licence to use the apis - to use 
Oracle's Java.


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 22:47, Joseph Rushton Wakeling wrote:

On 04/02/2013 11:28 PM, Anthonys Lists wrote:

A derivative work is whatever the LAW says it is (whatever that is :-). NO open
source licence defines the term "derivative work", although they may give their
own interpretation of what they think it is.

The actual GPL term is a "covered work", and is specified reasonably precisely.

My little program calls functions from an explicitly GPL-licensed library -- not
from an API with multiple different implementations -- ergo, it's based on a
GPL-licensed work and is a "covered work" in the terms of the GPL.


The whole point of open source licences is they are LICENCES. They GRANT
PERMISSIONS.

Indeed, and a consequence of distributing a "covered work" under
GPL-incompatible terms is that you lose the permissions granted under that 
license.


EXCEPT EXCEPT EXCEPT THE LAW SAYS YOU *DON'T* *NEED* ANY PERMISSION !!!


So, if I'd tried to put a proprietary license on that bit of C code I shared,
for example, I'd have been violating the terms of the permissions granted me on
the GNU Scientific Library; so I'd have lost my right to use the GNU Scientific
Library; and if I continued to use it, I could be sued for using copyrighted
software without permission.

_That's_ where issues of copyright violation come in, not in the question of
whether my piece of code is strictly derivative in the sense of copyright law.

The ONLY way you can be guilty of copyright violation is if THE LAW says 
you are guilty. If THE LAW says your work is not derivative, then ANY 
and ALL licences are IRRELEVANT. And that includes the GPL!


The GPL *relies* *on* *the* *law*. If there's a conflict between the GPL 
and the law, then the law wins. EVERY TIME. And if the law says that 
your work is not a derivative, then the GPL is a toothless tiger rug. 
And just as effective.


THE LAW TRUMPS THE GPL. END OF!

Sorry for shouting, but just go ask a lawyer. ANY lawyer with a half-way 
decent grasp of copyright.


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 22:34, Joseph Rushton Wakeling wrote:

On 04/02/2013 11:17 PM, Anthonys Lists wrote:

So as long as Google stuck to using interfaces that the kernel devs explicitly
published to user space, then using those header files EXPLICITLY does NOT
create a derivative work, and therefore the GPL can NOT cross that boundary.

That's exactly the point.

What Google did was to take the kernel's header files documenting those public
interfaces (which contain GPLv2 licenses) and strip out EVERYTHING BUT the
documentation of the interfaces (and, I think, various macros, type definitions,
etc.), and provide those new headers under the Apache license.

This was considered to be legit, rather than a GPL violation, precisely because
those aspects of the headers are considered to be "facts" rather than
copyrightable elements.



I notice the articles you mention all reference Naughton, who, iirc, 
(and it is implied by those articles) was in the business of spreading 
FUD. So, basically, take those articles with a snow-clearing bag of salt :-)


Oh - and if Google did do as you say (strip stuff from the (allegedly) 
GPL'd header files then relicence them under Apache), then that is NOT 
legit. It's actually a blatant and *clear* *cut* copyright violation. 
But, as Linus is quoted as saying, "Who cares?". Google are just being 
excessively cautious but they are using the files the way the copyright 
holders intended. (I think this is what Naughton has caught on to, and 
has deliberate spun for its FUD value ... :-(


The only way Google can relicence code from GPL to Apache is if the 
original code is not copyrightable. In which case they can't relicence 
it. If they DID relicence it, then it is copyrightable, therefore it IS 
GPL, therefore they had no right to relicence it!


See e.g.:
http://www.theregister.co.uk/2011/03/29/google_android_and_the_linux_headers/
http://www.itworld.com/open-source/140916/android-sued-microsoft-not-linux



Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 22:01, Joseph Rushton Wakeling wrote:

On 04/02/2013 09:50 PM, Tim McNamara wrote:
OK, now let's consider a specific example. Here's a bit of C code that 
generates 100 random numbers and calculates their sum. 
// 
#include  #include  double 
random_number_sum(const gsl_rng *r, size_t n) { size_t i; double x = 
0.0; for(i=0; i<10; ++i) x += gsl_ran_flat(r, 0.0, 1.0); return x; } 
int main(void) { size_t n = 100; gsl_rng *r = 
gsl_rng_alloc(gsl_rng_default); double x = random_number_sum(r, n); 
printf("The sum of %lu random numbers in [0, 1) is %g\n", n, x); 
gsl_rng_free(r); return 0; } 
// 
Let's go through it line by line. The first line tells the compiler, 
when compiling, to make use of the standard library header describing 
input and output. That doesn't matter -- it's a system library and 
therefore irrelevant as far as licensing is concerned. The second line 
tells the compiler to make use of the header file describing the 
functions from the GNU Scientific Library (GSL) that implement random 
number distributions. 


Which is a header file, and probably not copyrightable.

Then you have a function which takes as part of its input a pointer to 
the gsl-defined random number generator type, and which calls 
internally the GSL function to generate a pseudo-random number from a 
uniform distribution. Inside the main() function, there are calls to 
the GSL functions to allocate and free memory in which to store a 
random number generator. Now, just as in your case, I've not copied 
either stdio.h or gsl_randist.h. I've not given them to you, either. 
It's just an instruction to your compiler to look for these files when 
trying to build the program, and if you try and compile this program 
without those files present on your system, the compilation will fail. 
Nor does this program contain any copyrighted content from those files. 


(Function names and APIs are generally considered to be 
uncopyrightable.) However, I think the consensus of opinion about free 
software licensing would be that, in distributing to you this little 
program, purely in source code form, not compiled or linked in any 
way, I am still obliged to offer it to you under licensing terms that 
are GPL-compatible, or else lose my right to use the GNU Scientific 
Library.


You've just answered your own question. You have just said that this 
program does NOT contain ANY copyrighted content from the gsl.


As such, it is not a derivative work. That's what the law says. If the 
gsl people want to stop you using their library, they need the law on 
their side. And the Judge will say "that's not a derivative work. go 
away - oh and costs are awarded against you for a frivolous lawsuit, too!".


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 18:47, Joseph Rushton Wakeling wrote:

When you add to that the fact that the particular case we're concerned with
involves copyleft licensing which gives a particular and precise definition to
what is considered a "derivative work", it really doesn't seem to me possible to
just write this off.

WRONG WRONG WRONG!

A derivative work is whatever the LAW says it is (whatever that is :-). 
NO open source licence defines the term "derivative work", although they 
may give their own interpretation of what they think it is.


The whole point of open source licences is they are LICENCES. They GRANT 
PERMISSIONS. If, IN LAW, my work is not a derivative work then I don't 
need no permission from no-one! and what the GPL or any other licence 
may say is totally irrelevant. In particular, any attempt by them to 
override the legal definition of "derivative work" is irrelevant and - 
quite likely - a fraud!


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 15:19, Joseph Rushton Wakeling wrote:

On 04/02/2013 03:52 PM, David Kastrup wrote:

>The main difference is "work as a whole" vs "mere aggregation".  If you
>include some file as a form of invoking its documented interface, you
>form no new combined work.

Indeed, which if I recall right is how Google was able to provide non-GPL'd
header files describing the Linux kernel API for use in Android.  (If I'm wrong,
let's not get into the reasons why -- it's another huge can of worms...:-)


I suspect you recall wrongly.

It is widely accepted (and quite probably in this particular case 
explicitly stated) that header files are not copyrightable subject matter.


Certainly it is explicitly stated that using *published* API interfaces 
to linux does NOT create a derivative work.


So as long as Google stuck to using interfaces that the kernel devs 
explicitly published to user space, then using those header files 
EXPLICITLY does NOT create a derivative work, and therefore the GPL can 
NOT cross that boundary.


Cheers,
Wol

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


Re: Lilypond \include statements and the GPL

2013-04-02 Thread Anthonys Lists

On 02/04/2013 15:04, Joseph Rushton Wakeling wrote:

On 03/30/2013 01:02 AM, Alexander Kobel wrote:

On the other hand, user C /should/ be allowed to distribute source code under
whatever license he wants to /as long as he doesn't ship the GPL libraries with
it./  It's useless without them, but anybody who wants to run or compile the
code is free to download the necessary GPL'ed stuff.

If I write a computer program which uses functions from a GPL'd library, it
doesn't matter whether I distribute an executable or just source code, and it
doesn't matter whether I distribute the source code alongside the GPL'd
libraries or as an individual file.  It's a derivative work under the GPL and
must be licensed accordingly when distributed.

See: https://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL
This feels just flat out wrong to me! I note that the faq mentions Java 
which is a COMPILED language, and you are distributing a .java 
executable which probably does contain a load of library code linked in. 
And it references Perl modules, again implying you are distributing 
other peoples' work mixed with your own. So imho this faq is discussing 
the clear scenario where your source pulls other peoples' code in before 
distribution. imho, if you write a computer program which uses functions 
from a GPL library (by the way, what is "a GPL library"?) you can quite 
happily distribute the SOURCE under a restrictive licence. Indeed, this 
legal claim (that using functions creates a derivative work) is exactly 
the claim that Oracle tried with Android and Java, and they came a royal 
cropper with it.


But as a simple matter of law, if I write a load of text and DON'T COPY 
other stuff into it, then my work is NOT a derivative of anything and I 
can licence it how the heck I like.


So if your lilypond file is a single monolithic document, and you wrote 
ALL of it (even if that "all" includes things like "/include 
english.ly", then, AS A MATTER OF LAW your file is not a derivative work 
of lilypond, and the GPL is irrelevant - you can distribute it as a 
completely proprietary "you must not copy this work" file if you wish. 
(Obviously, if your lilypond work is not monolithic, but again, you 
wrote ALL of it, the same rule applies.)


The ONLY thing that can make your work subject to lilypond's GPL licence 
is whether or not it is a derivative work of lilypond. And if you 
haven't copied anything from lilypond into it, then your work is not 
derivative. /include directives are not enough to make a derivative work 
(plus, it's the *recipient* that actually carries out the include and 
makes the derivative). (And it's the LAW that determines whether a work 
is derivative - the FSF's faq merely lays out what they think the law is.)


Cheers,
Wol

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


Re: \relative proposal: putting absolute pitches anywhere within \relative block using @-sign

2013-03-23 Thread Anthonys Lists

On 13/03/2013 19:24, nothingwaver...@gmail.com wrote:

Here's the idea.

1. Define absolute octave syntax with the @-sign (let it be a mnemonic for 
_A_bsolute) to be the syntax for temporarily specifying an ABSOLUTE PITCH 
within a \relative block, such that the next pitch, if it doesn't use the 
@-sign also, is relative to the absolute pitch.

2. Keep \relative X { ... } working the same way as it is (DON'T make 
convert-ly change it around).


What do people think?


Okay, this may be covered by other new facilities, but I remember I had 
exactly the problem this is intended to solve. I wanted to use a 
fragment inside a relative block, but the stuff around it messed up the 
relative octave, so I wanted to be able to specify an explicit octave 
for the first note of the fragment. (Han-Wen kindly wrote me a little 
function, which may have become \reset-absolute-octave, I've never used 
that so I'm not sure about that.)


Cheers,
Wol

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


Re: Idle curiousity about ancient Lily-lore

2013-03-10 Thread Anthonys Lists

On 10/03/2013 17:35, David Kastrup wrote:

I have a hard time imagining what you'd be writing after \relative if
you can't even remember the name of middle C.

Without knowing at least_one_  absolute pitch, anchoring \relative will
be a challenge.
I simply crib the start of everything from previous pieces. And I think 
my standard start snippet is something like "\transpose c c \relative bf 
{" - now how do you know I'm a brass player in the bass clef :-) And if 
the transpose looks odd it's because I play both concert and Bf.


Actually, come to mention it, I do remember middle C being c', and it's 
always felt odd to me. It's the first note with an ', no? So my standard 
range is the notes with neither , nor ', and remembering where it 
changes isn't a priority for me seeing as I almost never use absolute 
pitches :-)


Cheers,
Wol

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