Re: removing unwanted accidentals

2005-04-14 Thread Erik Sandberg
On Thursday 14 April 2005 21.31, Stephen wrote:
> Given all the options for automatic accidentals: voice, modern,
> modern-voice, piano, no-reset, forget, and default, one of them must answer
> every situation if you take the time to learn them. I find it confusing
> when there are multiple ways to do the same thing. I'd look carefully at
> the current options before I wrote a new option.
>
> In the example, '\set Score.currentBarNumber = #1' creates the problem. I
> don't see why the numbering is reset there other than to remove the number
> from that bar because it collides with the mark "D". There must be another
> way to suppress the bar number at that bar.

It also changes the numbering of all subsequent bars. I don't know the 
author's intent in this case (I didn't write that snippet), but I guess it 
could be something like an attaca movement.

> However, I fixed it by setting the accidental style to 'forget'. See? there
> is already a way to do it.

There are situations where this doesn't work. E.g., in
{ \key d\major fis f }
I can see no way to avoid displaying the natural.

(this example I gave is not realistic, but the below example suggests that it 
may happen that you want to tweak accidentals in unexpected ways, e.g. due to 
other bugs)

Erik

> - Original Message -
> From: "Erik Sandberg" <[EMAIL PROTECTED]>
> To: 
> Sent: Monday, April 11, 2005 3:53 PM
> Subject: removing unwanted accidentals
>
> > Hi,
> >
> > There seems to be a need for a way to notate that a single note should
> > _not_
> > have an accidental displayed, something like a 'force-no-accidental'
> > property.
> >
> > I think there was a discussion about this over a year ago, without a
> > conclusion. Now there have been 2 or 3 (implicit) requests for it in a
> > short
> > time, and IMHO it's a reasonable feature.
> >
> > Also it looks pretty trivial to implement; may I give it a try?
> >
> > Erik
> >
> > On Sunday 10 April 2005 14.32, Karl Hammar wrote:
> >> How do I remove the unwanted explicit flats in the next to last
> >> measure in:
> >>
> >> \version "2.4.2"
> >>
> >> \relative c'' {
> >>   \override Score.BarNumber  #'break-visibility = #end-of-line-invisible
> >>   \mark #03
> >>   \clef treble
> >>   \key c \minor
> >>   a2 b |
> >>   d1 |
> >>   \mark #04
> >>   \set Score.currentBarNumber = #1
> >>   d2 es8. as,16 bes8 c |
> >> % ^ ^ unwanted explicit flats here
> >>   d1
> >> }
> >>
> >> Regards
> >> /Karl
> >>
> >>
> >>
> >>
> >> ___
> >> lilypond-user mailing list
> >> lilypond-user@gnu.org
> >> http://lists.gnu.org/mailman/listinfo/lilypond-user
> >
> > ___
> > lilypond-devel mailing list
> > lilypond-devel@gnu.org
> > http://lists.gnu.org/mailman/listinfo/lilypond-devel


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: removing unwanted accidentals

2005-04-14 Thread Stephen
Given all the options for automatic accidentals: voice, modern, 
modern-voice, piano, no-reset, forget, and default, one of them must answer 
every situation if you take the time to learn them. I find it confusing when 
there are multiple ways to do the same thing. I'd look carefully at the 
current options before I wrote a new option.

In the example, '\set Score.currentBarNumber = #1' creates the problem. I 
don't see why the numbering is reset there other than to remove the number 
from that bar because it collides with the mark "D". There must be another 
way to suppress the bar number at that bar.

However, I fixed it by setting the accidental style to 'forget'. See? there 
is already a way to do it.

Stephen
- Original Message - 
From: "Erik Sandberg" <[EMAIL PROTECTED]>
To: 
Sent: Monday, April 11, 2005 3:53 PM
Subject: removing unwanted accidentals


Hi,
There seems to be a need for a way to notate that a single note should 
_not_
have an accidental displayed, something like a 'force-no-accidental'
property.

I think there was a discussion about this over a year ago, without a
conclusion. Now there have been 2 or 3 (implicit) requests for it in a 
short
time, and IMHO it's a reasonable feature.

Also it looks pretty trivial to implement; may I give it a try?
Erik
On Sunday 10 April 2005 14.32, Karl Hammar wrote:
How do I remove the unwanted explicit flats in the next to last
measure in:
\version "2.4.2"
\relative c'' {
  \override Score.BarNumber  #'break-visibility = #end-of-line-invisible
  \mark #03
  \clef treble
  \key c \minor
  a2 b |
  d1 |
  \mark #04
  \set Score.currentBarNumber = #1
  d2 es8. as,16 bes8 c |
% ^ ^ unwanted explicit flats here
  d1
}
Regards
/Karl

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

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel 
<>\version "2.4.2"

\paper {
  indent = 0\mm
}

\relative c'' {
  #(set-accidental-style 'forget)
  \override Score.BarNumber  #'break-visibility = #end-of-line-invisible
  \mark #03
  \clef treble
  \key c \minor
  a2 b |
  d1 |
  \mark #04
  \set Score.currentBarNumber = #1
  d2 es8. as,16 bes8 c |
% ^ ^ unwanted explicit flats here
  d1
}
___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Span_dynamic_performer

2005-04-14 Thread Stephen
Again, I think some of the bugs would be solved by setting the first note in 
the span to the previous dynamic level or barring that to a default dynamic 
level and conceptually considering the dynamic change to fall between the 
notes rather than on the notes. Perhaps extending the last dynamic change 
past the last note in the tuple. Sort of offsetting the dynamic changes by a 
half of a note.

Stephen 


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Span_dynamic_performer

2005-04-14 Thread Stephen
I am not a lilypond hacker (just an user, bug admin and hacker wannabe).
However, I could suggest you to start with a
grep Span_dynamic_performer ly/* scm/* lily/*>
span-dynamic-performer.cc is the file I want to look at. the structure 
Audio_dynamic_tuple threw me off. I confused that with a regular tuple. I 
think if really means just the group of notes within the span.

Stephen
- Original Message - 
From: "Erik Sandberg" <[EMAIL PROTECTED]>
To: "Stephen" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>; 
Sent: Sunday, April 10, 2005 3:19 AM
Subject: Re: Span_dynamic_performer


On Sunday 10 April 2005 05.18, Stephen wrote:
It has been my experience that visually it looks better to connect 
absolute
dynamics with a hairpin or to say it the other way around, to connect the
hairpin to an absolute dynamic. I am not trying to be difficult. If what
you say is true, what the hairpin engraver has been written to perform
optimally the hairpin performer has a bug in.
Yes, it is certainly a bug. midi-cresc-silence.ly in the bug repository.
Usually a hairpin dynamic is placed between one or two absolute dynamics 
so
that the performer of the music knows to gradually shift from one dynamic
to the other. Usually in printed music the dynamics and hairpins are 
lined
up with each other vertically in this case. I learned that an easy way to
make a hairpin line up with an absolute dynamic is attach the start or 
end
of the hairpin to the same note as the dynamic. So if this messes up the
midi, it is very unfortunate, 'cause it is more important to makr it look
good.
There is one possible workaround:
Create 2 scores, one for paper output and one for midi output. In the midi
score, add an extra s64\mf before the beginning of each voice. (it's dirty
but works)
I am not angry, it just takes a lot of words to make clear what I mean.
Often the purpose of a hairpin is to modulate the volume between two 
given
dynamics. Clearly the problem is that the hairpin modulates the volume 
from
its start to its endpoint, but really, it should never modulate at its
endpoints anyway. When a performer sees a hairpin, he knows to bring it
from the dynamic he is already playing at the start of the hairpin to
another absolute dynamic at the end of the hairpin. So the modulation
should never include, say, the first note of a hairpin. If there are only
two notes, it should only change the dynamic of the second note. If the
hairpin is attached to only one note, it should only change the dynamics 
of
the notes following the hairpin. Etc.

Again, I am curious to know which file this code is in in the sources.
I am not a lilypond hacker (just an user, bug admin and hacker wannabe).
However, I could suggest you to start with a
grep Span_dynamic_performer ly/* scm/* lily/*
Erik 

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Span_dynamic_performer

2005-04-14 Thread Stephen
Note also that these bugs have low priority among developers, since there 
are
plans to rewrite the midi system from scratch.>
My comments can be taken two ways, as suggestions for a rewrite of 
span-dynamic-performer.cc or as a wish-list for the new implementation. If I 
where to contribute to the new implementation, I would need to start by 
analysing the drawbacks of the current implementation of midi in Lilypond. 
When it comes to things like this, I fail to see the distinction. We learn 
from each other, hopefully.

One thing I want to do in midi is to say:
\remove Voice.Span_dynamic_performer
\consists PianoStaff.Span_dynamic_performer
to controll the scope of the dynamic changes, whether they only affect the 
voice, the staff, the piano part, of the entire score. I don't know if that 
is possible yet.

Stephen
- Original Message - 
From: "Erik Sandberg" <[EMAIL PROTECTED]>
To: "Stephen" <[EMAIL PROTECTED]>
Cc: "Mats Bengtsson" <[EMAIL PROTECTED]>; 
<[EMAIL PROTECTED]>; 
Sent: Monday, April 11, 2005 3:43 AM
Subject: Re: Span_dynamic_performer


On Sunday 10 April 2005 15.50, Stephen wrote:
Mats, the output went silent with this:
\tupletUp
\time 4/4
\tempo 4=50
\partial 4
g,8.\mf\< g,16 | c2.\fermata g,8. c16 | e2.\fermata g,8 c |
e4 g,8 c e4 g,8 c | e2.\fermata c8. e16 | g2\ff\> e4 c | g,2.\f
g,8. g,16 | c2.-\markup { \italic \bold "morendo" } \fermata \bar "|."
Note the 'g,8.\mf\<' beginning. An absolute dynamic did preceed the
hairpin, but on the same note.
"On the same note" means "at the same time" in lilypond; it is not 
significant
in which order you write the commands. Due to a bug, the absolute dynamic
must happen _strictly_ before the hairpin, i.e. not at the same time.

Note also that these bugs have low priority among developers, since there 
are
plans to rewrite the midi system from scratch. If you want to write a
workaround, I think span-dynamic-performer.cc might be a good file to hack
(no guarantees though).

Erik 

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: lilypond book issues version 2.5.19

2005-04-14 Thread Werner LEMBERG
> > It `normalizes' the `@' character, so it no longer is of type
> > `letter'.  I also wonder why it's here.  Additionally, it should
> > be
> > 
> >   [EMAIL PROTECTED]
> >
> > to make TeX stop parsing after the `2'.
> > 
> 
> Isn't his what \makeatother is for?

This isn't defined for plain TeX.

> In any case, it looks like it should _not_ be here, after all
> someone might "@" in \preLilyPondExample and then get surprised at
> the result!

I disagree.  `@' should *always* be of category `other' for the user.
If she wants to change that she should explicitly change the catcode.
This is standard LaTeX practice.

> I should have thought if that since my wife is Chinese! I still
> think that being able to put a macro between the systems would be
> useful.

Since LilyPond completely takes care of formatting pages, this isn't
really useful.  Think of LilyPond returning an `image' of a piece of
music which is accidentally in TeX format.  If you want something
between the systems, make LilyPond do that.  Otherwise use two or more
LilyPond snippets.


Werner


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Implementation documentation

2005-04-14 Thread Bernard Hurley
I have somewhat rashly volunteered to be Implementation documenter.
Han-Wen informs me that various abortive starts have already been made
on this. So if you have any material that would be useful, please e-mail
it to me.

thanks

/Bernard



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: textspanner arrowed line

2005-04-14 Thread Han-Wen Nienhuys
On Thu, 2005-04-14 at 12:09 -0300, Jonatan Liljedahl wrote:
> First of all, if you want this reply to the mailinglist instead of
> personally, then why did you mail me personally in the first place? (not

I apologise.  I just switched email clients (from emacs+VM to
Evolution), and I am still coping with the different controls.
Hopefully, this goes to the mailing list as I originally intended 

> > On Wed, 2005-04-13 at 18:17 -0300, Jonatan Liljedahl wrote:
> > > I'm trying to make an arrowed line textspanner, I'm almost there...
> > > The problem is that the arrow is attached to the whole spanner
> > > including the text. I wish to attach it only to the line, which
> > > means that it is the Line_spanner::print function I should hook. But
> > > how do I do that? How do I get to the TextSpanners line print
> > > function?
> > 
> > you can't. You have to modify the C++ code, or rewrite the C++ in
> > Scheme. Look in line-spanner.cc to see how it works.
> 
> So there's no way in scheme to "decompose" the textspanner grob/stencil
> into the separate stencils for
> 1. left edge text, 2. the line, 3. right edge text?

Correct. 

-- 
Han-Wen Nienhuys - [EMAIL PROTECTED] 
LilyPond Software Design - http://www.lilypond-design.com



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: lilypond book issues version 2.5.19

2005-04-14 Thread Bernard Hurley

> > First what is the code: [EMAIL PROTECTED] for?
> 
> It `normalizes' the `@' character, so it no longer is of type
> `letter'.  I also wonder why it's here.  Additionally, it should be
> 
>   [EMAIL PROTECTED]
>
> to make TeX stop parsing after the `2'.
> 

Isn't his what \makeatother is for? In any case, it looks like it should
_not_ be here, after all someone might "@" in \preLilyPondExample and
then get surprised at the result!

> > Second what is the point of putting the \preLilyPondExample and
> > \postLilyPondExample macros where they are?  If I want macros in
> > _these_ places I can put them in the original latex file!
> 
> The idea is that you need sometimes need special environments to make
> the lyrics work correctly.  For example, you have to enter a CJK
> environment for Chinese.  \preLilyPondExample and \postLilyPondExample
> should be global hooks (this is, setting them up just once for all
> lilypond snippets), not local ones.

I should have thought if that since my wife is Chinese! I still think
that being able to put a macro between the systems would be useful. 

Bernard



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel