Re: Adding a continuous drone to midi output

2018-05-22 Thread Gilles

Hi.

On Tue, 22 May 2018 17:47:35 +0100, Sven Axelsson wrote:
I just tried the midi output to play back bagpipe music and was 
actually
surprised the complex grace notes work pretty well. However, I'm 
wondering
if there is some way to add the continuous drone to the music 
automatically
without having to actually write them in as separate voices? I need 
two
separate drone voices sounding the same note continuously during the 
entire

playback. Should be possible with a little Scheme magic, right?


This
  http://lsr.di.unimi.it/LSR/Item?id=997
answered the same question which I asked here a few years ago.

Regards,
Gilles

P.S. I've encountered an issue where the drone stops well before
 the melody it is supposed to double; it occurs when there
 are a lot of grace notes.


Regards,
Sven Axelsson



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


Re: Proprietary Software term

2018-08-21 Thread Gilles

On Tue, 21 Aug 2018 14:34:59 -0500, Karlin High wrote:

On 8/21/2018 1:02 PM, Wol's lists wrote:
you have to get clear in your mind the distinction between the 
description, and what is described.


Like that French artist who made paintings of objects titled "This is
not $OBJECT?"


https://en.wikipedia.org/wiki/Ren%C3%A9_Magritte


Regards,
Gilles


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


Re: Lilypond slurs do not transfer to midi output

2019-02-20 Thread Gilles

Hi.

On Wed, 20 Feb 2019 11:37:26 +0100, Even Thorbergsen wrote:

Hello Lilypond users,



I cannot manage to have the use of slurs do any impact on the midi
representation of Lilypond scores.

I guess there is a solution to this?


http://lilypond.org/doc/v2.18/Documentation/notation/the-articulate-script

HTH,
Gilles





Best regards,

Even Thorbergsen

Norwegian amateur musician



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


Function to add a drone staff?

2015-04-09 Thread Gilles

Hi.

Is there a way (i.e. a function) to automatically add a
staff for a bagpipe's drone note(s)?
Up to now, I was adding a staff by hand (with a tag so it
would not appear on the printed score).   But it is more
complicated than it could be since the drone does not change,
plays along the melody and stop at rests.

Here is how the code currently looks like:
---CUT---
melodyNotes = \relative c'' {
  % ...
}

droneNotes = \relative c'' {
  2~ |
  2~ |
  % and so on...
  2 |
}

bagpipeOneStaff = \new Staff {
  \set Staff.instrumentName = \markup \column { "Bagpipe I" }
  <<
\new Voice {
  \set midiInstrument = "oboe"
  \set midiMinimumVolume = #0.6
  \set midiMaximumVolume = #0.7
  \clef G
  \melodyNotes
}
\new Voice {
  \set midiInstrument = "accordion"
  \set midiMinimumVolume = #0.2
  \set midiMaximumVolume = #0.3
  \tag #'no-layout {
\droneNotes
  }
}
  >>
}
---CUT---
[Thus, whenever there are changes in "melodyNotes", the "droneNotes"
must also be modified...]

So, an idea would be to use the function in order to
automatically add the drone voice (second voice in the
above excerpt) with the MIDI settings, and tag, as
parameters.
Hence, the above would become:

---CUT---
melodyNotes = \relative c'' {
  % ...
}

melody = \new Voice {
  \set midiInstrument = "oboe"
  \set midiMinimumVolume = #0.6
  \set midiMaximumVolume = #0.7
  \clef G
  \melodyNotes
}

bagpipeStaff = \new Staff {
  \set Staff.instrumentName = \markup \column { "Bagpipe I" }
  <<
\melody
% I don't know what is legal syntax for the parameters 
specification...

\makeDrone #'no-layout  #'accordeon #0.2 #0.3 \melody
  >>
}
---CUT---

Does that make sense?


Best regards,
Gilles


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


Re: Function to add a drone staff?

2015-04-11 Thread Gilles

Hello.

On Sat, 11 Apr 2015 11:19:31 -0700 (MST), Paul Morris wrote:

Gilles Sadowski wrote
It works but the sound is still cut after every bar: It looks like 
no

tie was added to the last note of a bar.

What is the advantage of using "\makeOctaves" wrt having two
"\dronify"?


Hi Gilles,

You're welcome.  There's no real advantage to using \makeOctaves, 
just a
matter of preference on how you want to set it up.  Nothing wrong 
with

having two \dronify staves or voices.


OK. Thanks.



It's working for me here with simple examples like the following, 
both
visually and in midi output, and in 2.18.2 and 2.19.18.  Can you give 
a tiny

example showing the sound being cut after every bar?


It happens when you use bar checks!
The sound is continuous without them but it would be quite annoying to
encode without their help for spotting mistakes... [I use version 
2.18.2.]


In addition, the midi volume and instrument used for the drone must be
different from that of the main melody (in order not to overwhelm the
melody lines).  I've been playing a little with your function but I 
only

ended up being able to change all the voices at the same time. :-{
In short, those lines
   \set midiInstrument = "accordion"
   \set midiMinimumVolume = #0.2
   \set midiMaximumVolume = #0.3
should be inserted in the drone "Voice".

Thanks a lot,
Gilles




Cheers,
-Paul

%%%

\version "2.19"

% dronify function omitted

melody = \relative f' {
  c4 d r e f r g a b
  c r e f r g a b
}

\score {
  <<
% \melody
\dronify g \melody
  >>
  \layout {}
  \midi {}
}




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


Re: Function to add a drone staff?

2015-04-13 Thread Gilles

Hi.

On Sat, 11 Apr 2015 22:07:43 -0700 (MST), Paul Morris wrote:

Gilles Sadowski wrote

It happens when you use bar checks!
The sound is continuous without them but it would be quite annoying 
to

encode without their help for spotting mistakes... [I use version
2.18.2.]

In addition, the midi volume and instrument used for the drone must 
be
different from that of the main melody (in order not to overwhelm 
the

melody lines).


Well, here's where the climb gets steep in trying to make this more 
robust.
See below where I added a "music-filter" step that filters out the 
bar
checks.  This solves the bar check problem, but there will surely be 
similar

things that will also need to be filtered out.


It works almost fine: no more stops between bars.

However I sometimes stumbled upon another problem: "dronified" full 
measure
rests ("R") generate a bar check warning.  It seems wrong because when 
I
changed "R" into "r" (and touched nothing else), the warning 
disappeared

(but so did the printed rests, of course).

I couldn't yet define a small example as the error comes and goes as I 
add

bars to the score! :-{

These can be added just like for bar checks, but it's a tall order to 
figure
out which ones to filter out and which to leave in, given the large 
number
of "music types" to consider.  All the different types are found in 
the
LilyPond source code under scm/define-music-types.scm  (I glanced 
through
them, and even briefly tried it the other way around where you only 
leave in
note events, rest events, and... all other seemingly relevant events, 
but
this didn't work, as apparently more are relevant than I was leaving 
in.)


So that's what it will take to make this robust.  Alternatively you 
could

just add more types to filter out as new problems come up.

You can uncomment \displayMusic (below) in order to see what's 
causing

trouble and needs filtering out.

On setting the midi volume and instrument per voice... something like 
what
you originally had should do the trick.  Maybe something as shown 
below with

separate scores for midi and layout?


Yes, this solution is quite fine.

Thanks,
Gilles



Cheers,
-Paul



\version "2.18.2"

dronify =
#(define-music-function (parser location drone melody)
   (ly:pitch? ly:music?)
   (let* ((melody-filtered
   (music-filter
(lambda (m)
  (not (or
(music-is-of-type? m 'bar-check)
;; add other types to filter out here, as 
needed...

)))
melody))
  (prev #{ #})
  (current #{ #})
  (art '())

  (drone-part
   (music-map
(lambda (m)
  (set! prev current)

  (if (and (music-is-of-type? m 'note-event)
   (ly:pitch? (ly:music-property m 'pitch)))
  ;; change the pitch
  (begin
   (ly:music-set-property! m 'pitch drone)
   (if (and (music-is-of-type? prev 'note-event)
(ly:pitch? (ly:music-property prev 
'pitch)))

   ;; add tie to previous note
   ;; avoid overwriting existing articulations
   (begin
(set! art (ly:music-property prev 
'articulations

'()))
(ly:music-set-property! prev 'articulations
  (append art (list (make-music (quote
TieEvent)

  (set! current m)
  prev)
melody-filtered)))
 #{ #drone-part #current #}))

melody = \relative f' {
  c4 d r e |
  f r g a |
  b c r e |
  f r g a |
  b
}

\score {
  \new Voice {
\clef G
\melody
  }
  \layout {}
}

\score {
  <<
\new Voice {
  \set midiInstrument = "oboe"
  \set midiMinimumVolume = #0.6
  \set midiMaximumVolume = #0.7
  \clef G
  % \displayMusic
  \melody
}
\new Voice {
  \set midiInstrument = "accordion"
  \set midiMinimumVolume = #0.2
  \set midiMaximumVolume = #0.3
  % \displayMusic
  \dronify g \melody
}
  >>
  \midi {}
}




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


Re: Function to add a drone staff?

2015-04-14 Thread Gilles

Hello.

On Tue, 14 Apr 2015 10:51:49 -0700 (MST), Paul Morris wrote:

Gilles Sadowski wrote

It works almost fine: no more stops between bars.

However I sometimes stumbled upon another problem: "dronified" full
measure
rests ("R") generate a bar check warning.  It seems wrong because 
when

I
changed "R" into "r" (and touched nothing else), the warning
disappeared
(but so did the printed rests, of course).

I couldn't yet define a small example as the error comes and goes as 
I

add
bars to the score! :-{


Hi Gilles,  That's strange...  I added support for "R" 
(multi-measure-rest)
to the latest version of the dronify code (below).  Maybe this will 
prevents

those warnings?


Yes; that version fixes it!

Thanks a lot,
Gilles



Cheers,
-Paul


%

dronify =
#(define-music-function (parser location drone-pitch melody)
   (ly:pitch? ly:music?)
   (let ((art '())
 (prev-note-or-rest #{ #}))
 (music-map
  (lambda (m)

(if (and (music-is-of-type? m 'note-event)
 (ly:pitch? (ly:music-property m 'pitch)))
;; ...do note events ever not have a pitch?
;; ...are there any other kinds of events to dronify?
(begin
 (ly:music-set-property! m 'pitch drone-pitch)

 (if (music-is-of-type? prev-note-or-rest 'note-event)
 ;; add tie to previous note, don't overwrite 
existing

articulations
 (begin
  (set! art (ly:music-property prev-note-or-rest
'articulations '()))
  (ly:music-set-property! prev-note-or-rest 
'articulations

(append art (list (make-music 'TieEvent

(if (or (music-is-of-type? m 'note-event)
(music-is-of-type? m 'rest-event)
(music-is-of-type? m 'multi-measure-rest))
;; ...should there be more types of events here?
(set! prev-note-or-rest m))

m)
  melody)))




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


Re: Do we really offer the future?

2015-04-17 Thread Gilles
with the publishing business in general.


LilyPond's capacities are great if we look at
  http://www.lilypond.org/examples.html

If the competition does it better, nothing will change; if it does it
worse, then probably, nothing will change!!!  That is, until people
stop buying the big houses' edition because they have come across a
more beautiful rendering by LilyPond. :-)


Sorry for that elaborate text, but I think it is important and
hopefully fruitful.


Yes it is important, definitely.  Hopefully the discussion will avoid
embarking on the wrong trail.  Thanks for starting it.


Best regards,
Gilles


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


Something wrong with transposing instruments? (Was: Re: Survey: Large scores)

2015-04-19 Thread Gilles

Hi.

[Sorry for the thread hijacking.]


[...]

Another thing: For me, also the implementation of transposing
instruments is less than ideal (I prefer to write the pitches in
concert pitch and have them transposed for the parts, rather than the
other way around, as it is implemented at the moment).
[...]


Can you give an example?  To my knowledge, both ways of encoding are
equally simple in LilyPond. [But I perhaps I misunderstood what you
mean.]

Best regards,
Gilles


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


Re: Something wrong with transposing instruments?

2015-04-19 Thread Gilles

Hello.

On Sun, 19 Apr 2015 10:00:46 -0400, Kieren MacMillan wrote:

Hi Gilles,


[...]

Another thing: For me, also the implementation of transposing
instruments is less than ideal (I prefer to write the pitches in
concert pitch and have them transposed for the parts, rather than 
the

other way around, as it is implemented at the moment).
[...]


Can you give an example?  To my knowledge, both ways of encoding are
equally simple in LilyPond. [But I perhaps I misunderstood what you
mean.]


This wasn’t from me…


I know; I hadn't seen that yours was the recipient's address.  And I
just hit "Reply all" which usually does the right thing for a ML.
[I don't see the purpose of CC'ing someone who is on the list...]


but I wholeheartedly agree: Lily’s
default/built-in implementation of transposing instruments is rather
incomplete/poor (see, for example,

<http://lists.gnu.org/archive/html/lilypond-user/2015-01/msg00201.html>
and

<http://lists.gnu.org/archive/html/lilypond-user/2014-05/msg00067.html>
for an idea of the problems and workarounds).

I believe there has been some recent improvement via openlilylib, but
I haven’t had time to investigate
In any case, the main distro should have much better tools to handle
transposing instruments more deftly.


I didn't have all the info; from the statement above it looked like the
"problem" was for encoding a part of a transposing instrument whereas
the links you provided point to difficulties for switching instrument
within a \score.


Sorry for the noise,
Gilles


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


Re: Do we really offer the future?

2015-04-20 Thread Gilles

Hello.

On Sun, 19 Apr 2015 21:39:29 -0400, Kieren MacMillan wrote:

Hi Gilles (et al.),


To whom LilyPond should strive to "offer the future”?


To everyone it possibly can.  ;)


Yes, but we are all aware of the limited resources, and I doubt that
focusing on how to please established editing houses will lead us
closer to the principles and goals of free software.


IMHO, certainly not to the "[...] big house[s] with traditions,
regulations and limitations”.


Why not? What’s to say that Lilypond can’t initially fit within those
traditions, regulations, and limitations, while providing benefits
(financial and otherwise) to those “big houses”, and can’t eventually
help a “big house” move past those limitations while maintaining
whatever traditions and regulations they see as indispensible?


Your question is quite fair.
But why do you ask _me_? ;-)
I'd answer that, yes, they can and should use LilyPond, if they care
for their business' future.
The point is that _they_ don't understand, and that bright people
here will (probably) waste their time trying to figure out their
business case for them.

Some software projects try to please their users, sometimes through
decisions that could hurt long-term improvements.
Even worse is giving the priority to non-users!

What's for the LilyPond team in spending resources trying to work 
around

those self-inflicted limitations?


Let’s say, for discussion’s sake, we convince a Warner-Chappell,
Boosey & Hawkes, or Barenreiter to use Lilypond as their primary
engraving application. You honestly don’t see the potential upsides 
of

that situation?


Sure, I could imagine them.
I could parallel the comparison with big companies starting to pay
programmers for contributing to the development of Linux.
But, actually, the situation is upside down: the Linux team did not try
to please e.g. IBM; rather, IBM figured out what their best interest 
was.


Publishers would be expected to give back if (when) they benefit
financially from using LilyPond.  The discussion here is that LilyPond
should give even more to them, right now.


Do you not remember the tipping point when OpenOffice
was embraced over Microsoft Office as the official office application
suite by certain governments?


Again, this is different in a very significant aspect: the citizen 
benefit

(in principle at least) when public institutions become independent of
private interests (by adopting FLOSS).
In this case, we consider FLOSS being adopted by a private company. I'm
sure the company can benefit; I'm not sure that the public will.

LilyPond is "[...] a program that creates beautiful sheet music 
following

the best traditions of classical music engraving." (excerpt from
"http://www.lilypond.org/introduction.html";)

I think that this goal is way more important (to users)
than trying to convince publishers.


To certain users? Absolutely.
To a majority of users? Possibly.
To all users? Doubtful.


If one goal of LilyPond was to immediately grab all users of the 
existing
alternatives, it should have renounced to implement its way of 
inputting

contents...
It's good (for the goal of creating beautiful scores automatically) 
that
the chosen approach was different.  With the difference came 
incomprehension
of most people who are generally averse to change, whatever the number 
of

rational arguments you can throw at them.


In any case, those aren't mutually exclusive goals. Quite the
contrary: almost tautologically, the easier it is for an abstract 
user

to “create beautiful sheet music following the best traditions of
classical music engraving”, the easier it will be to convince a given
publisher to become a user.


I agree with the rationality of the argument: the reality is different
(cf. previous paragraph), unfortunately.


A project like Mutopia is a promising future


I disagree rather strongly. Mutopia (at least currently) appears to
me to be a rather damning example of the failure of the open-source
philosophy to be able to make a broad and lasting impact on its
intended market. Worse, far too many of the examples there are not, 
to

my eye, “beautiful sheet music following the best traditions of
classical music engraving”; I would, for example, never send someone
there if I was trying to impress them with Lilypond’s engraving
output.


I meant the _idea_ of "Mutopia": a repository of free sheet music.
One can rightly be disappointed that the quality of the contents does
not evolve in step with LilyPond.
Can it be blamed on LilyPond's shortcomings?

I'd like to know what people think it would take to make the endeavour
really take off.  I possible, I'd rather use resources for that 
project.



If and when "big" publishers use LilyPond, the result will be more
restricted access (through cost)


Cost of what? Lilypond wouldn’t ever cost any more.


I didn't mean LilyPond; I meant t

Re: Do we really offer the future?

2015-04-20 Thread Gilles

Hi.

On Mon, 20 Apr 2015 09:52:54 -0400, Kieren MacMillan wrote:

Hi Federico (et al.),


I've thought for a long time that the right way to go is to seek
public funds for engraving public domain contents



Me too.


I think it’s telling that most of the non-publishing music world is
going in exactly the opposite direction: schools are adding “musical
entrepreneurship” courses, programs, and degrees all over, in an
attempt to teach musicians how to avoid the trap of relying only on
public funds; and there is a significant (and mostly successful)
grassroots effort to abandon the dying “not-for-profit” model of
musical organziations in favour of a model where pleasing the paying
audience actually matters to some extent.

I started thinking about bringing LilyPond in music schools. Even 
though I never tried because of lack of time, I can imagine two major 
issues:
1. LilyPond is not considered as a professional tool because it's 
not used by the publishing companies. In general schools teach what 
the market asks. That's why I think that this effort by Urs is 
important.

2. Text input. Frescobaldi is doing a good job here, but still.


From the [many] discussions I’ve had with music schools large and
small, the second is *far* less important than the first. And rightly
so: all other things being equal, higher education should be teaching
students skills and tools [!!] which they can immediately apply to
their careers.


This cannot be the overall guiding rule, if "progress" has any value at
all.
Is the sole expectation, of students attending music schools, to be
hired by a publishing company?

Personally, I think that it is equally wrong to teach (how to become
dependent of) proprietary products, the more so when a free (and more
fit to the task!) alternative exists. [Cf. M$-Office versus LaTeX for
typographic quality and consistency.]


Unfortunately, as long as Lilypond is a pariah amongst
publishers, it does a disservice to students to teach them Lilypond 
at

the expense of other things.


I might be wrong, but I think that the vast majority of music engraving
software users don't make their choice based on what a publishing 
company

uses.
LilyPond is at a disadvantage mainly because of marketing reasons (and
aversion to changing one's viewpoint on certain tasks).

As Urs mentioned, LilyPond would be a serious alternative for new
publishing houses.  Teaching it is offering business opportunities
for people so inclined.


Best,
Gilles


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


Re: Do we really offer the future?

2015-04-20 Thread Gilles

On Mon, 20 Apr 2015 10:22:23 -0400, Kieren MacMillan wrote:

Hi Andrew (et al.),

I would have thought that, like the invention of desktop publishing 
in the 1980’s, which allowed small scale companies and individuals to 
produce professional publications, lilypond frees composers, 
musicians, and engravers from the tyranny - and rejections - of the 
hidebound established music publishers. Why do we need Peters and 
Barenreiter and others?


Have you seen the “graphic design” of the millions of people who
bought a Mac (or whatever) and Adobe Illustrator (or whatever) and
started cranking out “design”? The situation is exactly analogous in
the music world: the vast majority of people (composers, etc.) 
*think*

they know how to make a readable music score, or at least trust that
Finale/Sibelius/whatever will do it for them, and the results are
atrocious.

Publishing houses, for the most part, are Awfulness Sieves… and as
such are [mostly] necessary evils, at a certain level.

My composer colleague of the New Complexity School will never be 
published by the Big Firms. But he will be published by me. And with 
the web nowadays, the big distribution networks the Old Companies have 
is no longer important.


For better or worse, I have chosen to self-publish my own works. But
I’m not deluding myself into thinking that “the big distribution
networks the Old Companies have is no longer important” — that’s a
fallacy, and easily debunked. It may well be that *one day* that
statement will be more true than false… but we’re still at least a
decade off from that Rapture, maybe more.


I would like to see every engraver using lilypond


I don’t really care; I only care about engraving quality. What I
*would* like to see is every engraver outputting music of equal or
superior quality to the scores I engrave myself in Lilypond, and
that’s clearly not happening right now.

If (as some have suggested) Steinberg’s pending application has
output of equal or greater quality to Lilypond, and there is some
reasonable way (e.g., MusicXML or MEI) for me to “own the source
indefinitely”, that application's ease of use (read: GUI and other
tools and workflows) could certainly sway me into abandoning 
Lilypond.


Unlike many on this list, I have no burning need to force Open Source
Philosophy on the world if it’s not willing to prove its own worth.


In
  F - Free
  L - Libre
  O - Open
  S - Source
  S - Software
the most important word is "Libre" (as in "freedom").

When people put convenience above all, they start giving up their 
freedom.
And yes, we are heading in that direction (through lazyness, despite 
all
the wonderful work build by the _original_ OSS movement, and the 
increasing

availability of free alternatives).  It's the wrong direction.

If [established firms] need vast amounts of explaining to understand 
it, they simply will not get it.


So true. Hence my repeated pleas to try to make Lilypond usable
without vast amounts of explaining.


In some sense, LilyPond is usable with a little amount of explanation.
As you know, some people will turn away just because of text input,
even though I'm sure that, for simple tasks, it requires less time get
up to speed with LilyPond than with a GUI software. [That is, unless
one insists that softwares must be usable without reading the usage
instructions...]

Vast explanations are needed for example when it comes to making things
that are not part of the LilyPond "language".
[Whenever Scheme code is part of the solution, it can never be easy
from viewpoint of someone who does not know the language.]

It may also be a "problem" that the software is so flexible: there
are (too?) many ways to organize a large work, at which LilyPond is
probably much better than the competition.
Along the years, several "add-ons" (templates, makefile, scripts,
snippets) have been mentioned here but, unless I'm mistaken, they
didn't yet evolve into a compelling "standard" set of files with
features that would cover most needs.
As a concrete example, I'd favour recommending that _any_ piece of
music (small or large, it does not matter) be encoded in files that
separate layout from contents; the official documentation provides
templates where everything is in a single file.


Best regards,
Gilles


Cheers,
Kieren.



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


Re: [OT] Re: Do we really offer the future?

2015-04-20 Thread Gilles

Hi.

On Mon, 20 Apr 2015 14:18:19 -0400, Kieren MacMillan wrote:

Hi Gilles,

On Apr 20, 2015, at 1:19 PM, Gilles  
wrote:
When people put convenience above all, they start giving up their 
freedom.


My experience — this thread being no different so far — is that such
discussions always end up in absolutist terms (moral and otherwise).
It’s almost a defining quality of the FLOSS movement, from what I can
tell.

Ultimately, such positions are neither realistic, nor productive, nor
particularly interesting to me (or many other people I know).

I don’t grow my own food, because buying my food — even the organic
food I purchase regularly, in person, from farmers I know by name — 
is

not only more convenient, but also cheaper and more freeing than
growing, harvesting, and processing it myself. That freedom allows me
to do other things that are more important to me, like composition,
and using Lilypond to engrave my compositions, instead of heading out
at 5AM to feed and milk my cows before the hard 16-hour day tending 
my

subsistence crops.

I don’t put convenience above all; I make choices that make sense to
me and those around me, in my real-world life.


Your earlier comparisons were not really applicable to the
situation discussed in this thread.
This one is completely off-topic (as you correctly indicated
in the subject line) if it purports to argue against something
I wrote.

I stated explicitly in my previous post what aspects would perhaps
be worth working on (IMHO).  Because I'm just a little user, and
grateful for what the software can do, I always felt I should not
complain about such shortcomings, as long as I did not have the
time to contribute more productively.

As the question was asked on this forum, I felt I could provide
my opinion that some effort might be misplaced if its sole purpose
was towards improving the publishing business.
My opinion is that the future should not be that.

The publishers indeed (also) do not care about the real-world
principles (free access to culture in this instance) which a FLOSS
like LilyPond can help achieve (within their obviously limited
sphere).
Not that they oppose it, it's simply not their business (which is
selling printed scores).  They have the right to use the software,
like any of us.  The point is that they don't want to.  Several
possible reasons were given by other people in this thread.

Of course, you are free to pursue your effort with the publishing
houses, despite the preference of some of your fellow LilyPonders...
:-)

Regards,
Gilles


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


Re: mutopia's shortcomings

2015-04-20 Thread Gilles

On Mon, 20 Apr 2015 19:07:46 -0400, Kieren MacMillan wrote:

Hi all,

Seems to me it has been quite successful in its goals of making 
sheet music easily available for free, all works in the public domain 
or under creative commons licenses, in (user-editable, 
user-improvable) LilyPond format, pdf, and midi — all with volunteer 
labor.  Looks like the total is over 1900 works now.


Other than the “user-editable, user-improvable” issue, all of those
things are far better done by IMSLP. Put another way, looking at 
IMSLP

(with 310,000 scores) and Mutopia (with 1,900), the shine quickly
comes off Mutopia for anyone except the handful of hardcore DIY
musicians who (e.g.,) want to take a violin piece from Mutopia and
make a guitar arrangement.

I think it would be far better — and probably result in better
visibility/marketing for Lilypond — if Mutopia were merged into 
IMSLP.
(There appears to have been a thought in this direction at some 
point,

but not any more; cf.

http://imslp.org/wiki/IMSLP:Community_Projects/Mutopia_score_archive).
Then, for important works, there would be the Lilypond source,
side-by-side with scans of existing editions. But it seems this was
considered, and rejected for exactly the reasons that Mutopia now
flounders (cf.

http://imslp.org/wiki/IMSLP_talk:Community_Projects/Mutopia_score_archive).


Some pieces accessible on IMSLP were typeset for Mutopia, with a
"publisher" link to Mutopia's site.
So visibility of LilyPond can be achieved through publishing to
IMSLP in addition to Mutopia.

On Apr 20, 2015, at 5:58 PM, Simon Albrecht  
wrote:


I think it’s mainly three problems:
– Lilypond versions, as Paul already mentioned.


Yes.

– Coding style: the lilypond code I saw till now from Mutopia mostly 
gave me a real headache, because it was excessively hard to read, 
inefficient or hacky. Which makes reusing it an unpleasant experience.


Yes. I would call real code reuse — certainly anything other than the
most trivial cut-and-paste exercise — essentially impossible.

– Visual quality of the output: Many of the scores very effectively 
display that using Lilypond does not warrant making beautiful scores


Yes. Urs and I are hoping to change this (dramatically, for the
better, in one fell swoop) with the openLilyLib stylesheet project.
But for now, the defaults in Lilypond are far from publication 
quality

(IMO).


A word like "stylesheet" looks promising.
I looked at the "openlilylib.org" web site but could not find
the stylesheets.

All the problems with Mutopia stem from not having a standardized
way of managing the layout and contents.  Mutopia should not be
like IMSLP; rather it should be a database of LilyPond input
format (the _music_ part).  With standard stylesheets, one would
be able to automatically update/adapt the contents.

Of course, the devil is in the details... :-}


Gilles


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


Re: Do we really offer the future?

2015-04-20 Thread Gilles

On Mon, 20 Apr 2015 11:50:24 +0200, Federico Bruni wrote:

2015-04-17 16:45 GMT+02:00 Gilles :


A FLOSS like LilyPond is a great opportunity to share (musical)
culture, at the lowest possible cost.
A project like Mutopia is a promising future: digital scores (of 
public

domain music) that are free of publishers' rights.
If and when "big" publishers use LilyPond, the result will be more
restricted access (through cost) to culture (because they won't 
release

their proprietary contents).

I've thought for a long time that the right way to go is to seek
public funds for engraving public domain contents with the purpose
of publishing it under a GPL-like (or Creative Commons) license.



Me too.. but unfortunately it's not a good moment to seek public 
funds. And

I don't like much having to deal with public istitutions.


Whether or not funds will be obtained is a question that comes only
after people at various levels are made aware that LilyPond exists.
This perhaps requires a showcase especially crafted for convincing
this particular audience...

I would prefer if more people were able to use LilyPond and learn to 
have
fun and learn and help others while contributing to Free Culture. 
That's

why I started thinking about bringing LilyPond in music schools. Even
though I never tried because of lack of time, I can imagine two major
issues:

1. LilyPond is not considered as a professional tool because it's not 
used
by the publishing companies. In general schools teach what the market 
asks.

That's why I think that this effort by Urs is important.
2. Text input. Frescobaldi is doing a good job here, but still..


What I had in mind was creating the scores which music schools use
for teaching music (solfege and instrument).  Here, (public) music
schools were forced to pay publishers a yearly contribution under
threats of legal action against them because of their use of
photocopies, even though most of the copyrighted material being
copied is actually based on public domain contents ("classical"
music).

Regards,
Gilles


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


Re: Do we really offer the future?

2015-04-21 Thread Gilles

On Mon, 20 Apr 2015 20:19:37 -0700, Jim Long wrote:

On Fri, Apr 17, 2015 at 04:45:20PM +0200, Gilles wrote:

If and when "big" publishers use LilyPond, the result will be more
restricted access (through cost) to culture (because they won't 
release

their proprietary contents).


Forgive me if I've missed important bits of this conversation, but
I'm not I understand your point here -- can you expand on this
statement?  Why do you feel that large-scale adoption of OSS (in
general) will restrict and increase the cost of cultural access?


You are right, the sentence was not clear.  I certainly did not want
to mean that general adoption of OSS will have bad side effects.[1]
Here I just meant that when publishing companies create new editions
of out-of-copyright contents (e.g. works composed more than 100 years
ago), the editing work is under copyright (and rightly so) and they
choose the license (and rightly so).  I just doubt that they will
settle on something like "Creative Commons".[2]
What I meant is that if the work is edited and published by a public
institution, it should[3] be released under a protective license.[4]
LilyPond makes that endeavour possible.[5]


Regards,
Gilles

[1] Although the license question is a central issue, unless one
does not care how the software is used (in the real world).
[2] I don't imply that all music should be given away for free:
Contemporary composers create contents and have all the rights
to publish under whatever license suits them.
[3] That's what I consider the duty of "public" service (that
works thanks to the public's contribution).
[4] That allows free usage and has some provision to discourage
"free rides".
[5] Because it is free software, the data (music contents) does
not risk getting stale and the printed output will always be
as beautiful as the version of LilyPond could make it at the
the time of the encoding (assuming that computers, PDF readers,
and printers are still available in the future).


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


Re: best practices for volta (was Re: Problem with repeat, alternative endings that contain lyrics andleading rests)

2015-04-22 Thread Gilles

Hello.


[...] MIDI is widely acknowledged
to be a relatively unimportant part of LP [...]


I hope there is no intention to drop the MIDI output.
For me, it is extremely useful to be able to figure out how
an arrangement will sound.
With all its shortcomings, it's still infinitely better than
nothing. :-)


Best,
Gilles


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


Is GridLY the future? (Was: Do we really offer the future?)

2015-04-22 Thread Gilles

Hello.


I think you could vastly benefit from using openLilyLib's GridLY
library. Of course thst's only viable for new projects.


That looks interesting just from a quick reading of
  https://github.com/openlilylib/openlilylib/tree/master/ly/gridly

I stumbled upon that page only through a web search...

The "openlilylib" web site refers to github but then it is not
clear what functionality can be found there and how to install
and use it (the links of the examples at the bottom of the above
page point to nowhere).

Is this something to be included in LilyPond at some point?
If not, why?


Thanks,
Gilles



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


Re: How do new users feel about LilyPond's documentation?

2015-04-22 Thread Gilles

Hello.

On Wed, 22 Apr 2015 21:19:12 +0200, N. Andrew Walsh wrote:
I started using Lily for serious maybe a month ago, so I'm what you'd 
call
new. I find the guide far more useful than the manual (the former 
seems
more structured around how to do specific things, while the latter 
seems

much more a general conceptual introduction).

However (and this is something I mentioned on a couple recent message
exchanges), I feel that neither one of them gets me very far past 
making a
single monolithic file using defaults. There's been a lot of mention 
(I

imagine rightfully) about how Lily is capable, above all, of making
beautifully engraved scores, and her suitability to managing a 
text-based,

distributed, and version/change-tracked workflow. All of that sounds
awesome, but I don't see anywhere where that's comprehensively 
documented.


Let's take my case: I'm transcribing masses from some obscure 
composer from

the 18th century. There are no extant scores, only the parts (which
ironically works better for Lily's structure). I want these scores to 
look
their absolute best, and the underlying files to follow the best 
practices
for structure and organization. I want to put the score and parts 
alongside

the work of a commercial (read: Sibelius-using) house and have it be
unambiguously a better-looking and standards-conforming result, and 
be able
to show the incredible flexibility and rigorous flow-control that 
using the

underlying system can offer.

I don't see anywhere in the reference or the manual where that sort 
of
comprehensive style guide is presented. I'm thinking something like 
the
doorstops O'Reilly's uses for documenting, say, HTML. I hate to use 
the
term (it's already been ruined by bureaucrats), but what I'm really 
looking
for is a comprehensive "best practices" style guide for how to 
organize

larger scores.


Best practices, yes; for any score (not just large ones).[1]
A flexible structure that would be "compelling" and foster the creation 
of

"compliant" tools.

Is it GridLY? [Cf. other post.]

Regards,
Gilles



Urs, I think this would probably dovetail nicely with your efforts to 
build
a pool of competent engravers, as we would then all be working from 
the

same style guidelines.

But that's just my use-case. Maybe there are others?

Cheers,

A

On Wed, Apr 22, 2015 at 9:03 PM, Urs Liska  
wrote:





Am 22.04.2015 um 20:48 schrieb Federico Bruni:

Hi Abraham

 I've been using LilyPond since 6 years.
 I think that LilyPond documentation is great. Learning Manual is a
gentle introduction (basically 3 chapters only) for new users and 
Notation
Reference is a complete reference, well indexed and easy to search 
through.

 I never found anything better (which is as complex as LilyPond).


I am quite in line with that impression. I don't think the 
*documentation*
can be *much* better in general. However, there are a few things 
that would
help new users (I think it would be very good if some of these could 
also

comment on this thread).

It would be helpful if there were more learning material that has a 
slower
pace and into more depth at explaining things than the notation 
reference.
The Learning Manual is very good, but when that's finished people 
are not

ready to walk alone.
That's what I intend with the tutorials section on the blog, but of 
course

these posts are only drops in the ocean. But better than nothing.
I could also see something like a community book emerging from these
tutorials, but I'm not sure how well this would work out.

Urs


2015-04-22 17:09 GMT+02:00 Abraham Lee :


All,

 I've been thinking about this a lot lately, even going so far as 
to
create my own "Quick Start" tutorials for new users, but I can only 
go so
far in my own head. I really have two questions that I keep 
wondering about:


   1. What is the thing you (especially new users) like the least 
about

   LilyPond's documentation structure?
   2. If you could have the same documentation structure as found 
in
   another notation program, which program is it? Or put another 
way: Is there
   a notation program out there that has a documentation structure 
you like?




 1. The missing connection between input and output, in other words
something similar to the experience of point-and-click in an editor. 
Yes,

this is not about structure. I think that structure of NR is Ok.
Also, syntax highlighting would help readability:
https://code.google.com/p/lilypond/issues/detail?id=2578
https://code.google.com/p/lilypond/issues/detail?id=1005

 2. no idea




   1.

 I'm asking this because I'm trying to determine how we in the 
'Pond can
make it easier for new users to jump in with both feet instead of 
dipping a

toe and getting scared of the deep.

 I may be over-thinking this, but I keep getting the feeling that 
people
are sc

Standard LilyPond score structure (Was: How do new users feel about LilyPond's documentation?)

2015-04-22 Thread Gilles

Hello.

[Changing subject line; so many different topics in a single
thread...]

On Wed, 22 Apr 2015 19:14:15 -0400, Kieren MacMillan wrote:

Hi Gilles (et al.),


Best practices, yes; for any score (not just large ones).[1]
A flexible structure that would be "compelling" and foster the 
creation of "compliant" tools.


I have a pretty rich imagination, and I can’t begin to conceive of a
Lilypond best practice [singular] or flexible structure [singular]
that could possibly satisfy both a newbie who wants to quickly output
a 32-bar lead sheet with chord symbols and a power user who wants to
manage a crowd-engraved critical edition of “Porgy & Bess”.


Yet you long for  that would know how to remove a set of
bars from "That Production" project. :-P
A tool could do that *if* it knew what structure to expect. [Like
if each note would be in a database table where one of the attributes
is the bar number...]
The various GUI applications do just that: they decide on a structure
so that they can represent it graphically.

By default, standardization is a Good Thing.
It should not be the case that simple scores have a structure that
becomes hugely inadequate when more contents is added.

As I mentioned already, several "project managers" were referred to
here along the years.  But they had always the same fundamental
problem as was raised in a recent post: they were designed outside
official development.  Hence, however powerful, they never became
"standard".


Best regards,
Gilles


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


What is the problem with "\relative"? (Was: Do we really offer the future?)

2015-04-22 Thread Gilles

Yet another subject ;-)


[...]
Yet another reason to deprecate \relative, which I now avoid like the
plague. (Unfortunately, I was suckered into using it when I started
using Lilypond over a decade ago, so all my legacy code is in
\relative mode. Using Frescobaldi, I’m slowly converting all my old
code to absolute mode.)


Why?

Thanks,
Gilles


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


Re: Standard LilyPond score structure (Was: How do new users feel about LilyPond's documentation?)

2015-04-22 Thread Gilles

On Wed, 22 Apr 2015 21:53:42 -0400, Kieren MacMillan wrote:

Hi Gilles,


Yet you long for  that would know how to remove a set of
bars from "That Production" project. :-P
A tool could do that *if* it knew what structure to expect.


I don’t believe that’s necessary… but we can leave that aside for
now, since the technical investigation required to determine whether
my intuition is correct isn’t worth it at this stage of the
discussion.


For sure, it is not necessary: LilyPond itself should be able to do
it since it obviously has to know at some point which part of the
input will end up in which bar.


By default, standardization is a Good Thing.


I agree 100%. (But, as an aside, many people wouldn’t!)


It should not be the case that simple scores have a structure that
becomes hugely inadequate when more contents is added.


So, to output a simple 16-bar lead sheet, a user should always [be
forced to] create 3 files (voice.ily, chords.ily, score.ly)? Or maybe
four (lyrics.ily)? Or more?
Because a “one-per-instrument” file structure — or something equally
segmented in some other way — is likely necessary (or at least
desirable enough to be chosen as the standard) for a huge project 
like

an opera.


Yes! :-)
But once there is a standard, many tools will blossom, in particular
one that would offer "simple layout" and transparently transform into
"standard layout"...
Or more probably a user that is too lazy to set up one directory 
(rather

than one file) for a given project is likely to use a GUI in the first
place and will never ever see the multi-file standard layout.

Regards,
Gilles



Best regards,
Kieren.



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


"Instrument" as first class citizen (Was: ...)

2015-04-22 Thread Gilles

On Wed, 22 Apr 2015 19:17:53 -0700, Flaming Hakama by Elaine wrote:

[...]
Without getting too technical, objects are things that you can 
create, have

properties and relationships with other well-defined objects.

This is true for things like staves, staff groups, scores, books, 
etc.
You can say:  \new Staff = { ... } to create a new staff because 
there is

an object class called Staff that is well-defined.
It has known properties like Staff.TimeSignature, Staff.extraNatural, 
etc.
Other objects (Staff Groups, Books, etc.) know how to handle this 
Staff

object, or several Staff objects.

However, in the case of "instrument", there is no such object so you 
cannot

create one.
There are certainly properties of other objects (namely, staves) that 
have

"instrument" in the name, like Staff.instrumentName,
Staff.shortInstrumentName, Staff,midiInstrument.
However, these are *properties of a Staff object*.
There is no way to create an "instrument" outside the context of a 
staff,

or identify or change its properties.
You cannot add an instrument to a staff or any other object.

If there were, the syntax might be more like:

violin = \new Instrument {
Instrument.name = 'violin'
Instrument.shortName = 'v.'
Instrument.midi = 'violin'
Instrument.clef = treble
...
}

\new Staff {
Staff.Instrument = \violin
\violinMusic
}


From the viewpoint of the encoder, this is quite sensible.
This would be a nice syntax simplification.

Best,
Gilles



As an aside, an outstanding problem with lilypond is that it is 
difficult

to write multi-instrument parts.
This points to a lack of clarity of design around the distinction 
between a

voice, instrument and staff.
At its core is the lack of a coherent concept of instrument.

Which is to say, while you might point to the Staff as the place 
where most
instrument information is situated, Staff and Instrument are clearly 
not

identical concepts, nor is Instrument a proper subset of a Staff.

Perhaps the reason there is no such Instrument object in lilypond is 
that

an "instrument" is not a grob.
There is no place that an "instrument" appears on the page, except as 
a

label for a staff.

Yet, for the purpose of this discussion, it is clear that everyone 
thinks

in terms of "instruments".
So, the documentation ought to explain exactly how this commonsense
conceptual notion of "instrument" maps to the actual objects and 
properties

that are available.



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


Re: Standard LilyPond score structure (Was: How do new users feel about LilyPond's documentation?)

2015-04-23 Thread Gilles

On Wed, 22 Apr 2015 19:39:25 -0700, H. S. Teoh wrote:

On Thu, Apr 23, 2015 at 04:19:08AM +0200, Gilles wrote:

On Wed, 22 Apr 2015 21:53:42 -0400, Kieren MacMillan wrote:

[...]

>So, to output a simple 16-bar lead sheet, a user should always [be
>forced to] create 3 files (voice.ily, chords.ily, score.ly)? Or 
maybe

>four (lyrics.ily)? Or more?
>Because a “one-per-instrument” file structure — or something 
equally

>segmented in some other way — is likely necessary (or at least
>desirable enough to be chosen as the standard) for a huge project
>like an opera.

Yes! :-)
But once there is a standard, many tools will blossom, in particular
one that would offer "simple layout" and transparently transform 
into

"standard layout"...

Or more probably a user that is too lazy to set up one directory
(rather than one file) for a given project is likely to use a GUI in
the first place and will never ever see the multi-file standard
layout.

[..]

I beg to differ. I do not use a GUI (and never will, for lilypond), 
yet
I have found (so far) that I prefer the single-file approach. At 
least,

I've found it quite manageable so far for single-movement pieces.

[...]


Of course, if you are used to it, nobody forces you to change.
The suggestion was certainly that LilyPond should forbid all input
other than the "standard" ("best practice") layout.

[Yet I want to stress that what you seem to describe is exactly what
a LilyPond GUI would do; I mean that the GUI designer has chosen a
structure (like you did) so that the code knows where to fetch and
to put things.  You do it "manually".]

Everything in one file is not a solution that can scale (e.g. for
large, possibly distributed, encoding projects).


Best regards,
Gilles


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


Re: "Instrument" as first class citizen

2015-04-23 Thread Gilles

On Thu, 23 Apr 2015 09:50:05 +0200, Xavier Scheuer wrote:
On 23 April 2015 at 04:28, Gilles  
wrote:


On Wed, 22 Apr 2015 19:17:53 -0700, Flaming Hakama by Elaine wrote:


[...]
Without getting too technical, objects are things that you can 
create,

have

properties and relationships with other well-defined objects.

This is true for things like staves, staff groups, scores, books, 
etc.
You can say:  \new Staff = { ... } to create a new staff because 
there is

an object class called Staff that is well-defined.
It has known properties like Staff.TimeSignature, 
Staff.extraNatural,

etc.
Other objects (Staff Groups, Books, etc.) know how to handle this 
Staff

object, or several Staff objects.

However, in the case of "instrument", there is no such object so 
you

cannot

create one.
There are certainly properties of other objects (namely, staves) 
that

have

"instrument" in the name, like Staff.instrumentName,
Staff.shortInstrumentName, Staff,midiInstrument.
However, these are *properties of a Staff object*.
There is no way to create an "instrument" outside the context of a 
staff,

or identify or change its properties.
You cannot add an instrument to a staff or any other object.

If there were, the syntax might be more like:

violin = \new Instrument {
Instrument.name = 'violin'
Instrument.shortName = 'v.'
Instrument.midi = 'violin'
Instrument.clef = treble
...
}

\new Staff {
Staff.Instrument = \violin
\violinMusic
}



From the viewpoint of the encoder, this is quite sensible.
This would be a nice syntax simplification.


Actually there is the \addInstrumentDefinition command (used in
combination with \instrumentSwitch) which does *part* of that.


IMHO, a list of all instrument definitions would be useful.
Perhaps in individual files for inclusion ("violin.instrument.ily")
and files of families ("strings.family.instrument.ily"), and files of
musical ensembles ("quartet.ensemble.instrument.ily")...
[With accompanying "LilyPond" (not scheme) syntax for overriding
the default settings or selecting variants (e.g. something like
"\bassoon \with { \clef tenor }".]

Regards,
Gilles


See NR 1.6.3 Writing parts > Instrument names

http://lilypond.org/doc/v2.18/Documentation/notation/writing-parts#instrument-names

Cheers,
Xavier



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


Re: Do we really offer the future?

2015-04-23 Thread Gilles
d
approach made quite some impression particularly.
As mentioned I have the impression that the overall issues of data
integrity and the risks of relying on commercial software have become
more present in publishers' minds by now.


Imagine your suffering if the Sibelius case did not happen... :-)


b) and c) are the problematic parts. And here I think the "risk" part
is more of an issue thant the "investment". People can't really
oversee how the new technology can fit into their existing
infrastructure, particularly given the fact that they do and will
always have contributions by numerous people from outside that have 
to

be integrated. Add to this the question if we can reliably enough
convince anybody that "we" will be around in a few years and that
there is a sufficient user base to guarantee that they will always
find someone to get "tech support" from.


The problem is that they don't grasp what "free software" is.
If they want to, "tech support" will be there, thanks to them.
You cannot promise that it will be there, if they don't become
involved in and concerned about the (evolving) "community".

And as noted earlier, they have demonstrably wrong expectations
that tech support for commercial will always be there!


So finally I'm back at the beginning, namely my original post's
question, preparing a convincing set of facts, arguments and
"promises" that help to overcome the reservations with regard to b)
and c) of the above list. I have the impression I'll be more or less
alone with that, so I'll try to put my things together on my own.
Having triggered quite a bunch of different (and hopefully fruitful)
discussions is something too ...


Back to thanking you for starting this discussion. And your 
involvement.

And your work. And your projects.
Maybe there will be a little slot for trying to take other paths into
consideration for increasing LilyPond user base (or publish what you 
tried

already and how/why it failed).

Thanks,
Gilles



Best
Urs

Am 17.04.2015 um 15:03 schrieb Urs Liska:
Just one more of the fundamental questions I took home from the 
Musikmesse ...


The question can be asked somewhat less pretentious then in this 
message's subject line, but I think it actually boils down to no less 
than that.


You know that I have again been at the Frankfurt Musikmesse this 
week, and again I had the opportunity to talk with various people from 
publishing houses (names only privately ...), and I was (unpleasantly) 
surprised that I didn't always have fully satisfactory answers ready.


The questions came in various variants of "why should a publishing 
house use LilyPond?" And despite all the reasoning and writing I have 
produced over the last years I didn't always find "the" striking key 
features that were convincing in the concrete situation.


I think  I have always taken a perspective that was focused slightly 
beside the point, namely the perspective of an individual editor or 
the team of editors. This is perfectly transferable to a publishing 
house starting from scratch, but not to a big house with traditions, 
regulations and limitations.


Compared to last year I have the impression that many people have 
become more aware of the basic questions about longevity of binary and 
textual data formats and data processing. The question has become much 
less "why should we consider dropping Finale and Sibelius, it's 
working, heh?" and more "OK, we see that we need an alternative 
approach, but how do you convince me that LilyPond has to be it?"


We always say that text based tools are superior because they are 
much less prone to become unusable. This, and the potentials that come 
from version control, make quite some impression, but again this is 
only relevant to new material and doesn't take into account two 
important issues:


1)
Publishers receive heterogenuous data material from various sources 
(editors, composers, engravers), and these are mostly done using 
Finale or Sibelius (and in some cases Score). It is completely out of 
question to requre all these people to switch to LilyPond.


2)
One major question publishing houses consider today is how to carry 
their (digitally) existing material to the future. By now they have 
realized that simply using the latest version of the mainstream 
programs is calling for disaster, that's good for us. But again, the 
question is: Can we really offer "the" solution for this?


The immediate idea would be to go some route via MusicXML and offer 
hassle-free workflows to convert existing editions or said received 
data material) to LilyPond. But firstly I don't think we can already 
guarantee this. And secondly, the question is natural to pop up: If 
one already uses MusicXML as the permanent and future-oriented storage 
format, whe

Re: Do we really offer the future?

2015-04-23 Thread Gilles

On Fri, 24 Apr 2015 01:59:40 +0200, Urs Liska wrote:

Am 24.04.2015 um 01:26 schrieb Kieren MacMillan:

Hi Gilles,

I have _not_ asked "the LilyPond team" to spend any resources for 
whatever.

First of all, nobody wrote that you did.

You wrote


What's for the LilyPond team in spending resources
trying to work around those self-inflicted limitations?
That response fairly strongly implies that you think Urs has 
suggested or asked “the Lilypond team” to spend resources.


I think so too.


You got me there!  Almost. :-)
Actually what I meant is that *you* did not ask (in your post), but 
that
(in my opinion) it logically follows that resources would be spent (to 
fix

whatever needs fixing).
And I included *you* in the "LilyPond team".

Perhaps your initial post offered the possibility of 
misinterpretation.

I seriously doubt that comment will help matters.


Well, there *are* things that I didn't express in full length
originally. So, while I still think I have the "right" to complain
about some comments, there is some truth in this comment.


Will you still complain, if I offer more compliments?  :-)
Rephrasing the idea: My opinion is that there is more to gain for us if
you spent your resources without focusing too much on the "big 
publishers"

potential user segment.
I'd be more inclined if you set to educate "small publishers". Perhaps 
an

easier target.

But you, as the one doing the work, definitely get to decide in the 
end.



And particularly as Gilles' post you are referencing here is overall
very constructive I don't see much sense in playing "he started" or 
"I

didn't say that but you did".
I'll respond in more detail to that post as soon as  I have the time.


I'm particularly interested in constructive feedback on the alternative
project which I mentioned. How to make a case for LilyPond? So that
people will support the idea of creating free contents (primarily for 
use

music schools) and will request that funds (which otherwise would go to
"big publishers") be diverted towards that goal.


Best,
Gilles


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


Re: mutopia's shortcomings

2015-04-24 Thread Gilles

Hi.

On Fri, 24 Apr 2015 12:43:59 +0200, Federico Bruni wrote:
2015-04-21 1:07 GMT+02:00 Kieren MacMillan 
:


> Seems to me it has been quite successful in its goals of making 
sheet
music easily available for free, all works in the public domain or 
under
creative commons licenses, in (user-editable, user-improvable) 
LilyPond
format, pdf, and midi — all with volunteer labor.  Looks like the 
total is

over 1900 works now.

Other than the “user-editable, user-improvable” issue, all of those 
things
are far better done by IMSLP. Put another way, looking at IMSLP 
(with
310,000 scores) and Mutopia (with 1,900), the shine quickly comes 
off
Mutopia for anyone except the handful of hardcore DIY musicians who 
(e.g.,)
want to take a violin piece from Mutopia and make a guitar 
arrangement.



You forgot the quality of sheets: a (really) digital PDF will always 
look

better than a scanned PDF.
And if it's too old or don't like anything you can change it and get 
what

you want.

This is the value of Mutopia and the reason why I strongly disagree 
on the
idea of merging it into IMSLP. In the past discussion on this topic 
there
were a couple of ideas on better integration between the two 
projects.




I think it would be far better — and probably result in better
visibility/marketing for Lilypond — if Mutopia were merged into 
IMSLP.
(There appears to have been a thought in this direction at some 
point, but

not any more; cf.

http://imslp.org/wiki/IMSLP:Community_Projects/Mutopia_score_archive).
Then, for important works, there would be the Lilypond source, 
side-by-side
with scans of existing editions. But it seems this was considered, 
and

rejected for exactly the reasons that Mutopia now flounders (cf.

http://imslp.org/wiki/IMSLP_talk:Community_Projects/Mutopia_score_archive
).


Whether merge or not depends on the ultimate purpose of the project.
IMSLP is mainly a repository of "printed" scores (final output) that
happens to provide source code for some scores, while Mutopia is 
primarily
a repository of musical "data" (LilyPond input data) that happens to 
provide

the final output.

I think that the original problem with Mutopia is that it did not 
position

itself as a "contents" database but only as a score "repository".
In the former case, one would have required that submitted contents 
follow

rules well beyond just being a LilyPond-compilable source.

If all works would follow the same standard layout, it would be much 
easier
to maintain, upgrade (the layout) and adapt to different users taste 
wrt to

the output (for example, changing the font should be doable with just
rerunning LilyPond with an appropriate command-line switch).

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 contents of all files that make up the complete layout does not 
have to

be easily comprehensible by everyone; I think that the indispensable
features are that
* it should be manageable automatically (i.e. changing the standard
  should not require manual intervention)
* the files requiring user input (i.e. music contents) should be 
completely

  separate from layout definitions

Of course, the devil is in the details.
And power users will complain in advance that they must tweak things 
(i.e.

mix layout with contents) to get their required level of esthetics.
Maybe that tweaked editions should not be in Mutopia's realm as a 
database[1]
Maybe that such finely tuned editions could be managed with a source 
control

system (keeping track of the differences with the "baseline contents").


Best regards,
Gilles

[1] Those editions could be available from there too, but would not be 
(so

easily) upgradable.


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


Re: mutopia's shortcomings

2015-04-24 Thread Gilles

On Fri, 24 Apr 2015 10:01:29 -0400, Kieren MacMillan wrote:

Hi Simon,

You forgot the quality of sheets: a (really) digital PDF will 
always look better than a scanned PDF.
I think it depends: firstly, many IMSLP scores are on a level of 
typographical quality which – I’m sorry – Lilypond might never reach.


+1000


Why do use LilyPond then?
Or: Doesn't your appreciation need a more specific context?
Like: LilyPond might never reach [that] level of typographical quality 
*without human tweaking*.



Gilles


[...]



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


Re: mutopia's shortcomings

2015-04-24 Thread Gilles

On Fri, 24 Apr 2015 10:48:02 -0400, Kieren MacMillan wrote:

Hi Gilles,


Why do you use LilyPond then?


Here’s my answer: for compositions that have not yet been engraved —
for example, every single one that will be written after today.


But why _LilyPond_, if you agreed that quality will can (never!) match 
that

produced with the tool that produced the scores available on IMSLP ?

Why not that other tool?

As a composer (and self-publisher), using Lilypond is a no-brainer 
for me.

For engravers/publishers looking only to produce Yet Another Edition
Of “That Old Chestnut”, I would imagine using Lilypond is far from a
no-brainer — in fact, as we’ve seen, it’s a pretty tough sell, even
for individual users.


The question was not in reference to that subject.
Rather it is about the "objective" quality of the result (independent
of much work is required to get it).


Best regards,
Gilles


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


Re: mutopia's shortcomings

2015-04-24 Thread Gilles

On Fri, 24 Apr 2015 16:33:29 +0100, Anthonys Lists wrote:

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 ...


I was not at all suggesting a uniform layout of the "printed" output!

On the contrary, I propose a standard way for managing an encoding
project: list of files, names of those files, separation of concerns
(contents vs graphical output), naming of variables, settings for
different printed output (according to standard practice for the
music style at hand), etc, etc.


Best regards,
Gilles


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


Re: mutopia's shortcomings

2015-04-24 Thread Gilles

On Fri, 24 Apr 2015 12:42:32 -0400, Kieren MacMillan wrote:

Hi Gilles,

But why _LilyPond_, if you agreed that quality will can (never!) 
match that

produced with the tool that produced the scores available on IMSLP ?

Why not that other tool?


What "other tool"? Hand-engraving with metal punch ca. 1852-1952?
Because that’s the standard we’re measuring against by comparing to
IMSLP.


I did not understand that.  I thought that we were discussing computer
generated output with (possibly heavy) human tweaking.

New editions will (probably?) not use hand-engraving as you describe,
so that's not part of the competition.


No cross-platform computer application I know of — proprietary or
open source — has better output than Lilypond. In fact, even with 
just

a basic stylesheet applied to it, my musical theatre Piano/Conductor
scores rival (and in most cases surpass) what the big publishing
houses (e.g., Warner-Chappell) put out for sale.

This is one of the reasons I laud Urs’s attempt to get some of those
houses to use Lilypond: it would actually improve their current
output!


My point in the long thread is that they may indeed be satisfied
with their current business model (which, for some, include ugly
practice) and tools; hence, perhaps nothing can help.


Regard,
Gilles



Cheers,
Kieren.



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


Re: Limits of algorithmic typesetting (was: Re: mutopia's shortcomings)

2015-04-24 Thread Gilles

On Fri, 24 Apr 2015 23:22:54 +0200, Eyolf Østrem wrote:

On 24.04.2015 (14:12), tyronicus wrote:

Simon Albrecht-2 wrote
> I should’ve written “I believe that nothing as beautiful/good as 
this

> will ever be engraved by a machine” then, since basically it is my
> belief. Maybe I exaggerated a little :-)
> And you may believe differently of course.

My contrary belief: A machine will draw a circle better than a human 
100% of

the time. It's a matter of telling it how.


A machine may draw a more geometrically perfect circle, but if I were 
to
hang the drawing on my wall, I'd much rather have one made by Mirò 
than by a

machine. Same with notation.


Following this line of reasoning, you'll end up that it's better
to have scores written by hand (as a really unique artisanal
creation)...

Also, a machine can be told to not draw a perfect circle, to fool
you into thinking that was not drawn by machine. ;-)

Regards,
Gilles

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


Re: What is the problem with "\relative"? (Was: Do we really offer the future?)

2015-04-26 Thread Gilles

On Sun, 26 Apr 2015 09:58:33 +0200, Johan Vromans wrote:

On Sun, 26 Apr 2015 05:52:04 + (UTC)
Keith OHara  wrote:


I wish the manual did not use the implicit \relative c'' {}
(sometimes \relative c' {} ) enclosing the examples.  As soon as
the input gets complicated, \relative becomes difficult to figure 
out.


I've always considered \relative as an operation that should be 
applied as
close to the actual notes as possible. This gives the least suprises, 
if

any.

  \relative c'' {
\new PianoStaff <<
  \new Staff { \time 2/4 c4 e | g g, | }
  \new Staff { \clef "bass" c,,4 c' | e c | }
>>
  }

This is, indeed, asking for problems...


I totally agree.
This kind of forgiveness from the LilyPond parser allows for
the ultimate bad practice of inextricably mixing typographical
information with musical information.

I fully understand and admit that the learning and notation
manual want to present self-contained examples (so that the
linked LilyPond code can readily compile), but I'm advocating
that readers should be made aware that it is only intended for
illustrating specific aspects of notation and that it should
not be done for any project for which maintainance is a concern.
[Some of the templates are complete counter-examples for this
aspect of best practices. The templates sections should probably
show an image of the intended output but link to "zip" file
containing the skeleton of a real project (possibly with a
"README" file).]

One should strive to separate editorial and musical information
to the utmost that LilyPond permits, not take advantage that
LilyPond allows for obfuscated code!


Best regards,
Gilles


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


Re: mutopia's shortcomings

2015-04-27 Thread Gilles

On Mon, 27 Apr 2015 16:15:21 +0200, Noeck wrote:

Dear Kieren,

With the edition-engraver, there is (a) no need to mix layout with 
contents


This seemed great; I looked for it in the documentation; and
did not find it...



I already wanted to submit a score to Mutopia using the edition
engraver. But I finally used ordinary tweaks because we were not sure
how future proof this is. This bings me to my questions:

1. How stable is the interface of the edition engraver?
   Will the commands to use it change?

2. Will it always be in the current place of OpenLilyLib?


Now, I understand why. :-{


3. Might it get integrated into the core of LilyPond?
   (Currently it is not guaranteed that OLL is available when Mutopia
   scores are compiled, so its usage is complicated)

Because it does not make sense to improve the maintainability of a 
large

set of scores by relying on a functionality that has to be adapted
manually in future and thus produces more manual interventions.


Indeed.

Best regards,
Gilles


To be clear, I like the edition engraver very much.




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


Re: lilypond teaching material

2015-09-16 Thread Gilles

Hello.

On Wed, 16 Sep 2015 11:49:04 +0200, BB wrote:

I just read

http://lilypond.org/doc/v2.18/Documentation/learning/entering-input.html
(again). I find that is a good basis for such an introduction,


IIRC, someone (among the most prominent current or past developers)
once stated that this first example being compilable by lilypond had
been a big mistake.

Perhaps it was meant to show people that text input is not scary.
But its simplicity is deceitful: no actual score is that simple; even
a monophonic instrument part should not be encoded that way.


but I
think it needs some beef up to become more entertaining than
lecturing. But I actually do not have an idea how to manage that? In
my opinion there are much more instructive examples and exercises for
reinforcement learning needed.


The strategy will probably depend on the target audience and purpose.

IMHO, the starting point should be a real score whose input contains
all the bits that most people would use in the majority of their
projects: score (and MIDI) blocks, header, systems, full score and
instrument parts.

A composer/publisher will not be scared that a work needs to have
some kind of organization/layout.

Some people will be afraid (i.e. won't be interested) by text input
whatever advantage list you will throw at them.
Those should be taught how to use a [FLOSS GUI] that depends on
LilyPond for its rendering.


Best regards,
Gilles


On 16.09.2015 11:24, Urs Liska wrote:


Am 16.09.2015 um 11:14 schrieb BB:

Obviously the Lilypond users are overaged?

I very much hope that our recent "inofficial survey" is biased for
whatever reasons. But I admit this impression is very strong.

Is there a kind of "curriculum", eventually with Open Office 
overhead
slides ready to use for an introductory training on an adult 
education

center (in Germany Volkshochschule (VHS)) available.
Not that I know of, but it's a good idea, and I've had the wish to 
start

compiling such material for quite a long time. Unfortunately that
probably won't happen without a concrete opportunity.


May be some
skilled users ma offer such an itroduction to raise lilyponds
popularity? Usually there are offered weekend workshops or courses
regular an evening per week for people in work. Eventually it might 
be

used in music education on schools?

Good idea.
I know that in some universities there are people offering LilyPond
courses, with mixed result/acceptance. But it definitely should be 
much
more, and I think people should get hooked to text based tools as 
early
as possible, before they are too much tied to their shiny 
clickediclick

tools.

Urs


Regards




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


Re: lilypond teaching material

2015-09-16 Thread Gilles

On Wed, 16 Sep 2015 13:04:24 +0200, David Kastrup wrote:

Gilles  writes:


Hello.

On Wed, 16 Sep 2015 11:49:04 +0200, BB wrote:

I just read


http://lilypond.org/doc/v2.18/Documentation/learning/entering-input.html
(again). I find that is a good basis for such an introduction,


IIRC, someone (among the most prominent current or past developers)
once stated that this first example being compilable by lilypond had
been a big mistake.


Well, I think it should specify a note duration for the first note.
Other than that, I find nothing wrong with it.


Perhaps it was meant to show people that text input is not scary.
But its simplicity is deceitful: no actual score is that simple; 
even

a monophonic instrument part should not be encoded that way.


Hacking down some melody tends to be rather similar to that.  Many 
tunes
in abc format look pretty much like that and transfer reasonably well 
to

LilyPond input of that complexity.


Would someone switch to lilypond just for this kind of work?

I did not to argue in that direction (lesser complex scores), but even 
so:

where is the title of the tune? ;-)

Gilles


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


Prall and trill in "articulate" script

2015-10-19 Thread Gilles

Hello.

It's the first time I use the "\articulate" command.
Very nice improvement on the plain MIDI rendering!

Two remarks:
1. "prall" is interpreted in a way that (IMO) better corresponds
   to "prallprall" (which itself is not implemented).
   [A comment in the code indicates that the "inverted mordent"
   option was not retained.]
2. A "trill" on a tied note only lasts as long as the first written
   note.  The problem is alleviated by using a trill span, but then
   the trill is stopped at the start of the last written note's
   duration.


Thanks,
Gilles



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


Re: Delayed posts

2015-11-17 Thread Gilles

On Mon, 16 Nov 2015 23:32:37 +0100, Simon Albrecht wrote:

On 15.11.2015 20:44, Simon Albrecht wrote:

Hello everybody,

The notorious delay with which many posts arrive on this list gets 
annoying… At times there is no problem, but these days it’s really 
bad. Is there anything we could do?


Or, _I_ could do, if it were a problem on my side?


Same problem here...

Best,
Gilles


~ Simon



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


Re: problem with the script extract music

2013-02-03 Thread Gilles

> I have a problem with the script extraxtMusic, which I have downloaded at  
http://gillesth.free.fr/Lilypond/extractMusic/extractMusic.ly
> I get the error message 
>  mmR = {
>  R1*100 \tag #'mmWarning R1 } 
> And a message, that a barcheck has failed.
> Has someone an idea how to make it work?
Sorry to answer so late.
This message occurs when you try to cut a multimeasureRest using 
\extractMusic, in the middle of the measure.
For example
music = R1*5
\extractMusic \music s1 s4 
will produce an error because the result is R4, and R4 doesn't fill a whole 
measure (in 4/4) . It is not a limitation or a bug of \extractMusic but the 
behaviour of Lilypond with multimeasureRests
So you have to cut them always at a beginning of a measure then add rests 
manually.


> global =  {
>   \globalA
>   \globalB
> }

> HornB = \relative {
>   \extractMusic \mmR \upToMeasure #12 { \upToMeasure #15 s8*5 }
>   d4. e4
>   R8*5
> }

The error is probably here, but you don't give us the \global definition, and 
as \upToMeasure uses \global in his implementation, i cannot help you further.

Gilles

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


Re: ties over several notes

2013-02-15 Thread Gilles
Le vendredi 15 février 2013 11:38:08 Kieren MacMillan a écrit :
> Hi Stefan,
> 
> > is there a way to connect several notes with ties with just one command?
> 
> I think the Completion_heads_engraver does this for you.
> http://lilypond.org/doc/v2.17/Documentation/internals/completion_005fheads_0

1-
If you have several times the same rhythms and ties, you can perhaps use the 
function \changePitch described here :
  http://lsr.dsi.unimi.it/LSR/Item?id=654
[ There is a doc here :
  http://gillesth.free.fr/Lilypond/changePitch/   ]

%
  patI = \samePitch { c8~ c4. ~ c2~ c8 }
  \relative {
  c4. 
  \cPI d 
  e
  }


2-
If you have several times the same number of ties but with different rhythms, 
you can use rather \copyArticulations
  snippet :  http://lsr.dsi.unimi.it/LSR/Item?id=769
  download link : http://gillesth.free.fr/Lilypond/copyArticulations/ 

%%
artiI  = { c~ c~ c~ c}
\relative {
   c4. \cAI { d8  d4.  |
   d2 d8 } e4. 
}

But perhaps this one is not very quicker, here.

-- 
Gilles

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


Re: Removing the start or the end of some music

2013-04-06 Thread Gilles



If no one objects, your functions are sufficiently concise that I
would suggest folding them directly into the extractMusic.ly file
which is linked from the snippet URL, if the original author agrees.


No problesm for me to add that, but you can notice that in the snippet
( http://lsr.dsi.unimi.it/LSR/Item?id=542 ), there is a link, pointed to  
the last version of "extractMusic.ly", and there is already some functions  
which already do the same things ( well there are called \extractBegin and  
\extractEnd).

There is even a small doc for these functions (and also for others).
Here is this link :
http://gillesth.free.fr/Lilypond/extractMusic/

--
Gilles

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


Re: Is it possible to adapt Numbers as easy note heads [0.07143] to solfege ( d r m f s l t)?

2013-04-29 Thread Gilles


I like to print solfege ( d r m f s l t) on to the note-head.  The  
following snippet print numbers onto the note-head. Is it possible to  
adapt the following snippet to print solfege onto the note-head?


I don't know if it is want you want :
(and thanks to Frescobaldi to the automatic indentation ...)

%
#(define EzSolfegeEngraver#(define EzSolfegeEngraver
   (list
(cons 'acknowledgers
  (list
   (cons 'note-head-interface
 (lambda (engraver grob source-engraver)
   (let* ((context (ly:translator-context engraver))
  (tonic-pitch (ly:context-property context 'tonic))
  (tonic-name (ly:pitch-notename tonic-pitch))
  (delta (- 7 tonic-name))
  (solfege-base (circular-list "S" "O" "L" "F" "E" "G"  
"E"))

  (solfege (take (drop solfege-base delta) 7))
  (note-names (apply vector solfege)))
 ; (display solfege)(newline)
 (ly:grob-set-property! grob 'note-names
   note-names
EzNum = {
  \easyHeadsOn
  \override Staff.StaffSymbol #'staff-space = #1.5 %1.4
  \override Staff.StaffSymbol #'line-thickness = #1.5 %1.4
  \override Staff.NoteHead #'font-size = #+3.2 %=3.0
  \override Staff.Clef #'font-size = #+1.35 %1.25
  \override Staff.TimeSignature #'font-size = #+1.35 %1.25
  \override Staff.Accidental #'font-size = #+1.35 %1.25
  \override Voice.NoteHead #'font-size = #-5.25 %-5.0
}

global = {  \key c\major \time 4/4 }
mux = \relative c' { \global \EzNum
 c4 d e f g a b4 r
 \key f\major
 f g a bes c d e r
 \key g\major
 g, a b c d e fis r
}
\score {
  \new Staff { \mux}
  \layout {
    \context {
  \Voice
  \consists \EzSolfegeEngraver
}
  }
}
%%






--
Gilles

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


Re: Is it possible to adapt Numbers as easy note heads [0.07143] to solfege ( d r m f s l t)?

2013-04-29 Thread Gilles



#(define EzSolfegeEngraver#(define EzSolfegeEngraver



Oh sorry a copy-paste error.

%
#(define EzSolfegeEngraver
   (list
(cons 'acknowledgers
  (list
   (cons 'note-head-interface
 (lambda (engraver grob source-engraver)
   (let* ((context (ly:translator-context engraver))
  (tonic-pitch (ly:context-property context 'tonic))
  (tonic-name (ly:pitch-notename tonic-pitch))
  (delta (- 7 tonic-name))
  (solfege-base (circular-list "S" "O" "L" "F" "E" "G"  
"E"))

  (solfege (take (drop solfege-base delta) 7))
  (note-names (apply vector solfege)))
 ; (display solfege)(newline)
 (ly:grob-set-property! grob 'note-names
   note-names
EzNum = {
  \easyHeadsOn
  \override Staff.StaffSymbol #'staff-space = #1.5 %1.4
  \override Staff.StaffSymbol #'line-thickness = #1.5 %1.4
  \override Staff.NoteHead #'font-size = #+3.2 %=3.0
  \override Staff.Clef #'font-size = #+1.35 %1.25
  \override Staff.TimeSignature #'font-size = #+1.35 %1.25
  \override Staff.Accidental #'font-size = #+1.35 %1.25
  \override Voice.NoteHead #'font-size = #-5.25 %-5.0
}

global = {  \key c\major \time 4/4 }
mux = \relative c' { \global \EzNum
 c4 d e f g a b4 r
 \key f\major
 f g a bes c d e r
 \key g\major
 g, a b c d e fis r
}

\score {
  \new Staff { \mux}
  \layout {
    \context {
  \Voice
  \consists \EzSolfegeEngraver
}
  }
}

%%

--
Gilles

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


Re: Sub-music

2011-06-19 Thread Gilles



http://lsr.dsi.unimi.it/LSR/Search?q=extract



To get the last version and get documentations about the function
extractMusic, please follow this link :
http://lsr.dsi.unimi.it/LSR/Item?u=1&id=764

[This snippet is still not approved]

Gilles


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


Re: Sub-music

2011-06-19 Thread Gilles




To get the last version and get documentations about the function
extractMusic, please follow this link :
http://lsr.dsi.unimi.it/LSR/Item?u=1&id=764

[This snippet is still not approved]

Gilles



Could you summarise the difference from the previous version for me,  
please?




If you just click on the image of the old and new snippet, you'll see the  
same code, but in the LSR 764, there is a link to a directory where you  
can download the last version.

( http://gillesth.free.fr/Lilypond/extractMusic/ )
A lot of features have been added, and they are all shortly explained in a  
doc.

( http://gillesth.free.fr/Lilypond/extractMusic/extractMusic-doc.pdf ).

Gilles

NB
Well, let me know is something is not clear in the doc, or if some  
sentences are not correct (my english is not as good i would wish).



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


Re: Sub-music

2011-06-20 Thread Gilles


I've put those updates into the old snippet  
(http://lsr.dsi.unimi.it/LSR/Item?id=542).  If you're happy with that,  
the new one can be deleted, I think.


That's perfect, thank you.
New snippet (764) deleted.

Gilles


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


Re: Function to limit range down?

2011-07-21 Thread Gilles
I am transposing some arpeggio exercises and need to make sure notes do  
not

go below e, on the bass clef.



Here (see joined file) is a set of 3 functions which can be useful for  
that purpose.

  \correctOctave
  \correctOctaveRange
  \colorizeOutOfRange

See comments in code source for an explanation of each of them.

Gilles

check-pitch.ly
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Function to limit range down?

2011-07-21 Thread Gilles



Maybe you already planned to, but please add such functions to the LSR.
They will be for sure useful to other people!


http://lsr.dsi.unimi.it/LSR/Item?u=1&id=773

Gilles


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


Re: Arpeggios from chordmode?

2011-08-01 Thread Gilles



Is there as simple way to get chord mode to return:

c4 e g

instead of

4



Is something like that what you wanted ?


#(use-modules (ice-9 receive))
%% see http://www.gnu.org/software/guile/manual/guile.html#Multiple-Values

#(define (chords-list->seq-list lst)
(receive (notes others)
 (partition (lambda(x) (ly:duration? (ly:music-property x
'duration)))
lst)
 (map (lambda(x)
(let ((elts (list x)))
  (if (pair? others)(begin
 (set! elts (append elts others))
 (set! others '(
  (make-music 'EventChord 'elements elts)))
   notes)))

chordsToSeq = #(define-music-function (parser location music)(ly:music?)
(music-map
(lambda (x)
  (if (eq? 'EventChord (ly:music-property x 'name))
(make-music 'SequentialMusic 'elements
(chords-list->seq-list (ly:music-property x 'elements)))
x))
music))


music = \chordmode {d4:min7\f g:7 c:maj7}

\new Voice \chordsToSeq \music
%%

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


Re: Lilypond with the Command Line

2011-08-02 Thread Gilles
Le Mon, 01 Aug 2011 21:39:16 +0200, Graham Percival  
 a écrit:



Could you pass a

command on the command line and tell Lilypond to process the source file
and change it to a bass clef instead? without changing the source file
permanently? Could this be done using the Scheme evaluate function?


Yes.  Use \tag, and look on LSR for more information.  There's 1
or 2 examples of this there.



I have tested nevertheless this file on the command line (according to the  
doc):


 *
the file "test1" :

#(use-modules (guile-user))  %% make a warning !!!  bug ?

clefSol = \clef treble
clefBass = \clef bass

%% #(define original-clef? #t)
#(define myclef (if (and (defined? 'original-clef?) original-clef?)
   clefBass
   clefSol))

music = { \myclef c'1 }

{ \music }
%%%
The command line that works in Windows is this :

   lilypond -e "(define-public original-clef? #t)" test1.ly

 *

Some comments :
1-In the doc, they say to put the scheme expression inside apostrophe
  lilypond -e '(define-public original-clef? #t)' test1.ly
but this fails. (The apostrophes have perhaps other meanings in Windows).

2- The line #(use-modules (guile-user)) makes the warning :
WARNING: #f: imported module (guile-user) overrides core binding  
`%module-public-interface'


3- "define" instead of "define-public" seems to work too :

lilypond -e "(define original-clef? #t)" test1.ly


Gilles





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


Re: Arpeggios from chordmode?

2011-08-03 Thread Gilles
Le Wed, 03 Aug 2011 05:10:11 +0200, Basso Ridiculoso  
 a écrit:




See enclosed file for example (requires Giles code below as an \include)


Just 2 comments.
1-You can use in your example \shiftDurations (well not a lot documented).  
It will divise all whole notes by 4

Your code becomes :

%%
JazzBluesChords =  {
\chordmode {
c1:7   | %1
f1:7   | %2
c1:7   | %3

g2:min7  c2:7   | %4

f1:7   | %5
f1:min7   | %6
e1:min7   | %7
a1:7  | %8
d1:min7 | %9
g1:7   | %10
c1:7   | %11

d2:min7  g2:7   | %12
\bar ":|"

}
}
JazzBluesProgression =  \shiftDurations #2 #0 \JazzBluesChords



2- It still remains problems if a chord has 3 or 5 notes !
Well if you think it can be useful for people, i can try later to find a  
way to fix that.


Gilles



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


Re: substitution for numerator

2011-09-20 Thread Gilles



music = \relative c' {
 \times 2/3 {c8 d e } \times 4/5 {c16 a g f e }
}
slurs = {
 \tripletquintupletslur #2 #5 % the slur lasts 2 triplet and 5
quintuplet notes
}
\new Staff { \context Voice << { \music} {\slurs }>>}
 %%


You can attach slur to invisible rests and "melt" them together later:



You can also try this snippet

http://lsr.dsi.unimi.it/LSR/Item?id=769


%%

\include "copyArticulations.ly"

music = \relative c' {
  \times 2/3 {c8 d e } \times 4/5 {c16 a g f e } g2
}

pattern = { c c( c c c c c) c }


\copyArticulations \pattern \music

%%

Gilles

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


Re: no braces or brackets (quitar paréntesis)

2011-10-31 Thread Gilles


I get   { { f' f' f' f' } { bflat' bflat' bflat' bflat' } { f' f' f' f'  
} }
and I would like to get  {  f' f' f' f'  bflat' bflat' bflat'  
bflat'  f'

f' f' f'  }


1-
You can try the following function :


#(define (clean-music mus)
"Try to reduce the number of sequential musics"
(let ((name (ly:music-property mus 'name)))
  (cond
((eq? name 'SequentialMusic)
   (ly:music-set-property! mus 'elements (fold-right
  (lambda (evt prev-list)
(if (eq? (ly:music-property evt 'name) 'SequentialMusic)
  (append (ly:music-property (clean-music evt) 'elements)  
prev-list)

  (cons (clean-music evt) prev-list)))
  '()
  (ly:music-property mus 'elements
((eq? name 'SimultaneousMusic)
   (ly:music-set-property! mus 'elements
(map clean-music (ly:music-property mus 'elements
((memq name (list 'RelativeOctaveMusic 'UnrelativableMusic))
 (ly:music-set-property! mus 'element (clean-music
  (ly:music-property mus 'element)
 mus))  


you just have to modify your \chuchu function like that :


chuchu = #(define-music-function (parser location music)(ly:music?)
(clean-music
   (music-map
(lambda (x)
  (if (eq? 'EventChord (ly:music-property x 'name))
   (toma x)
x))
music)))



2-
However, i don't know exactly what your are trying to achieve, but perhaps  
you will be interested by this thread :


http://lists.gnu.org/archive/html/lilypond-user/2011-08/msg2.html

I have joined the latest version of chordsToSeq.ly

Gilles








chordsToSeq.ly
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Improving snippet 326

2011-12-19 Thread Gilles

As i found the snippet :
http://lsr.dsi.unimi.it/LSR/Item?id=326
beautiful and useful, i have a little proposition to improve it.

With the current snippet, you have to do 2 versions: a layout version and  
a midi version (using \tag).

By using this little function below  (inspired from :
http://lsr.dsi.unimi.it/LSR/Item?id=694 ), only one version would be  
necessary.


%%%
\version "2.14.2"

changeNotesPos =
#(define-music-function (parser location amount music) (integer? ly:music?)
"Change the display of notes by adding `amount in their staff line  
position."

#{
   \set staffLineLayoutFunction =
#(lambda (x) (+ (ly:pitch-steps x) $amount))
   $music
   \unset staffLineLayoutFunction
#})

%% test 
music = \relative { c d ees f}
\new Staff \music
\new Staff \changeNotesPos #2 \music


I have joined a version of all the original snippet, just using the above  
function instead.
I have no ways to know who wrote this useful snippet, but perhaps that the  
author will think as me, that it would be an improvement for the users.


Gilles

snippet326.ly
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: articulation over several notes

2012-01-01 Thread Gilles

Le Sun, 01 Jan 2012 05:53:45 +0100, me  a écrit:C


Is there a way to specify articulation over several notes. Eg., relative c' {
c d e f | g a b c }. I would like to make the first four notes staccato and
the second 4 marcato. Just, clarifying, I understand that I can do c\staccato d\staccato etc.  Can I do something like (c d e f)\staccato ?http://lsr.dsi.unimi.it/LSR/Item?id=769\copyArticulations c->  \relative c' { c d e f | g a b c } Gilles___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Suppressing left-hand piano dynamics

2012-01-15 Thread Gilles

However, I have been unable to suppress dynamics from the left hand in
the piano accompaniment.


Well, i can not exactly explain why, but apparently the good manner to do  
is


%% good
   \partcombine
 \new Voice  \with { \remove "New_dynamic_engraver" }
{ \bassOne \bar "|."}
 \new Voice  \with { \remove "New_dynamic_engraver" }
{ \bassTwo \bar "|." }


and not

 bad
 \new Voice  \with { \remove "New_dynamic_engraver" }
\partcombine { \bassOne \bar "|."}  { \bassTwo \bar "|." }


Gilles

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


Re: synchronizing other parts w/cadenza

2012-01-20 Thread Gilles



But I was annoyed by having two functions with very similiar code.
It is possible with ly:music-compress , to make a function that fit all  
kind of music

NB
I have tested this snippet only with 2.14 but it should work with 2.15

%
\layout {
  \context {
\Staff
\remove "Time_signature_engraver"
  }
}

cadenzaToMusic =
#(define-music-function (parser location cadenzaMusic music)
  (ly:music? ly:music?)
"Adjust the length of `music and the measureLength, to fit the length of
`cadenzaMusic"
(let* ((clen (ly:music-length cadenzaMusic))
   (mlen (ly:music-length music))
   (factor (ly:moment-div clen mlen))
   (compressed (ly:music-compress music factor)))
  ;; (format #t "factor : ~a\n" factor)
  #{
\set Timing.measureLength = $clen
$compressed
\unset Timing.measureLength
  #}))

cadenzaText = \markup \box "cadenza!"
cnotes = \relative c'' {  c8[ d e f g]  }
snotes = \cadenzaToMusic \cnotes s1_\cadenzaText
mnotes = \cadenzaToMusic \cnotes R1^\fermataMarkup_\cadenzaText
nnotes = \cadenzaToMusic \cnotes \relative c''
{ c2^\fermata _\cadenzaText d^\fermata }

\score {
  <<
\new Staff \cnotes
\new Staff \mnotes
\new Staff \snotes
\new Staff \nnotes
  >>
}
%%<>___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: \makeOctaves broken?

2012-04-19 Thread Gilles



David Kastrup did a quick fix a few months
back:http://lists.gnu.org/archive/html/lilypond-user/2012-03/msg00114.html

I just tried it and it had a few problems:
- it didn't work within a relative section. It only worked within
relative sections before.
- Slurs and dynamics attached to single notes are lost during the
conversion to chords.

Below fixes the relative problem, but I haven't spent enough time on
it to figure out the second problem.


Slurs and dynamics for single note are now wrapped in the 'articulations
property.
So we have to extract those events to copy them to the 'elements property
of the event-chord.
I think that the receive scheme function is the simpler way to do that.
( http://www.gnu.org/software/guile/manual/guile.html#Multiple-Values )

%%%
\version "2.15.35"
#(use-modules (ice-9 receive)) %% for the use of receive
#(define (with-octave-up m octave)
(let* ((old-pitch (ly:music-property m 'pitch))
   (new-note (ly:music-deep-copy m))
   (new-pitch (ly:make-pitch
(- octave 1)
(ly:pitch-notename old-pitch)
(ly:pitch-alteration old-pitch
  (set! (ly:music-property new-note 'pitch) new-pitch)
  (list m new-note)))

#(define (octavize music t)
(map-some-music
  (lambda (m)
(cond ((music-is-of-type? m 'event-chord)
   (set!
 (ly:music-property m 'elements)
 (append-map!
   (lambda (n)
 (if (music-is-of-type? n 'note-event)
   (with-octave-up n t)
   (list n)))
   (ly:music-property m 'elements)))
   m)
  ((music-is-of-type? m 'note-event)
(receive (note-arti chord-arti)
  (partition
; separates arti for NoteEvent from arti for EventChord
   (lambda (evt)(memq (ly:music-property evt 'name)
(list 'StringNumberEvent 'StrokeFingerEvent
'FingeringEvent)))
   (ly:music-property m 'articulations))
  (ly:music-set-property! m 'articulations note-arti)
   (make-event-chord (append
(with-octave-up m t) chord-arti
  (else #f)))
  music))

makeOctaves = #(define-music-function (parser location arg mus)
(integer? ly:music?)
   (octavize mus arg))

\relative c'
{
\time 3/8
\key gis \minor
\makeOctaves #1  { dis8(\f e dis')~ dis8.( cis16 b8 }
\makeOctaves #-1 { ais' gis dis) cis( dis )\p }
}

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


Re: controlling footnote separator line

2012-04-20 Thread Gilles


Unfortunately I didn't find the property that controls the line  
separating the footnote. from the score.

Is this possible?
is it documented (and I am blind)?
or is this impossible?


Well not easy to find.
In paper-defaults-init.ly, you have some variable controlling Footnotes.
By default, the settings are

\paper {
  footnote-separator-markup = \markup \fill-line { \override  
#'(span-factor . 1/2) \draw-hline }

  footnote-padding = 0.5\mm
  footnote-footer-padding = 0.5\mm
  footnote-number-raise = 0.5\mm
  footnote-numbering-function = #numbered-footnotes
  reset-footnotes-on-new-page = ##t
}

If you set :
footnote-separator-markup = \markup \null
it will do the trick.

Gilles

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


Re: multiple tags

2012-04-23 Thread Gilles



Is is possible to have simultaneous multiple tags?

What makes you think that?


As i had difficulties managing multiple tags, i have made for me some
little functions to simplify it.
With the joined file, your code would become, with the \keepWithTags :
%%
\include "tagUtil.ly"

control = {
  s1*2
  \tag #'threes { \time 3/4 s2. }
  \tag #'twos { \time 2/4 s2 } }
tset = \relative c' {
  c4 d e f
  \tag #'up {g4 a b c }
  \tag #'down { g4 f e d }
  \tag #'threes { g4 f e }
  \tag #'twos { g2 } }

\score {
  \new Staff <<
  \keepWithTag #'threes \control
  \keepWithTags #'(up threes) \tset
  >> }
\score {
  \new Staff <<
  \keepWithTag #'twos \control
  \keepWithTags #'(down twos) \tset
  >> }


You can see some examples in the file.

Gilles

tagUtil.ly
Description: Binary data
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user


Re: lilypond-user Digest, Vol 113, Issue 99

2012-04-30 Thread Gilles
Can I just print the multiple of fifth's (or 10's) only - the in between  
nar number should be blank?



%%
\version "2.15.37"
%%% solution 1
\relative c'' {
  \override Score.BarNumber #'break-visibility = #'#(#f #t #t)
  \override Score.BarNumber #'stencil =
#(lambda (grob)
  (let* ((stil (ly:text-interface::print grob))
 (text (ly:grob-property grob 'text))
 (nmbr (string->number (markup->string text
(if (= (remainder nmbr 5) 0)
   (ly:grob-set-property! grob 'color red)
   (ly:grob-suicide! grob))
stil))

  \repeat unfold 41 { c1 }
}
%%% solution 2 % easier
\relative c'' {
  \override Score.BarNumber #'break-visibility = #'#(#f #t #t)
  \set Score.barNumberVisibility = #(every-nth-bar-number-visible 5)
  \override Score.BarNumber #'color = #red

  \repeat unfold 41 { c1 }
}


Gilles

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


Re: LSR snippet "Controlling of the pitch range in a score" broken at 2.15.40

2012-07-09 Thread Gilles


The LSR snippet "Controlling of the pitch range in a score" contains the  
code for a function, colorizeOutOfRange.  This function works at 2.14.2,  
but doesn't at 2.15.40.


Well, i waited for the release of Lilypond 2.16, to annonce some snippets
updates, but it seems that it's time to do that a few days before.
So here are links, to have the snippets below, worked with Lilypond 2.15.41
(and higher i hope):

**

http://lsr.dsi.unimi.it/LSR/Item?id=773 : "Controlling of the pitch range
in a score"
=> http://gillesth.free.fr/Lilypond/check-pitch/


http://lsr.dsi.unimi.it/LSR/Item?id=654 : "A function to repeatedly print
a given pattern with different notes"
=> http://gillesth.free.fr/Lilypond/changePitch/
(small doc included)


http://lsr.dsi.unimi.it/LSR/Item?u=1&id=761 : "Adding notes to the notes
of a melody"
http://lsr.dsi.unimi.it/LSR/Item?u=1&id=545 : "Extracting notes inside
chords into separate staves"
=> http://gillesth.free.fr/Lilypond/chord/


http://lsr.dsi.unimi.it/LSR/Item?u=1&id=769 : "Adding articulations from a
template"
=> http://gillesth.free.fr/Lilypond/copyArticulations/


http://lsr.dsi.unimi.it/LSR/Item?id=542 : "Extracting unmodified fragments
of a music expression"
=> http://gillesth.free.fr/Lilypond/extractMusic/
(small doc included)


This one is not a snippet but a temporary solution for :
http://code.google.com/p/lilypond/issues/detail?id=824
=> http://gillesth.free.fr/Lilypond/addAt/


*

Gilles

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


Re: Brazen feature request

2012-08-02 Thread Gilles



The request is for six commands (NOT markups, but actual music commands
that affect the MIDI output and so on):
\segno
\fine
\tocoda
\coda
\dacapo
\dalsegno


Using the functions described here :
http://lsr.dsi.unimi.it/LSR/Item?id=542
i think you will be able quickly to achieve your goal without all this
commands.

%%
\include "extractMusic.ly"

global = {
s1*2
\bar "||"
\mark \markup { \musicglyph #"scripts.segno" }
s1*2
\mark \markup { \musicglyph #"scripts.coda" }
s1*2
\bar "||"
\once \override Score.RehearsalMark #'break-visibility = #'#(#t #t #f)
\mark \markup { \musicglyph #"scripts.segno" }
\break
s1*2^\markup{ \general-align #Y #CENTER {
\musicglyph #"scripts.coda" "CODA"}}
\bar "|."
}

segnoToMidi = #(define-music-function (parser location music) (ly:music?)
#{
  \extractBegin $music \upToMeasure #3
  \extractMusic $music \upToMeasure #3 \upToMeasure #7
  \extractMusic $music \upToMeasure #3 \upToMeasure #5
  \extractEnd $music \upToMeasure #7
#})

music = \relative {
c1 c
c2 d e e
  f4 e f fis g1
  d c
}

%%

\markup "Score output"
\score {
\new Staff  << \global \music >>
\layout { }
}

\markup "Midi output"
\score {
\new Staff \segnoToMidi \music
\layout { } % to comment, to have only midi
\midi { }
}

%%

The can download  extractMusic.ly for lilypond 2.15 here :
http://gillesth.free.fr/Lilypond/extractMusic/
For lilypond 2.14, choose in this directory :
extractMusic2.14.ly
You will also find in it, a small doc :
   extractMusic-doc.pdf   (well probably in bad english, sorry).

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


Re: smart rhythmic notation, can it be done?

2012-08-23 Thread Gilles



is it possible to get an automatism for smart rhythmic notation.

You can use patterns
http://lsr.dsi.unimi.it/LSR/Item?id=654
but perhaps it is not what you wished


\include "extractMusic.ly"
% the following would be fastly written, bad looks bad:
   Music= \relative c'' { c16 b8 a g f e d16\bar"||" }
% the following looks good, but would be more work to do
   smartlynotatedMusic = \relative c'' { c16 b8 a16 ~ a g8 f16 ~ f e8 d16
\bar"||" }
% the following needs to prepare a pattern only once.
   patI = { c8 \samePitch { c16 ~ c}}
   patMusic = \relative c''{ c16 \cPI { b a g f e } d16 }

\score {
   \new Staff {
   \time 3/4
   \Music
   \break
   \smartlynotatedMusic
   \break
   \patMusic

   } }


Gilles

NB
For version 2.14 :
http://gillesth.free.fr/Lilypond/extractMusic/extractMusic2.14.ly
For 2.15 :
http://gillesth.free.fr/Lilypond/extractMusic/extractMusic.ly
Doc :
http://gillesth.free.fr/Lilypond/extractMusic/extractMusic-doc.pdf

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


Re: smart rhythmic notation, can it be done?

2012-08-23 Thread Gilles



is it possible to get an automatism for smart rhythmic notation.

You can use patterns
http://lsr.dsi.unimi.it/LSR/Item?id=654
but perhaps it is not what you wished


Oups ! I should forbid me to answer a question after midnight ...
Here is the good snippet ...


\include "changePitch.ly"
\version "2.14.1"
% the following would be fastly written, bad looks bad:
   Music= \relative c'' { c16 b8 a g f e d16\bar"||" }
% the following looks good, but would be more work to do
   smartlynotatedMusic = \relative c'' { c16 b8 a16 ~ a g8 f16 ~ f e8 d16
\bar"||" }
% the following needs to prepare a pattern
   patI = {  c8 \samePitch { c16 ~ c}}
   patMusic = \relative c''{ c16 \cPI { b a g f e } d16 \bar"||" }

\score {
   \new Staff {
   \time 3/4
   \Music
   \break
   \smartlynotatedMusic
   \break
   \patMusic

   } }
   

and the good links

For version 2.14 :
http://gillesth.free.fr/Lilypond/changePitch/changePitch2.14.ly
For 2.15 :
http://gillesth.free.fr/Lilypond/changePitch/changePitch.ly
Doc :
http://gillesth.free.fr/Lilypond/changePitch/changePitch-doc.pdf

Sorry..
Gilles

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


Re: how to update this snippet to 2.16.

2012-08-25 Thread Gilles
Le Sat, 25 Aug 2012 14:50:01 +0200, Stefan Thomas  
 a écrit:



Dear community,
it seems, that the following snippet does not work anymore in 2.16.
http://lsr.dsi.unimi.it/LSR/Snippet?id=346
I use it quite frequently. How can I update it?


You can for example in line 61 :
((,trans-rec pitches) (ly:music-deep-copy ,pattern)))
just change the word pitches, by (map event-chord-wrap! pitches)

((,trans-rec (map event-chord-wrap! pitches))
 (ly:music-deep-copy ,pattern)))

It works for me.
However i don't pretend i understand all the snippet.

Gilles

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


Re: how to update the makerhythm-snippet

2012-08-26 Thread Gilles




Dear community,
I wanted to update this snippet:
http://lsr.dsi.unimi.it/LSR/Snippet?id=390
But without sucess. Any ideas how this can be done?


The snipped 390 has to be considered as deprecated because the snippet
http://lsr.dsi.unimi.it/LSR/Item?id=654
does the same thing but is more powerful (it accepts for example
articulations).
So I would not mind to delete it, but if people do want to use it, we can,  
as

usual now, use the Scheme function event-chord-wrap!
(see http://lilypond.org/doc/v2.16/Documentation/changes/index.html ).

So the line 76 (in the end of the makeRhythm function) :
  m)))
would become :
  (event-chord-wrap! m

Gilles

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


Re: how to update the makerhythm-snippet

2012-08-26 Thread Gilles



it really serves no purpose to use it [event-chord-wrap!] in snippets

So i propose to delete this snippet 390 because it is no more useful.

Gilles

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


Re: how to update the makerhythm-snippet

2012-08-28 Thread Gilles




I think only an LSR editor (like me) can do this.  You want me to go  
ahead and delete it?




Yes, please.

Gilles

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


Re: how to update the makerhythm-snippet

2012-08-29 Thread Gilles


I think only an LSR editor (like me) can do this.  You want me to go  
ahead and delete it [snippet 390]?

Yes, please.

Done.



Thanks Phil.
Just a last thing that i cannot do myself :-(
As the snippet 654 refers to snippet 390, is it possible to replace, in
654, the sentence :
  "This snippet describes a function \changePitch which is an extension
   of snippet 390 ..."
by something like that (feel free to reword) :
  "This snippet describes a function \changePitch, to
repeatedly print a given rhythm with different notes. Its syntax is ..." ?

--
Gilles

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


Re: problem with addTenuto

2012-08-31 Thread Gilles

addTenuto = #(define-music-function (parser location x) (ly:music?)
 #{
 \copyArticulations {c--} $x
  #})
The below quoted snippet shows that it works fine, every note gets it's
tenuto sign, rests are left without, but: I still searching for a
possiblity to let the second of two tied-notes without a tenuto. Has  
anyone


I have added a function \skipTiedNotes as a separate one, because i am not  
absolutely sure that it must be the default behavior.

So your function becomes :

%

addTenuto = #(define-music-function (parser location x) (ly:music?)
 #{
 \copyArticulations {c--} \skipTiedNotes $x
 #})

 \addTenuto \relative { c4 d e f g1 ~ g4 f e d r4 c d 2 }

%

As i am a good guy, i also change the line :
  skipArti = \tag #skipCurrentArticulation s1*0
by
  skipArti = \tag #skipCurrentArticulation <>

I have uploaded the new file here :
http://gillesth.free.fr/Lilypond/copyArticulations/copyArticulations.ly

--
Gilles

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


Re: problem with addTenuto

2012-09-02 Thread Gilles

Le Sun, 02 Sep 2012 14:25:07 +0200, Stefan Thomas
 a écrit:


Dear community,
for those who are interested:
I've found a solution for my problem. I've found it in the older version  
of

copyarticulations.ly


It is not the older one. It is the newest. :-)
I think you missed my message.
http://lists.gnu.org/archive/html/lilypond-user/2012-08/msg00789.html

It has been made Sat, 01 Sep 2012 02:26.

In the first line of copyArticulations.ly, you can read :
%% version 01/09/2012 11:07 : lilypond 2.16 or higher
%% LSR = http://lsr.dsi.unimi.it/LSR/Item?u=1&id=769

Of course, the date format used here is : day/month/year.
(I really don't like the format : month/day/year). Perhaps i should use
the format : year/month/day, because the format : year/day/month doesn't
exist (well i think).

--
Gilles

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


Re: Possible feature request for 'q' shorthand or tie syntax

2012-09-20 Thread Gilles
Le Thu, 20 Sep 2012 12:46:14 +0200, Stefan Thomas  
 a écrit:



\include "changepitch.ly"
 AV = { c8 c4 }
 av = #(define-music-function (parser location x) (ly:music?)
 #{
 \context Voice << { \changePitch \AV { $x $x } } { s8 ~ s8 } >>
 #})
 \new Staff \relative c' {
 c4. \av es f4 fis4 \av fis g4
 }


In changePitch.ly, there is a special function called \samePitch which can  
be used for ties

[ It is shortly described in chapter 6 and 7 of changePitch-doc.pdf at
  http://gillesth.free.fr/Lilypond/changePitch/   ]

%
\include "changePitch.ly"

av = #(define-music-function (parser location x) (ly:music?)
 #{
  \changePitch \samePitch { c8 ~ c4 } $x
 #})

\new Staff \relative c' {
   c4. \av es f4
   fis4. \av fis g4
}
%
This example should work with any number of ties, but of course, will  
produce music with the rhythm you set as pattern.


--
Gilles

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


Re: Possible feature request for 'q' shorthand or tie syntax

2012-09-20 Thread Gilles



av = #(define-music-function (parser location x) (ly:music?)
  #{
   \changePitch \samePitch { c8 ~ c4 } $x
  #})


But of course, for this example, this will work without any added file :-)

av = #(define-music-function (parser location x) (ly:pitch?)
 #{
   $x 8 ~ $x 4
 #})

\new Staff \relative c' {
   c4. \av es f4
   fis4. \av fis g4
}


--
Gilles

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


Re: Possible feature request for 'q' shorthand or tie syntax

2012-09-20 Thread Gilles



But of course, for this example, this will work without any added file
av = #(define-music-function (parser location x) (ly:pitch?)
  #{
$x 8 ~ $x 4
  #})


... but it will fail with chords
[ ly:pitch? return false of course, for  ]

\new Staff \relative c' {
   c4. \av  f4  % error
   }


Well ... stop of experimentations for me, for this evening.

--
Gilles

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


Re: Possible feature request for 'q' shorthand or tie syntax

2012-09-21 Thread Gilles



You noticed yourself that this does not work well with chords, but it
also does not play overly well with \relative if you write \av c' for
example.


In the \samePitch function, i try to play with the property
'to-relative-callback. It seems to work also here but of course, it is
heavier -:(  (see below )
For chords, is it conceivable to imagine a ly:pitches? function, (so for
chords), that would be compatible in #{ #}, in the same way ly:pitch? is.
And even, an ly:pitch?-or-ly:pitches? function for notes and chords ?
(well, probably with better names ...)

--
Gilles



%%
#(define (set-rel-callback tied-music)
"set all pitches to the pitch of the first note, in relative mode."
(let((not-first? #f))
(map-some-music
  (lambda (x)
(case (ly:music-property x 'name)
  ((or NoteEvent EventChord)
 (if not-first?
   (ly:music-set-property! x 'to-relative-callback
  (lambda (x p) ; set pitch to the prev value
  (ly:prob-set-property! x 'pitch p)
  p)))
   (set! not-first? x)
 x)
  (else #f)))
  tied-music)))


av = #(define-music-function (parser location x) (ly:pitch?)
(set-rel-callback
#{
  $x 8 ~  $x 4
#}))

   \new Staff \relative c' {
  c4. \av c' f4
  fis4. \av fis, g4
   }
%

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


Re: rhythm fragments in different pitches

2012-09-22 Thread Gilles


I am trying to code a piece with voices that use the same rhythmical  
fragment over and over again. [..]


Perhaps this one :
http://lsr.dsi.unimi.it/LSR/Item?id=654
But LSR gives also other answers with the keyword : rhythm
http://lsr.dsi.unimi.it/LSR/Search?q=rhythm

--
Gilles

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


Re: rhythm fragments in different pitches

2012-09-22 Thread Gilles
Le Sat, 22 Sep 2012 14:44:19 +0200, Gilles  a  
écrit:




I am trying to code a piece with voices that use the same rhythmical  
fragment over and over again. [..]


Perhaps this one :
http://lsr.dsi.unimi.it/LSR/Item?id=654


Oh to bad. When i send my message, i had no answers from anybody to the  
initial message... Sorry


I answer to all messages at one time :
  > I get a whole set of errors
At the end of the snippet, there is a link "here", to download the *last*  
version of the snippet. Old versions don't work with Lilypond 2.16.

Well, i must admit that i didn't test \changePitch with 2.17

  > applyRhythm = #(define-music-function [...]
The code given by David is an example for all of conciseness, but has some  
limitations

  1- Doesn't work with chords
melody = \relative c { a  g f e b} % error
  2- All articulations in melody will be ignored
melody = \relative c { a\p d-> g( f e) b} will gave the same  
result than

melody = \relative c { a d g f e b}
  3- You cannot have rests in the patterns
so you cannot have a pattern like :
    rhythm = { c8 r8 r8. c16 }


--
Gilles

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


Re: rhythm fragments in different pitches

2012-09-22 Thread Gilles


Every code has limitations.

Oh yes, of course. My message was just an information/advertisement for
users looking for a rhythm pattern function.
In a more general way, i really thank you, David, to post all these pieces
of code, because it is very instructive for people trying to learn scheme.
In your last code for example, i learn a util use of the circular-list
that i could not imagine, and well, probably i will have to reconsider
some pieces of my code ...

--
Gilles

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


Re: Trying to set global staff size on the commandline using -e option

2012-09-30 Thread Gilles



My command I am trying to run is

lilypond -e '#(set-global-staff-size 32)' --pdf myfile.ly


Hello James
I had a similar problem in the past
http://lists.gnu.org/archive/html/lilypond-user/2011-08/msg7.html
To run successfully your file, i have changed a bit your code and your  
command line.

(Don't ask me why your code didn't work)

--snip--
  \version "2.16.0"
  #(use-modules (guile-user))
  #(if (defined? 'mysize) (set-global-staff-size mysize))
  % #(if (defined? 'mysize) (format #t "mysize : ~a\n" mysize ))
  { a b c d }
--snip--

-- command line --
lilypond -e "(define mysize 30)" --pdf myfile.ly
--

If you are not in Windows, perhaps you'll have to change "" by '
#(use-modules (guile-user)) gives error messages also for me


--
Gilles

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


Re: pitch name transpose into numeric per key signature

2012-10-29 Thread Gilles
Le Sun, 28 Oct 2012 23:16:34 +0100, MING TSANG  a  
écrit:



(let* ...
 (scalestep (modulo
 (- (ly:pitch-notename pitch) (...base of key signature...)) 7))
 (name (format #f "~a~a"
 (string-ref "1234567" (scalestep))...


If i well understand what you want, there is a snippet very near of what  
you are searching.

   http://lsr.dsi.unimi.it/LSR/Snippet?id=818
The code below is a "mix" of the code you gave and this snippet.

%%
numbr = #(make-engraver (acknowledgers
 ((note-head-interface engraver grob source)
(let* (
  (context (ly:translator-context engraver))
  (tonic-pitch (ly:context-property context 'tonic))
  (tonic-index (ly:pitch-notename tonic-pitch))
  (event (ly:grob-property grob 'cause))
  (grob-pitch (ly:event-property event 'pitch))
  (grob-index (ly:pitch-notename grob-pitch))
  (delta (modulo (- grob-index tonic-index) 7))
  (name (list-ref '("1" "2" "3" "4" "5" "6" "7") delta))
  (newgrob (ly:engraver-make-grob engraver 'TextScript event)))
   (set! (ly:grob-property newgrob 'text) name)

music = \relative c' {
 \key c\major c4 d e f g a b2 |\break
 \key g\major g4 a b c d e fs2 | \break
 \key ef\major ef,4 f g af bf c d2 | \break
 \key d \major d,4 e fs g a b cs2 | \break
 \key cf\major cf,4 df ef ff gf af bf2 | \break
}

\score{
   \new Staff \with {\consists #numbr }
 \music
   \layout {}
}
%%%
--
Gilles

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


Re: pitch name transpose into numeric per key signature

2012-10-30 Thread Gilles



The code below is a "mix" of the code you gave and this snippet.

I forget
\include "english.ly"
(It's was the original language)


--
Gilles

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


Re: pitch name transpose into numeric per key signature

2012-11-02 Thread Gilles



One question though:  Can the numeric displayed above the staff?


Just set the property of newgrob to UP ( = 1 )



numbr = #(make-engraver (acknowledgers
 ((note-head-interface engraver grob source)
(let* (
  (context (ly:translator-context engraver))
  (tonic-pitch (ly:context-property context 'tonic))
  (tonic-index (ly:pitch-notename tonic-pitch))
  (event (ly:grob-property grob 'cause))
  (grob-pitch (ly:event-property event 'pitch))
  (grob-index (ly:pitch-notename grob-pitch))
  (delta (modulo (- grob-index tonic-index) 7))
  (name (list-ref '("1" "2" "3" "4" "5" "6" "7") delta))
  (newgrob (ly:engraver-make-grob engraver 'TextScript event)))
   (set! (ly:grob-property newgrob 'text) name)
   (set! (ly:grob-property newgrob 'direction) UP)

%%
--
Gilles

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


Re: pitch name transpose into numeric per key signature

2012-11-05 Thread Gilles



Additional question:  Can the numeric line up horizontally?

I am 3 days late answering.
The traditional way to do that is to override the padding property, but I  
wanted to explore the method using context, that I was not used to.

Here are the result of my tries.

%%
\include "english.ly"
%% http://lsr.dsi.unimi.it/LSR/Snippet?id=818

%%%
numbr = #(make-engraver (acknowledgers
 ((note-head-interface engraver grob source)
(let* (
  (context (ly:translator-context engraver))
  (tonic-pitch (ly:context-property context 'tonic))
  (tonic-index (ly:pitch-notename tonic-pitch))
  (event (ly:grob-property grob 'cause))
  (grob-pitch (ly:event-property event 'pitch))
  (grob-index (ly:pitch-notename grob-pitch))
  (delta (modulo (- grob-index tonic-index) 7))
  (name (list-ref '("1" "2" "3" "4" "5" "6" "7") delta))
  (newgrob (ly:engraver-make-grob engraver 'TextScript event)))
   (set! (ly:grob-property newgrob 'text) name)
  ;(set! (ly:grob-property newgrob 'direction) UP)
   
%%%

music = \relative c' {
 \key c\major c4 e g b d f a2 |\break
 \key g\major g,,4 b d fs a c e2 | \break
 \key ef\major ef,4 g bf d f af c2 | \break
 \key d \major d,,4 fs a cs e g b2 | \break
 \key cf\major cf,,4 ef gf bf df ff af2 | \break
}
%%%
\markup "with padding"
\score{
   \new Staff \with {
 \consists #numbr
 \override TextScript #'direction = #UP
 \override TextScript #'padding = #3
   }
\music

   \layout {}
}
%%%
\markup "with a new context"
\score { <<
  \new NumbrStaff \music
  \new Staff \music
 >>
 \layout {
  \context {
\type Engraver_group
\name NumbrStaff
\consists Output_property_engraver
\consists Key_engraver  % needed for tonic pitch
\consists Note_heads_engraver   % needed for pitch of note
\consists Text_engraver
\consists #numbr
\consists Axis_group_engraver

\override KeySignature #'stencil = ##f
\override KeyCancellation #'stencil = ##f
\override NoteHead #'stencil = ##f
% this section is a copy of NoteNames engraver in engraver-init.ly
\override VerticalAxisGroup #'staff-affinity = #UP
\override VerticalAxisGroup #'nonstaff-nonstaff-spacing =
#'((basic-distance . 0)
   (minimum-distance . 2.8)
   (padding . 0.2)
   (stretchability . 0))
\override VerticalAxisGroup #'nonstaff-relatedstaff-spacing =
  #'((basic-distance . 5.5)
 (padding . 0.5)
 (stretchability . 1))
\override VerticalAxisGroup
  #'nonstaff-unrelatedstaff-spacing #'padding = 1.5
  }
  \context { \Score \accepts NumbrStaff }
 }
}
%

-- Gilles

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


Re: Extract notes within music function

2012-11-07 Thread Gilles


Is it possible to extract individual notes from the music passed to a  
music function, e.g.:

\myFunction { c d e f }
Within myFunction, can I do something like
car notes
cdr notes


Here is a kind of template, but i am not absolutely sure it's what you  
want.




myFunction = #(define-music-function (parser location music)(ly:music?)
 (map-some-music
(lambda (evt)
  (let ((name (ly:music-property evt 'name)))
(cond
  ((eq? name 'EventChord)
 ; to see the structure of a chord
 (display-scheme-music evt); to comment
 ; do something with the chord
 evt) ; return the modified chord - don't go deeper
  ((eq? name 'NoteEvent)
 ; to see the structure of a note
 (display-scheme-music evt); to comment
 ; do something with note
 evt) ; return the modified note - don't go deeper
  (else #f ; => #f = continue, go deeper
 music))

music  = \relative { c2->\f  2-> }

\myFunction \music



--
Gilles

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


Re: Extract notes within music function

2012-11-08 Thread Gilles



Is it possible to do something just with the first and last notes of
music within? Can they be extracted from music as from a list? (Hence
my reference in the original post to car and cdr)?


In music-functions.scm, you have some useful functions. Here an
extract-music is used.

%%%

music  = \relative { c2->\f d e 2-> }

#(let ((mylist
  (extract-music music
 ;(lambda (evt)(eq? (ly:music-property evt 'name) 'NoteEvent)
(lambda (evt)(memq (ly:music-property evt 'name)
'(NoteEvent EventChord))
(display-scheme-music (car mylist))
(display "  \n")
(display-scheme-music (last mylist)))



NB
Aleksandr, sorry for the double messages.

--
Gilles

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


Re: Alignment of full-page scores in text documents

2018-01-29 Thread Gilles

On Mon, 29 Jan 2018 09:03:46 +0100, Urs Liska wrote:

Hi all,

I'm trying to figure out the best setting for page margins for mixed
text/music documents. The task is to automatically set the margins in
LilyPond depending on a LaTeX document where full-page scores are
included.

We have the horizontal margins more or less fixed, by default
LilyPond's staff symbol will exactly match LaTeX's linewidth. When
naively setting LilyPond's vertical margins to those of the text the
result is (expectedly) rather ppor, as you can see here:
https://github.com/jperon/lyluatex/issues/29#issuecomment-361159545.
What I would basically want to achieve is mathing the outermost 
*staff

lines* with the text's type area.

When manually trying different values I found that I would like the
topmost staffline align not with the actual margin but the X-height 
of

the corresponding text. This can be seen here:
https://github.com/jperon/lyluatex/issues/29#issuecomment-361162799

On that same image the bottom staff line is aligned to the baseline
of the text, and I'm not sure if that is the right choice. Somehow 
the

score visually looks lower than the text,


Isn't it because the "center of mass" of the notes in the last staff
is below it?
I'd guess that a similar (i.e. too high) effect would exist for the
top staff if most notes were above it.
My impression is that the latter image looks fine, once you assume
that the "visual frame" is induced by the (empty) staves.

Regards,
Gilles


and I wonder whether there
should be a similar amount of padding like at the top margin. But of
course there is no "natural" reference point here.

What is your opinion on this issue?

Best
Urs




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


Re: from single staff to piano staff

2013-11-19 Thread Gilles



try LSR: http://lsr.dsi.unimi.it/LSR/Item?id=545


The version for 2.16 is here :
http://gillesth.free.fr/Lilypond/chord/


--
Gilles

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


Re: Lilypond Cheat Sheet 2.18

2014-01-04 Thread Gilles



Good job! Thanks (I'll give the links on the French list when updated).

- Commentaire % … und %{ … %}
+ Commentaire % … et %{ … %}
[ ... ]


Perhaps too late, but

alterations doesn't fit to \language "français"
 is   -> d
 ish  -> sd
 isis -> dd
 isih -> dsd
 es   -> b
 eh   -> sb
 eses -> bb
 eseh -> bsb

NB
As it is my first post here in 2014, happy new year for everybody

--
Gilles

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


Re: extract notes into voices

2014-03-14 Thread Gilles
Le vendredi 14 mars 2014, 00:47:28 Gilles a écrit :
> Le mercredi 12 mars 2014, 14:12:57 MING TSANG a écrit :
> > Hi, lilyponders,
> > I browse the LSR and find this extractNote. I is somthing that I can use.
> > Please refer to .pdf : Is it possible to modify this LSR so that bar 5
> > also
> > be extracted to soprano staff and alto staff? I don't know scheme code.
> > BTW
> > - congratulation to Janek and Urs and Oskar Fried project
> > Emmanuel,
> > Ming
> 
> I have joined my original file (chord.ly) that contains the \extractNote
> function, a \extractVoice function, and 2 derivated functions
> \extractPartUpper and \extractPartLower, that you can use in your ly file.
> 
> Note that the name of "chord.ly" is probably a bad choice and should rather
> be "chord&voice.ly" or something like that.
Ouch, as you enter notes in a chords beginning by the upper one ( generally a 
chord is read from lowest to top), you have to  re-define the \extractPartUpper 
and \extractPartLower

extractPartUpper = #(define-music-function (parser location music )(ly:music?)
"Extract 1st note of each chords, and 1st element of simultaneous music"
 #{ \extractNote #1 \extractVoice #1 $music#})

extractPartLower = #(define-music-function (parser location music )(ly:music?)
"Extract last note of each chords, and last element of simultaneous music"
 #{ \extractNote #1000 \extractVoice #1000 $music#})

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


Re: entering chords

2014-03-25 Thread Gilles
Le dimanche 23 mars 2014, 03:59:21 MING TSANG a écrit :
> c:  the sample .ly has several functions -\extractNotes ; \ePU ; ePL etc.
> and I find several things I don't understand.  please refer to .pdf file.
Dear Ming.
As it seems that some points are not enough clear about "chord.ly", I tried to 
make a little doc about the functions contained in this file. You can download 
"chord-doc.pdf" here :
http://gillesth.free.fr/Lilypond/chord/

You'll find also in this directory, the last version of "chord.ly"
In this subject, I have to apologize to you about the file "chord.ly" I send to 
you in this thread :
http://lists.gnu.org/archive/html/lilypond-user/2014-03/msg00317.html
The \extractVoice function required an integer as parameter but an old version 
required a decimal number ! So your mistake was my fault. Sorry.
Actually, there was here 2 features.
So in this last version there is 2 functions :
\extractVoice that requires an integer.
\deepExtractVoice that requires a decimal number
See the doc to know the difference.
Feel free to ask some precisions here if you need it.

-- Gilles

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


Re: Changes to LSR #542 (extractMusic et al.)

2014-04-29 Thread Gilles
Le mardi 29 avril 2014, 16:20:32 Jim Long a écrit :
> I'm trying to track down a problem I'm having with a file I store
> as extractMusic.ily, which claims to descend from LSR #542.  My
> copy says it's for 2.16 or later, which makes it older than the
> current snippet #542.
> 
> My old version is attached.
> 
> The new version is at:
> 
> http://lsr.di.unimi.it/LSR/Snippet?id=542
> 
If you look at :
http://lsr.di.unimi.it/LSR/Item?id=542
there is a link at the end of the snippet to get the full version


-- Gilles

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


Re: Replying to posts

2016-04-27 Thread Gilles

Hello.

On Wed, 27 Apr 2016 13:44:39 +0200 (CEST), Martin Tarenskeen wrote:

On Wed, 27 Apr 2016, David Kastrup wrote:


Looks like I'm no longer welcome on this list.  I'll unsubscribe and
leave it to the people who understand the medium better.

I assume that I'm more welcome on the developer list.  People there 
are

more likely to get along with conveying messages using text.


Don't let a handful of over-sensitive people upset you.
And the other way around I also want to ask them: don't let people
like David Kastrup upset you either.

I'm assuming that the majority of readers of this mailing-list
couldn't care less what mailclient everyone is using, if their mail 
is

html formatted or plain text, if we should top-post or not, etc.


The primary issue is not about "a majority" (who may not have a clue 
why
HTML mail ranges from bad to evil) but respect towards those who read 
the

messages, and try to help the posters.

It should take much less time for readers to figure out what the 
question

is, than it took the posters to write them.

If, out of lazyness, the latter plainly ignore the rules aimed at
conveying more information than noise, the list owner should consider
banning them, rather than risk putting off those who follow the rules.


Regards,
Gilles


The majority of readers of this mailinglist just wants to discuss the
usage of LilyPond. That's why this list is called "lilypond-user".
Everyone who has valid questions, sensible answers, or interesting
stories around this subject is more than welcome. And David fits this
description perfectly. So please don't unsubscribe.




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


Re: Replying to posts

2016-04-28 Thread Gilles

On Fri, 29 Apr 2016 10:40:09 +1000, Andrew Bernard wrote:

Hi Gilles,

As far as I know this particular list does not have a list owner, and
there are no published rules.


List owner/adminstrator/moderator: ie. someone who has the privilege to
unsubscribe other people.

People here have given reasons that can translate into (implicit) 
rules.
Another (meta-)rule is to behave the same way as others do (e.g. 
looking

at the archives could give hints as to what is the norm).
There are many web pages about (other) mailing lists etiquette.

Regards,
Gilles




Andrew





On 27/04/2016, 10:05 PM, "lilypond-user on behalf of Gilles"
 wrote:


If, out of lazyness, the latter plainly ignore the rules aimed at
conveying more information than noise, the list owner should consider
banning them, rather than risk putting off those who follow the 
rules.



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


Re: Changing and playing a different instrument in MIDI

2016-07-22 Thread Gilles

On Fri, 22 Jul 2016 08:51:52 +0200, Mojca Miklavec wrote:

Hello,

I don't have much experience with MIDI. I just tried all the media
players on OS X and realized than only QuickTime Player 7 had some
very very basic support for playing MIDI files (I cannot even make it
play loud enough, let alone do anything else with it). None of the
others I have installed worked (VLC, MPlayerX, QuickTime Player,
RealPlayer, ...)

So I went on and made a package for TiMidity++ and freepats.

The problem is: I'm still unable to figure out how to change the
instrument to anything but Piano.


Here's a minimal example:

\score {
  \new PianoStaff
  <<
\new Voice = "melody" \fixed c'
{
  \set midiInstrument = #"accordion"
  \time 3/4
  f4 g a
}
  >>
  \midi{ \tempo 4 = 100 }
}

But this doesn't help me in any way.


\set Staff.midiInstrument = "accordion"

HTH,
Gilles


[...]



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


Re: Music runs off the page (LY version 2.9.9)

2016-09-12 Thread Gilles

On Mon, 12 Sep 2016 18:24:53 +1000, Brent Annable wrote:

Hello everyone,

I am not a frequent Lilypond user, and am writing to ask for a 
(hopefully

quick) favour here. I hope that's okay.

I wanted to transpose BWV 848 from c-sharp major into d-flat major to 
make
it easier for me to read, so I downloaded some old Mutopia engraving 
files
from IMSLP and added a simple 'transpose' command. That worked fine, 
except
the final bars of the piece now run off the last page. I have 
attached the

modified .ly file and PDF.

Frescobaldi gives error messages for the following beaming 
instructions in

the engraving file:

#(override-auto-beam-setting '(end * * * *) 1 4 'PianoStaff)
  #(override-auto-beam-setting '(end * * * *) 1 2 'PianoStaff)
  #(override-auto-beam-setting '(end * * * *) 3 4 'PianoStaff)

Could that have anything to do with it? My only Lilypond experience 
has
been with version 2.14; this file is from 2.9 and the current version 
is
2.18, so I'm at a loss for why it isn't working. I'm hoping someone 
with a
better knowledge of the program's history and syntax can help 
identify the

problem? I would be very grateful.


Did you run it through "convert-ly"?

Regards,
Gilles



Many thanks for any help,

Brent Annable.



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


Re: Dorico release and tutorials

2016-10-19 Thread Gilles

On Wed, 19 Oct 2016 12:44:22 +0200, Urs Liska wrote:

Am 19.10.2016 um 12:41 schrieb David Kastrup:

Pierre Perol-Schneider  writes:


I just watched the vids. One thing I appreciate is the pages layout
possibilities.
It would be great if LP had something like:

\paper {
  %defaults settings:
  right-margin = 10
  left-margin = 10

  %specific page settings:
  \page #1 {
right-margin = 20
left-margin = 20
  }

page.1.right-margin = 20
page.1.left-margin = 20

}
I'm not saying that we currently have this, just that this would be 
one

possible interface.


Doesn't the page number depend on how the previous material
has been typeset?



That looks very nice.
On a related note (not knowing whether Dorico has this) it would also 
be
great to be able to specify the global-staff-size for individual 
pages.

It's pretty common in larger orchestral scores that you have only a
small number of pages where you need the full orchestra and want to 
have

smaller staff size.


It seems to me that, rather than "specify the global-staff-size
for individual pages", it should be "from now on, magnify the
global-staff-size so that  systems fit the page".

Regards,
Gilles


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


Re: Dorico release and tutorials

2016-10-19 Thread Gilles

Hi.

On Wed, 19 Oct 2016 09:21:32 -0400, Kieren MacMillan wrote:

Hi Gilles,


Doesn't the page number depend on how the previous material
has been typeset?


Not if breaks are forced, etc.


Unforced breaks can depend on previous margin settings,
possibly making the numbering wrong when the user reruns
the compilation with different settings.


It seems to me that, rather than "specify the global-staff-size
for individual pages", it should be "from now on, magnify the
global-staff-size so that  systems fit the page”.


Why “rather”? Why not “in addition to”?


Because (I guess that) the former will not likely produce
the expected output, particularly when there are many pages.

Unless you mean that the typesetting should only rely on
forced breaks.

Regards,
Gilles



Cheers,
Kieren.


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



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


  1   2   3   4   5   6   7   >