Re: website draft 4, help wanted

2009-07-08 Thread Carl D. Sorensen



On 7/8/09 6:27 PM, Graham Percival gra...@percival-music.ca wrote:

 
 Now for *my* rant.
 
 As I've said before, I stopped using lilypond 4-5 years ago.  Last
 Fall, I briefly got back into improving the engraving of my old
 compositions, but that stopped when I went to Singapore.
 
 So why am I still around?  I'm really bugged by inefficiency.
 Users ask questions, Mats gives the same answers over and over
 again: inefficient.  So I improved the docs.
 
 I decide to leave, but remember that it took me two weeks to get
 my first patch, it was horribly frustrating, and it was horribly
 inefficient.  So I started GDP to train my replacements.
 
 Potential contributors can't figure out git, ask questions, we
 have the same confused discussion over and over again:
 inefficient.  So I started the CG.
 
 Potential programmers can't figure out how to get started, and the
 existing programmers have learned that most well-intentioned
 offers of programing never pan out when they have to actually do
 work, so they ignore all those requests about getting started:
 inefficient.  Another reason to start the CG, and to continually
 nag people to dump instructions in the CG.
 (we direct new contributors to the CG, so that they can
 demonstrate their willingness and ability to do work.  Then we
 know that it's worth spending hours helping and training them,
 rather than hoping that an unknown contributor will be in the
 25-40% of new contributors who will actually stick around)
 
 
 You know what kind of website I think we should have?  I think we
 should have whatever website the community is willing to make.  So
 far, the community that's willing to make a website consists of
 me, Patrick, Jonathan, and Francisco.  Plus many others who give
 suggestions... but when it comes to actually sitting down and
 writing the content, hacking the perl, and whatnot, it's just us.
 
 Which, in itself, is a horrible waste.  Every hour that I spend
 working on the website is an hour that I'm not working on writing
 instructions about how to make releases.  Whenever I retire from
 building releases, I don't want my replacement to spend *another*
 5 months trying to figure out how to build the regtests correctly
 or run the upload script.
 
 Every hour I spend on the website is an hour that I'm not
 rearranging LM 1 and the AU.  You know, we had a sincere offer to
 help write docs for alternate editors, 2 or 3 weeks ago.  But
 *that* can't be done until I've made the space for that in LM 1.
 
 Every hour I spend on the website is an hour that I'm not
 investigating+discussing Reinhold's ajax-search stuff, which I
 *promised* that I'd do in 1 week on June 23.
 
 Every hour I spend on the website is an hour that I'm not checking
 over the CG, which needs to be done before we can start GOP, which
 is a (the?) prime time to gather more contributors.
 
 Every hour I spend on the website is an hour that I'm not writing
 another column for the LilyPond Report, which may or may not be
 holding up the next issue.
 
 Every hour I spend on the website is an hour that I'm not dealing
 with the 58 emails containing material which should be added or
 fixed in the docs.  (and yes, all your GDP graduates reading this,
 I _am_ slightly miffed at you.  I spent a lot of time training you
 21 people so that I wouldn't have to deal with this stuff any
 more)
 
 Every hour I spend on the website is an hour that I'm not starting
 my own Tadpole stuff, which is particularly annoying since I was
 really hoping to start doing programming bugfixes myself, this
 summer.
 
 
 Given all those tasks... and all the potential contributor effort
 that's waiting for me to finish those tasks... it really doesn't
 make sense for me to be gathering a list of productions and
 nagging famous lilypond users to send pictures.  Which,
 thankfully, I've offloaded to Jonathan.  But it also doesn't make
 sense for me to be rewriting the Old News from the current website
 into texinfo to add to the new website, but I'll probably end up
 doing that.
 
 In some ways, I actually cringe more when I see Patrick working on
 the website.  Not because he doesn't do a great job of the CSS and
 perl hacking (he *does* do a great job of this), but because he
 could be working on so many other things.  CSS isn't hard; there's
 dozens of users that _could_ be doing it.  But improving the SVG
 backend of lilypond _is_ hard.  Nobody else is doing _that_.
 Fixing build bugs in GUB is hard; you and he are the only people
 currently working on that.  Frankly, if the really annoying
 lilypond bugs like #34 (grace notes) ever get fixed, there's a
 good chance it'll be done by Patrick.  So why the bloody mao is he
 the main person working on the CSS?  We should get a relatively
 inexperienced contributor / web-savvy user to do that stuff.
 
 
 *That* is why I'm not going to spend (significant) time screwing
 around with the appearance.  If somebody is seriously interested
 in this task, I'll gladly 

Re: Chordnames and added Bassnotes

2009-07-07 Thread Carl D. Sorensen



On 7/7/09 5:38 AM, Werner mey@web.de wrote:

 Hello,
 
 is there a possibility to print e.g.
 
 F
 _
 C
 
 instead of
 
 F/C
 
 ???


As far as I know, this is not easily done right now.

The chord naming code is currently under revision; I think that it will be
more easily done in the future.

If you were to use Tao Cumplido's techniques for writing chord names as
Lyrics, it would be pretty straightforward to create a markup like you want.

Hope this is helpful,

Carl



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


Re: chordChanges true, but certain cautionary chordnames wanted

2009-07-07 Thread Carl D. Sorensen



On 7/7/09 6:44 AM, Werner mey@web.de wrote:

 Hello.
 
 For accidentals there is the possibility to obtain them also if not needed by
 adding an exclamation mark !
 
 How to get a chordsymbol if \set chordChanges = ##t ?
 
 Is there a hint?
 
 (Would be nice with the exclamation mark too.)
 

This is not available.  You could make this request on the the bugs-lilypond
list, where it would be added as an enhancement request.

HTH,

Carl



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


Re: Bass clarinet fingering chart

2009-07-07 Thread Carl D. Sorensen
Mike, great work!

I have some comments below


On 7/7/09 2:46 PM, Mike Solomon mike...@ufl.edu wrote:

 Hey lilypond-users,
 Before I put this on the LSR, please play around with this.
 Specifically, please
 
 1) Make it less sprawling.
Decrease your tab settings.  Follow the indentation suggestions given in the
Contributors' Guide, section 7.2

http://lilypond.org/doc/v2.12/Documentation/devel/contrib-guide/Programming
-without-compiling#Programming-without-compiling

They'll help you make it less sprawling.


 2) Find anything that's broken (the below examples work).
 3) Change layout to better-suit your wind-playing needs.
 4) Make any and all layout or coding suggestions.
 
 THANK YOU!!!
 ~Mike

General comment -- LilyPond coding style is to not use variable names like
fsize.  What is f?  font-size would be better.  Similarly, what is val?
 
 \version 2.13.0
 
 #(define (make-number-bcl layout props fsize stretch offset val)
 (ly:stencil-translate
 (ly:text-interface::interpret-markup layout props
 (make-general-align-markup X RIGHT (make-general-align-markup Y DOWN (
 markup #:abs-fontsize fsize val (cons (* -0.5 stretch ) (* offset
 stretch) )
 )
 )

inl, outmk?  bcl, as well

Oh, I finally see.  inl is input-list, outmk is output-markup

 #(define (make-named-bcl inl outmk biglist)
 (if (eqv? 0 (length inl))
 outmk
 (begin
 (set! outmk (append outmk (if (list-ref inl 0) (list-ref biglist
 0) (list (markup #:null)))   ))
 (make-named-bcl (cdr inl) outmk (cdr biglist))

 )
 )
 )
 
 #(define-markup-command (multiphonic layout props inl) (list?)

multiphonic doesn't make much sense to me.  bassClarinetDiagram?

 (let*
 (;radius of the circles
 (radius (list-ref inl 0))
 ;font size, grows and shrinks with radius
 (fsize (* radius 12))
 ;degree of stretch of the holes as a function of radius size.
 Make 0.0 to 0.5 for good results.
 (spread (list-ref inl 1))
 (stretch (+ (* 2 radius) (* spread radius)) )
 ;more or less the approximation from the bible
 (PI 3.14159265)
No need to make PI this many digits; 4 decimal places is sufficient.

 ;list of left keys
 (lbiglist
left-key-list instead of lbiglist (then the comment isn't needed, the code
is self-documenting).
 (list
 (list (markup #:abs-fontsize fsize B))
 (list (markup #:abs-fontsize fsize F)
(markup #:abs-fontsize fsize #:raise 1
#:fontsize -2 #:sharp))

Note that I stacked the two arguments to the (list ) procedure to deal
better with line breaking.

 (list (markup #:abs-fontsize fsize E))
 (list (markup #:abs-fontsize fsize E) (markup
 #:abs-fontsize fsize #:raise 1 #:fontsize -2 #:flat))
 (list (markup #:abs-fontsize fsize G) (markup
 #:abs-fontsize fsize #:raise 1 #:fontsize -2 #:sharp))
 (list (markup #:abs-fontsize fsize F))
 )
 )
 ;list of right keys
 (rbiglist
 (list
 (list (markup #:abs-fontsize fsize A))
 (list (markup #:abs-fontsize fsize G) (markup
 #:abs-fontsize fsize #:raise 1 #:fontsize -2 #:sharp))
 (list (markup #:abs-fontsize fsize E) (markup
 #:abs-fontsize fsize #:raise 1 #:fontsize -2 #:flat))
 (list (markup #:abs-fontsize fsize C) (markup
 #:abs-fontsize fsize #:raise 1 #:fontsize -2 #:sharp))
 (list (markup #:abs-fontsize fsize F))
 (list (markup #:abs-fontsize fsize E))
 (list (markup #:abs-fontsize fsize F) (markup
 #:abs-fontsize fsize #:raise 1 #:fontsize -2 #:sharp))
 )
 )
 ;bools for the fill/non-fill holes
 (h0 (list-ref inl 2)) (h1 (list-ref inl 3)) (h2 (list-ref inl
 4)) (h3 (list-ref inl 5)) (h4 (list-ref inl 6)) (h5 (list-ref inl 7)) (h6
 (list-ref inl 8)) (rkey (list-ref inl 9))
I'd put these each on a separate line, rather than dumping them all into one
line.  My rule for (let ) is that every variable definition needs to start
at the exact same column.


 ;necessary schtuff for the left named keys

Use stuff, not schtuff.  Non-native-english speakers may not catch the
meaning, and be unable to find the word in a dictionary.
 
 (lkeyl (list-ref inl 10)) (lkeymkp (list (markup #:null)))
 (lkeymkp (make-named-bcl lkeyl lkeymkp lbiglist))
 ;necessary schtuff for the right named keys
 (rkeyl (list-ref inl 11)) (rkeymkp (list (markup #:null)))
 (rkeymkp (make-named-bcl rkeyl rkeymkp rbiglist))
 ;values to draw the R hole
 (halfbase (* radius (cos (/ PI 10))) )  (height (* halfbase (/
 (sin (/ (* 4 

Re: new website: draft 3

2009-07-02 Thread Carl D. Sorensen



On 7/2/09 1:41 AM, Graham Percival gra...@percival-music.ca wrote:

 On Wed, Jul 01, 2009 at 03:50:14PM +0200, Mats Bengtsson wrote:
 
 Graham Percival wrote:
 
   where is the gui is unfortunately still common, but the
 new website and the 10.5 GUI work should fix that.

Actually, I beg to differ.  Since the rewriting of the website last January,
where is the gui is virtually gone.  The remaining GUI question is Why
doesn't the Mac GUI work.  And the running 10.5 GUI should resolve that.

If the right approach to FAQ is followed, then I think Graham is right.  But
this means that docs *must* be rewritten in response to FAQ.  If the only
response to the FAQ is RTM in section X.Y.Z, we're not meeting the need.
There's some reason why the use is not finding that, and we need to be
aggressive about fixing that problem.

Thanks,

Carl



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


Re: lilypond-user Digest, Vol 79, Issue 104

2009-06-25 Thread Carl D. Sorensen



On 6/25/09 8:37 AM, Hajo Dezelski dl1...@googlemail.com wrote:

 Possibly we should also think of
   - a better slogan?  it seems to me that Sibelius 6 - Perfect scores
 is more attractive than music notation for everyone.
 possibly something vaguely like:
 ...
 Jan.
 
 
 Lilypond - Keep up with tradition - Engrave like the masters

LilyPond -- Masterful Music Engraving

LilyPond -- Your personal master engraver


Carl



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


Re: Header title problem or convert-ly problem

2009-06-25 Thread Carl D. Sorensen



On 6/25/09 2:37 PM, Jay Hamilton jay...@linuxquestions.net wrote:

 A: I have tried over and over to follow the docs.  AND I have copy and pasted
 both Mats suggestions and now Simon's .
 Mats has never worked.  Yes the version info is in the file.  No it did not
 work.
 Simon's suggestion, I renamed the file without the space and in fact after
 that copy/pasted his version into run and it can't find convert-ly so I
 browsed to my applications file (on my desktop which is where I install lily
 from) and convert-ly flashes and there is no new version or file that I can
 find anywhere and the problem continues to exist.
 
 So I need more hints as either
 1] how to change the header so it works the way it did in 2.10
 or
 2] how to get convert-ly to work on my machine.
 Thanks

Go to Start menu, select Run.., and type cmd in the box.

This will open a command window.

Then change directory to the directory containing your .ly file.  You change
directory with the cd command.  It's hard to give you exact instructions,
because I don't know where things are.

But to use the cd command, you type

cd c:\Documents and Settings\Frybyte\Desktop\Hamilton\


You'll know you're in the right directory when you type

dir

and you can see your .ly file in the resulting list.


Then you want to type

convert-ly

which should give you a help message about convert-ly.

Then you will type

convert-ly --from=2.10.25 --to=2.12.2 my template.ly  template2.12.2.ly

That should make it work.

You may also be able to make it work by typing in the run box under the
start menu

convert-ly --from=2.10.25 --to=2.12.2 C:\Documents and
Settings\Frybyte\Desktop\Hamilton\mytemplate.ly  C:\Documents and
Settings\Frybyte\Desktop\Hamilton\mytemplate-new.ly

The format of a convert-ly command is

convert-ly --from=FROM-VERSION --to=TO-VERSION FROM-FILE-NAME  TO-FILE-NAME

The command you typed in was not in this format, if what you reported below
is correct.

HTH,

Carl


 
 Unfortunately, I have never been able to get convert-ly to work.  It's
 mostly my computer ignorance.  My files don't seem to be in simple places
 and I never get the parameters correct.
 so I have the file in C:\Documents and Settings\Frybyte\Desktop\Hamilton
 it's called
 my template.ly
 it's version 2.10.25
 I just tried to follow the instructions from the docs here's what I think
 it says to do in run under xp
 convert-ly --from C:\Documents and Settings\Frybyte\Desktop\Hamilton\
 mytemplate.ly\version 2.10.25 --to C:\Documents and
 Settings\Frybyte\Desktop\Hamilton\my template.ly version 2.12.2
 That didn't work so what am I not understanding?
 
 



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


Re: Lilypond and Jazz chords

2009-06-23 Thread Carl D. Sorensen



On 6/23/09 9:16 AM, Grammostola Rosea rosea.grammost...@gmail.com wrote:

 Tim McNamara wrote:
 
 On Jun 15, 2009, at 2:00 PM, Kieren MacMillan wrote:
 
 Wol et al:
 
 Would it be reasonable to separate the functions of putting notes on
 the staff and chord names above the staff, and let the user spell out
 the chord names separately from the notes on the staff?  Doing so
 might really simplify this discussion and result in better control of
 the final output.
 To me (but I'm not a real experienced jazz musician or lilypond user) I
 agree with this comment.
 Keep things simple!?

But this facility
a) doesn't exist in LilyPond
b) would require changes to the parser, and
c) has nobody who is willing to pursue doing it.

So, although it may seem simple to the user (things usually seem simple
when they are sketched out without full details), implementing this is
not simple at all.

The simple approach requires both notes (which are transposable) and
modifiers (which are not).

We currently have what I think will be a really good chord naming facility
being put together by Thomas; I expect it to be part of the development
version in about 10 days.

Carl



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


Re: Lilypond and Jazz chords

2009-06-23 Thread Carl D. Sorensen



On 6/23/09 5:19 PM, Tim McNamara tim...@bitstream.net wrote:

 
 
 On Jun 23, 2009, at 12:24 PM, Carl D. Sorensen wrote:
 
 On 6/23/09 9:16 AM, Grammostola Rosea
 rosea.grammost...@gmail.com wrote:
 
 Tim McNamara wrote:
 
 On Jun 15, 2009, at 2:00 PM, Kieren MacMillan wrote:
 
 Wol et al:
 
 Would it be reasonable to separate the functions of putting notes on
 the staff and chord names above the staff, and let the user spell
 out
 the chord names separately from the notes on the staff?  Doing so
 might really simplify this discussion and result in better
 control of
 the final output.
 To me (but I'm not a real experienced jazz musician or lilypond
 user) I
 agree with this comment.
 Keep things simple!?
 
 But this facility
 a) doesn't exist in LilyPond
 b) would require changes to the parser, and
 c) has nobody who is willing to pursue doing it.
 
 I think I may have written my comment poorly.  What I meant was
 having LilyPond *not* parse c e g b into a Cmaj7 chord name above
 the staff at all.  The parser is just going to run into trouble
 trying to interpret something like e c e ges bes d as C9b5/E
 because it can't read the intent of the user, only the notes in the
 bracket about which it can only make its best guess.  It would
 probably come up with Em7b5sus4 or something which is not the same
 thing in terms of musical intent, and musical intent is what the
 musician playing the piece wants to know.

I think I understood your intent.  The problem is that the *only* way we
have to input chords is in formats that enter notes (either e c' e ges bes
d or \chordmode {c:9.5-/e}).  There is *no* facility in LilyPond for
entering chords as text.

The parsing of c:9.5-/e converts that string into a set of pitches, along
with a bass and an inversion (at least I think it does; I haven't reviewed
it carefully for a while, and when I did review it I wasn't as familiar with
LilyPond as I am now).

The project that Thomas is working on is making sure that when the output of
\chordmode{c:9.5-/e} is passed to the chordnames context, it will give bag
c9b5/E in the appropriate format.



 
 I would recommend requiring the user to write the chord names out in
 a text entry format (e.g., c1:9.5-/e or something like that) *if*
 they want chord names above the staff and not parsing note entry to
 get chord names (if indeed LilyPond can do this at all, I've never
 looked into it).  This makes the most sense to me (and I hope my
 intent is clearer).
 
 

Right now, the ChordNames context works much better with chords entered in
\chordmode, because it knows the root and the inversion, rather than having
to try to guess the chord.

I suspect that there won't be a lot of effort right now trying to deal with
inversions or added basses, but that may come in the future.

In my opinion, the biggest problem we currently have is that we don't always
get good chord names out of \chordmode chords.  But I think Thomas will have
that fixed shortly

Thanks,

Carl

 
 
 



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


Re: subdivideBeams broken?

2009-06-21 Thread Carl D. Sorensen



On 6/21/09 9:49 AM, Hans Aberg hab...@math.su.se wrote:

 On 21 Jun 2009, at 16:47, Trevor Daniels wrote:
 
 SubdivideBeams will break beams at intervals
 defined by beatLength, which by default is set
 to 1 over the denominator of the time signature.
 
 Yes, but this is what goes wrong, as my time signature is 7/16, and
 then I use
\set beatGrouping = #'(2 2 2 1)
 So they should be the same.
 
 I think you need to set beatLength explicitly with
 \set beatLength = #(ly:make-moment 1 8)
 
 However this works. If I, however set
\set beatLength = #(ly:make-moment 1 16)
 then I get the error. So it seems that this one is set properly by the
 time signature, but then beatGrouping expects it to be set to 8ths.

I think you misunderstand how beatGrouping works.

In previous versions of LilyPond (2.10, and less than 2.11.x, where I don't
remember what x is -- it was about August 2008), beatGrouping didn't work
for autoBeaming.

beatGrouping sets the points at which autobeams end, unless there are
explicitly set rules.

beatLength sets the points at which beams are automatically subdivided.

By default, beatLength is the numerator of the time signature.

By default, beatGrouping is set according to the time signature for standard
time signatures (you can see the defaults in scm/music-functions.scm).

In your case, LilyPond was doing exactly what you asked it to.
subdivideBeams set to ##f, the beams were not subdivided.  And the
beatGrouping of (2 2 2 1) was overridden by your explicit rule to break
beams at 4/16.

With subdivideBeams set to ##f, beams were broken at 4/16 (according to your
rule), and subdivided every 1/16 note, since that's the beatLength you had
by default.

If you want beams to be subdivided at (2 2 2 1), then just set beatLength to
1/8, and you'll get what you want.

HTH,

Carl



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


FW: [frogs] Re: Patching the output file naming code (Was: thanks to whomever put this in the LSR...)

2009-06-21 Thread Carl D. Sorensen
I've forwarded Ian's message from the Frogs mailing list, because I don't
know how to answer his question.  I'm sure somebody on -devel will.

Thanks,

Carl


-- Forwarded Message
From: Ian Hulin i...@hulin.org.uk
Reply-To: fr...@lilynet.net
Date: Sat, 20 Jun 2009 17:25:42 -0600
To: Reinhold Kainhofer reinh...@kainhofer.com, fr...@lilynet.net
Conversation: [frogs] Re: Patching the output file naming code (Was: thanks
to whomever  put this in the LSR...)
Subject: [frogs] Re: Patching the output file naming code (Was: thanks to
whomever  put this in the LSR...)

Hi Reinhold,

I've now started doing some work on this, and the big disadvantage with the
current use of #(define output-suffix whatever) et al. is that they affect
all the files in all \score or \bookpart sections.  What I would like to do
is pick up a value of the property from something like a \paper block within
the current \score or \bookpart.  Is \paper the right place to put
properties relating to output filenames, or should it be property of \score
itself?

Either 

\bookpart {

    \header {
        blah...
        }
    \score \with {output-suffix=Allegro}{
        blah...
    }
}

Or 

\bookpart {
    \header {
       blah...
    }
    \score {
        \paper {
           output-suffix= Allegro}
               }
       blah...
    }
}

Now how do I pick up a property value from a specific currently active
lilypond block in Scheme?  I can pick up the results of #(define
output-suffix Allegro) by calling ly:parser-lookup.  What do I use for
lily property?  Below is my latest attempt


(define (get-outfile-name parser base )
 (let*
  ((output-suffix (ly:parser-lookup parser 'output-suffix))
   (counter-alist (ly:parser-lookup parser 'counter-alist))
   (alist-key '())
   (result '())
   (output-count (assoc-ref counter-alist output-suffix)) )
    (if (string? output-suffix)
    (set! alist-key (format ~a-~a base (string-regexp-substitute
                       [^a-zA-Z0-9-] _ output-suffix)))
    (set! alist-key base))
  (set! result alist-key)
    ;; must be careful: output-count is under user control.
    (if (not (integer? output-count))
    (set! output-count 0))

    (if ( output-count 0)
    (set! result (format #f ~a-~a alist-key output-count)))
    (ly:parser-define!
        parser 'counter-alist (assoc-set! counter-alist alist-key (1+
output-count)))    
    result)
 )

(define (print-book-with parser book process-procedure)
  (let*
  ((paper (ly:parser-lookup parser '$defaultpaper))
   (layout (ly:parser-lookup parser '$defaultlayout))
   (base (ly:parser-output-name parser))
   (outfile-name (get-outfile-name parser base)) )
  
    (process-procedure book paper layout outfile-name)
    ))


Cheers,
Ian






}

Reinhold Kainhofer wrote:
  
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Am Dienstag, 9. Juni 2009 23:29:34 schrieb Ian Hulin:
   
  
  
 Hi Reinhold,
 I'm having a look at seeing if I can pick up the work Marek Klein did on
 -devel.  It covered amending the coded generating output file suffixes
 to allow users to code user-specified names as the suffix.  It changes
 the function print-with-book in file lily-library.scm so one of the
 internal variables uses a Scheme alist.
 
 How much more work would it be to implement Patrick's suggestion below?
 
  
  
 
 Almost none, see below for a consistent proposal.
 
   
  
  
 But it would be nice to have an option to override the file-name for
 any arbitrary book.  Something like
 
 \book {
\paper {
  output-file-name = Blah
}
\score {
  ...
}
 }
 .
 .
 .
 
 As I understand it, the above would allow allow you to have a file
 called something like mozsym40.ly and use
 \paper {
 output-file-name=SinfoniaK550
 }
 to generated SinfoniaK550.pdf, .png, .mid, .midi or whatever.
 
  
  
 
 That would not be hard to implement (if you look at the print-with-book code,
 you'll see that currently the file name is concatenated from base and suffix.
 You'd have to add another check and not use the base name for this). However,
 it will be a little harder to make this system consistent and easy to use.
 
 Currently, we have:
 basename-suffix(-nr)
 where the number will become optional with the patch.
 
 Of course, one can add another layout variable 'output-basename, which will be
 used instead of the basename (so the suffix will still be used), however, in
 this case the numbering within suffixes will not be ideal. You can then get:
 
 mybase1-suffix
 mybase1-suffix-2
 mybase2-othersuffix
 mybase2-suffix-3
 
 I.e. the numbering will be only within each suffix, even if it is for a
 different 
 basename...
 
 The alternative is to use the basename-suffix combination as the key in the
 alist to look up the naming. This would probably be the ideal way.
 
 So, if you really want to generalize the naming even further, I would propose:
 - -) A layout variable 'output-basename (default: the input file name, 

Re: subdivideBeams broken?

2009-06-21 Thread Carl D. Sorensen



On 6/21/09 3:27 PM, Hans Aberg hab...@math.su.se wrote:

 Yes, beatLength will do a (2+2)+(2+1) beaming. Though this is one
 possible beaming for what I am writing now, my problem is that I have
 bunch of different meters. For example, I may want (2+2)+3,
 (2+2)+3+(2+2) and so on.
 
 I have looked at the stuff you describe above (Sub-dividing beams,
 page 60/70 in the manual). It seems that beatLength assumes that
 subdivisions should happen on multiples of this time values. This does
 not work with a meter beaming like 3+(2+2) or (2+1)+(2+2). See code
 below - it seems that this 3 causes problems.

Yes, this is a known limitation of the beam subdividing.  It is only
implemented for beatLength adjustments.

Personally, I don't like using beatLength for beam subdivision.  To me,
beatLength should have one meaning only -- the numerator of the time
signature.

 
 The auto-beaming model is perhaps too crude for subbeaming all these
 meters - in some, a trick might do.

It's not the auto-beaming model, but the beam-subdividing model that is too
crude.  And that is unfortunate, because I know of no way to do a manual
beam subdivision.

But there has been a proposal floated to fix this, so maybe it will be
improved

Carl



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


Re: subdivideBeams broken?

2009-06-21 Thread Carl D. Sorensen



On 6/21/09 4:25 PM, Mark Polesky markpole...@yahoo.com wrote:

 
 
 Carl D. Sorensen wrote:
 
 By default, beatLength is the numerator of the time signature.
 
 Don't you mean denominator? I would call the numerator beatCount
 or something. Haven't followed this thread, just wanted to make
 sure a misunderstanding wasn't being propagated.

Yes, that's what I mean.  Thanks for clarifying.  Sometimes I engage my
fingers before my brain works properly, if that's possible

Carl

 
 - Mark
 
 
 
  



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


Re: Petrucci-like spacing?

2009-06-19 Thread Carl D. Sorensen



On 6/18/09 8:45 AM, Laura Conrad lcon...@laymusic.org wrote:

 Carl == Carl D Sorensen c_soren...@byu.edu writes:
 
 Carl Does this seem at all promising?
 
 Yes, but there's still the problem of extra space at the barline.  I
 tried Michael's solutions and doing nothing at all and there's still
 extra space after the 4th whole note.
 
 Carl How about this?
 
 Carl \relative c'' {
 Carl   \key f \major
 Carl \cadenzaOn
 Carl g1*1/4 bes1*1/4 a1*1/4 g1*1/4 g1.*1/6 c4 bes4 c1*1/4
 Carl }
 
 Carl I think that gets rid of the extra space.
 
 Yes, it does. 
 

Here's the code defining petrucciSpacing:

petrucciSpacing = 
#(define-music-function (parser location music) (ly:music?)
Set effective spacing of all notes to 1/4
(music-map (lambda (m)
(if (eq? (ly:music-property m 'name) 'NoteEvent)
(let*
 ((current-duration (ly:music-property m 'duration))
  (current-log (ly:duration-log current-duration))
  (current-length (ly:duration-length current-duration))
  (current-dotcount
   (ly:duration-dot-count current-duration))
  (new-factor (ly:moment-div
   (ly:make-moment 1 4)
   current-length))
  (new-numerator (ly:moment-main-numerator new-factor))
  (new-denominator
   (ly:moment-main-denominator new-factor)))
 (set! (ly:music-property m 'duration)
  (ly:make-duration
   current-log
   current-dotcount
   new-numerator
   new-denominator))
 m)
m))
  music))

\relative c'' {
  \key f \major
\cadenzaOn
\petrucciSpacing {
  g1 bes 1 a1 g1 g1. c4 bes4 c1 \bar ||
}
}


HTH,

Carl



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


Re: RFC: new vertical layout engine

2009-06-15 Thread Carl D. Sorensen



On 6/15/09 2:37 PM, Jonathan Kulp jonlancek...@gmail.com wrote:

 Joe Neeman wrote:
 I've started working on a new system for doing vertical layout in one
 pass (ie. positioning and stretching the systems simultaneously). This
 should give better default behaviour than the current code and it should
 also allow easier and more useful overrides. I plan to merge the code
 after 2.14 is released, so it should appear in the 2.16 stable version.
 The code is currently in the dev/jneeman git branch. It basically works
 (I hope), but it is missing a lot of previously existing functionality.
 
 Thanks so much for working on this, Joe!  I'd like to try it out,
 but I've never dealt with other branches of the source code.  Can
 I have this branch exist alongside the master branch, and compile
 it separately, creating a different binary that includes your new
 stuff?  I could also set up a new virtual machine and just get
 your code without the master.
 
 Jon
 --
 Jonathan Kulp
 http://www.jonathankulp.com
 
 
 
jon, 

you can checkout any branch you want, build it, and work with it.

Carl




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


Re: Problems regarding figured bass

2009-06-14 Thread Carl D. Sorensen



On 6/14/09 3:38 AM, Reinhold Kainhofer reinh...@kainhofer.com wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Hi all,
 I'm running into several problems with figured bass while writing another
 large
 orchestral piece. Attached is a sample file highlighting these issues:
 
 1) How can I add a figure above a rest? It works for skips, but a figure
 assigned to a rest simply isn't printed at all... (see first vs. second
 measure, where the same figured bass input is used!)
 It works if I use \new FiguredBass for the figured bass, but I need the
 figures
 in the staff, since otherwise they are printed below and they align
 vertically,
 causing them to be too far away from the staff in most places.

Have you tried ignoreFiguredBassRest?
 
 2) The figures don't collide with the notes themselves, but they collide  with
 the articulations (trills, accents, staccati, etc.) How can I avoid this?

Extra-offset?

 
 3) How can I draw a figure extender without an explicit starting figure (I
 think
 this means that the normal default triad should be held)? If I'm using
   s4 _ _ _
 then I only get a warning message:
 Programmierfehler: must have Item for spanner bound of BassFigureContinuation

Make an explicit starting triad with 'transparent = ##t ?

I haven't tried any of these, but based on my earlier playing with figured
bass, this is where I'd go.

HTH,

Carl



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


Re: Lilypond and Jazz chords

2009-06-13 Thread Carl D. Sorensen



On 6/12/09 9:10 AM, Tim McNamara tim...@bitstream.net wrote:

 
 
 On Jun 12, 2009, at 1:28 AM, Tao Cumplido wrote:
 
 I think it's great that you did this.  Have you put this on LSR?
 
 Thanks. I haven't put this on LSR yet because the function hasn't
 been much tested yet. Maybe I should have done anyway.
 When the function is updated I will upload it there.
 
 Perhaps we should consider adding this to the distribution.
 
 What exactly do you mean? To which part yould you add it?
 
 Ummm.  Here is a question of software philosophy.  Should there, like
 some computers languages, be many ways to do something or should
 there only be one?  In my opinion, in the long run it makes it harder
 to learn to use something like LilyPond if there are six ways to do
 the same thing.  The documentation becomes more difficult to write
 and to maintain, it becomes harder for new users to learn how to use
 the software, and as the software accretes ways to do things the
 package gets bigger and easier to break.  LilyPond .ly syntax is a
 programming language itself and the clearer and more specific the
 rules are for its operation, the simpler and more reliable its use.
 
 I think that there should be only two ways to enter chords (at least
 in Western music notation systems):  by putting in the notes to be
 placed on the staff or by entering the text name of the chord in a
 single standardized, sensible way.  Once we start adding ways to
 engrave chords using the markup or lyric functions we are heading
 towards chaos IMHO.

I agree with you, if what is wanted is chord entry.  But Tao doesn't care
about chords, he only cares about chord names.  And so a new type of entity
can be created, which isn't a chord, but instead a lyricChordName.

lyricChordNames can be treated in a separate section of the documentation.
They are displayed in a Lyrics context, not a ChordNames context.  And they
give the user tremendous flexibility to display whatever the user wants to
display for chord names.

Personally, I would never use lyricChordNames.  I agree with you that chords
are groups of notes, and we should not lose sight of that.  And with your
help, we should be able to rewrite the chordmode and ChordNames
functionality to support that usage.

But there is a (to me) surprisingly large contingent of users who claim that
there is no well-defined connection between chord names and chord notes, and
that they want total control over the symbols to be displayed.  And the
lyricChordNames functionality is a way to get transposable chord names for
people who are in that camp.

I don't think it's a problem to have multiple clearly-defined modes.  That's
why I think it may be feasible to implement Tao's suggestion.

Thanks,

Carl

 
 
 



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


Re: Petrucci-like spacing?

2009-06-13 Thread Carl D. Sorensen



On 6/8/09 6:15 PM, Laura Conrad lcon...@laymusic.org wrote:

 Carl == Carl D Sorensen c_soren...@byu.edu writes:
 
 Carl Here's my attempt to get the spacing you're looking for.  I've
 Carl done it manually, but if you like it, I think that I can write
 Carl a music function \petrucciSpacing{} that will generate it
 Carl automatically.
 
 Carl What I've done is to multiply each note by a value necessary
 Carl to make its final duration equal a 1/4 note.
 
 Carl \relative c'' {
 Carl   \key f \major g1*1/4 bes1*1/4 a1*1/4 g1*1/4 d'1.*1/6 c4 bes4
 c1*1/4
 Carl }
 
 Carl Does this seem at all promising?
 
 Yes, but there's still the problem of extra space at the barline.  I
 tried Michael's solutions and doing nothing at all and there's still
 extra space after the 4th whole note.

How about this?

\relative c'' {
  \key f \major
\cadenzaOn
g1*1/4 bes1*1/4 a1*1/4 g1*1/4 g1.*1/6 c4 bes4 c1*1/4
}

I think that gets rid of the extra space.

Carl



petrucci-test-2.png
Description: petrucci-test-2.png
___
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user


Re: Lilypond and Jazz chords

2009-06-12 Thread Carl D. Sorensen



On 6/12/09 12:28 AM, Tao Cumplido tao_lilypondu...@gmx.net wrote:

 I think it's great that you did this.  Have you put this on LSR?
 
 Thanks. I haven't put this on LSR yet because the function hasn't been much
 tested yet. Maybe I should have done anyway.
 When the function is updated I will upload it there.
 
 Perhaps we should consider adding this to the distribution.
 
 What exactly do you mean? To which part yould you add it?

We could possibly add a lyric-chordnames.ly file that would include the
functions necessary to create chordnames according to your scheme.

Carl



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


Re: Trouble with convert-ly

2009-06-11 Thread Carl D. Sorensen



On 6/11/09 4:36 PM, Father Gordon Gilbert fatherg...@gmail.com wrote:

 Hi Bertalan,
 
 Looking in jEdit plugin options, the line which shows were the program and
 convert-ly are shows /usr/bin .  And Lily fires up just fine, so you'd think
 convert-ly should work as well.  I did 'which convert-ly' and it showed
 /usr/bin as well.
 

Have you done 'which convert-ly.py', or 'which convert-ly'?  Maybe there
shouldn't be a .py extension for convert-ly in /usr/bin?  And Jedit has the
.py extension in it.

HTH,

Carl



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


Re: Lilypond and Jazz chords

2009-06-10 Thread Carl D. Sorensen



On 6/10/09 2:03 AM, Tao Cumplido tao_lilypondu...@gmx.net wrote:

 But as I said before, if anybody wants to create a chordname input mode
 that
 takes a root, and arbitrary name string, and an optional added bass,
 they're
 welcome to do so.
 
 http://lists.gnu.org/archive/html/lilypond-user/2009-02/msg00293.html
 
 The input-mode is a little constructed but it works.

Right, but this input mode gives chords as lyrics, not as ChordNames.  It's
certainly a way to accomplish what you want, and I don't want to minimize
the benefit of your work.

I think it's great that you did this.  Have you put this on LSR?

Perhaps we should consider adding this to the distribution.

Thanks,

Carl



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


Re: Issues compiling multiple voice drum midi

2009-06-10 Thread Carl D. Sorensen



On 6/10/09 8:16 PM, hendr...@umn.edu hendr...@umn.edu wrote:

 This issue may be too elementary for this mailing list or may have already
 been addressed, however I cannot find answers in digging through the
 archives and am not sure where to ask more basic questions. If I need to be
 re-directed to another area please don't feel afraid to tell me to go away,
 i'd just appreciate a little push in the right direction.

No, this is the right place.  You'll find the -user group is very helpful, I
think.

 
 The issue I'm having is making a midi out of a piece of drum music that
 contains two voices. I'm quite sure that the problem would persist in
 non-percussion music but I don't have experience trying that. I can compile
 a midi file from code that contains no voice voice tags, but once I make 2
 voices it compiles a midi file with no sound. To use the example in the
 manual:
 
 \score {
  \new DrumStaff 
\new DrumVoice = 1 { s1 *2 }
\new DrumVoice = 2 { s1 *2 }
\drummode {
  bd4 sn4 bd4 sn4
  
{ \repeat unfold 16 hh16 }
\\
{ bd4 sn4 bd4 sn4 }
 
}
 
 \midi { }
 }
 
 When compiled as a PDF it will correctly make two measures of drum music
 one being: \drummode { bd4 sn4 bd4 sn4 .. }
 
 and the next:
  { \repeat unfold 16 hh16 } \\ { bd4 sn4 bd4 sn4 }
 
 However, when compiled as a midi it will only make the first measure of
 music bd4 sn4 bd4 sn4. It does not leave empty space where the next
 measure would be, it simply does not compile it. Is there something I'm
 missing or is this a bug?

Looks like a bug to me, and it still exists in 2.13.1.  And it's
problematic, since the example is still in the manual...

However, you can use the explicit polyphony, and it will work.

up = \drummode { \repeat unfold 16 hh16}
down = \drummode { bd4 sn4 bd4 sn4 }
\score {
  \new DrumStaff 
   \new DrumVoice { \voiceOne {
 \drummode { s1 }
 \up
   }
   }
   \new DrumVoice { \voiceTwo {
 \down
 \down
}
}
  
\layout{}
\midi{}
}


 
 
 I am currently using lilypond version 2.10.33 as the manual for 2.10 is the
 only one I can find instructions for entering percussion in. Perhaps this
 has been changed in the updates of the language, does it compile for any
 one else?

Please use 2.12 (or 2.13).  Both the code and the docs are better.  You can
read about percussion in 2.12 at

http:://lilypond.org/doc/v2.12/Documentation/user/lilypond/Percussion



HTH,

Carl



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


Re: Lilypond and Jazz chords

2009-06-09 Thread Carl D. Sorensen



On 6/9/09 9:16 AM, Jean-Alexis Montignies j...@sente.ch wrote:


 
 You can find an example of a chord notated as 'phrygian' (well it's more a
 modal indication, but that's what the composer Gary Peacock intended) in the
 lead sheet for Vignette.
 More arguments for using names: Alt is much more easy to write and read, less
 error prone than: 7.3-.5-.9-.11-.13-

So if Alt is always (or primarily) 7.3-.5-.9-.11-.13- we should add an alt
modifier to LilyPond.  Then, we could say c:alt, and get just what the
composer intends.  And then we should have the ChordNames context generate
CAlt.

I'm not arguing that the list of modifiers is currently complete or
sufficient.  Certainly we could add modifiers to make things easier.  I
haven't pursued that idea yet, because I haven't needed it for my work.

But as I said before, if anybody wants to create a chordname input mode that
takes a root, and arbitrary name string, and an optional added bass, they're
welcome to do so.

Carl



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


Missing jazz chord modifiers

2009-06-09 Thread Carl D. Sorensen
In our discussion about chord names, Jean-Alexis pointed out that we are
probably missing some modifiers in our chord mode input.  He pointed out one
example:

alt: 7.3-.5-.9-.11-.13-

What are some other modifiers that should be added, in your opinion?
Remember that m7b5 doesn't qualify as a modifier, because modifiers must be
only alphabetic.  halfdim could qualify as a modifier.

Please let me know what modifiers you'd like to have, as well as the pitches
that the modifier should produce, and we'll see if they can be added.

Thanks,

Carl



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


Re: Missing jazz chord modifiers

2009-06-09 Thread Carl D. Sorensen



On 6/9/09 11:16 AM, lasconic lasco...@gmail.com wrote:

 
 
 maybe bass ?
 for removing third and fifth and keeping the root only?

Does this mean that you'd like to have a one-note chord?  I've never seen
this before in notation (but that doesn't mean too much).

If you do want a one-note chord, I'd prefer to use root instead of bass;
we already have a modifier for changing the bass note of a chord (/), and I
think having two different bass modifiers would be confusing.

Under this notation, c2:root would produce a chord whose notes were only C,
and whose name is what?

Thanks,

Carl



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


Re: translation of the doc into italian

2009-06-09 Thread Carl D. Sorensen



On 6/9/09 10:39 AM, Federico Bruni brunol...@gmx.com wrote:

 Hi all,
 
 as far as I can see there is not an italian documentation for lilypond.
 
 I'd like to help with that, could you please tell me how can I contribute?
 If other italians want to join, either for just proofreading or
 translating also, please speak up.
 
 I can imagine that it's a demanding work, but I'm enthusiast about
 lilypond and really motivated to contribute.

Great!

John Mandereau is the translation meister.  I've copied him on this reply.

The first step toward developing a translation is to read the Translation
section of the Contributors' Guide.  You'll find that here:

http://lilypond.org/doc/v2.13/Documentation/devel/contrib-guide/Translating
-the-documentation

It gives you the instructions necessary to start translating.  If the
instructions aren't clear, ask questions on the lilypond-devel list; this
will help us update our Contributors' Guide.

I hope this helps you get started.  Welcome to LilyPond contribution!

Thanks,

Carl



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


Re: Lilypond and Jazz chords

2009-06-02 Thread Carl D. Sorensen



On 6/2/09 3:55 AM, Jean-Alexis Montignies j...@sente.ch wrote:

 Hi there, as a jazz player I would like to share my input.

Thanks for sharing, Jean-Alexis.

 
 What I need in scores is really chord names.
 The chord name denotes the intent of the composer and is much subject
 to interpretation.
 
 Some examples:
 If you have a dominant chord, you write G7. Most of the time, the
 pianist will not play the 5th and depending on the context will play a
 9th or a flattened 9th.
 If you write G7b9, it just means that if you play a 9th, you should
 play a flattened one (probably the melody have a flattened 9th).
 In the real book, most 7b5 chords should really be written 7#11, but
 this is another story.
 I found a score where a chord was named 'phrygian'.
 
 The problem I ran when i wrote chords in Lilypond:
 
 1) I had some difficulties to write the Alt chords (for me it's based
 on the superlocrian scale 1 2- 2+ 3 4+ 6- (or 5+) 7-)  because the
 scale has two seconds. (Note that the diminished scale cannot be
 written for now with the chord notation, if you ever want to write a 8
 note chord ;) ).

This an issue in chord input mode, and should be reported to bug-lilypond as
an enhancement request.  For you, the limitation of only one instance of
each step in a chord is a limitation.

 2) There no way to write N.C. : no chord (wouldn't the use of R, r and
 s make sense in the chord mode?)

N.C. is implemented for r in chordNames context starting with 2.13.1.  It
will be available in the next development version.  Support for generating
N.C. with R is planned.  I don't think that s should generate N.C.; s means
don't output anything.

 3) I had to use some tricks for chords that last on several measures
 for the symbol not to repeat on each measure.

\set ChordChanges = ##t is all that it takes.

 4) I would have liked to use parenthesis around the column for chord
 extensions like in most jazz charts. I used brackets instead.

I hope we'll be able to implement this, but if we don't, remind us again.

 
 Lilypond of other programs will never be able to interpret notes as
 chords (even humans can't do that because there are always ambiguities).
 
 I think the more sensitive approach for pop and jazz is a chord
 library with a string as input (maj7) and as output a notation as
 markup for chord symbol, optionally as a realisation as notes or chord
 diagram (could even have options to select or override the realisation).

That's what we have in essence with our current chordmode.  The string has
some specific syntax, and it provides realization as notes, chord diagrams,
and chord names.  But the chord names functionality isn't what we want right
now.

 
 I myself need only the chord symbol. Such a simple model is in my
 opinion simple to use, customizable and extends easily to other
 musics. For me the chord name is more semantics than just notes.
 
 You'll find my current chord exception list below, note that i've used
 the unicode chars for the flat and sharp before the extensions as it
 gives a very natural layout in this case.

Thank you for this exception list.  It provides a nice reference.

The major problem with an exception list is that it doesn't handle slash
chords; I hope to be able fix that.


Thanks,

Carl



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


Re: Lilypond and Jazz chords

2009-06-01 Thread Carl D. Sorensen



On 6/1/09 12:50 PM, Grammostola Rosea rosea.grammost...@gmail.com wrote:

 Tim McNamara wrote:
 
 On Jun 1, 2009, at 4:13 AM, Tim Rowe wrote:
 
 2009/6/1 Carl D. Sorensen c_soren...@byu.edu:
 
 You are welcome to pursue this, if you are interested in it.  It is
 not my
 interest.
 
 I think it shows the impossibility of what you are trying to achieve,
 at least in the completely general case, although pushing the
 boundaries closer to that general case is valuable of course. Beyond
 trivial cases, a combination of notes does not have /a/ name, it has
 many names depending on the musical context.  For jazz chords, the
 chord notes and the chord names really need to be separated (perhaps
 an optional name following the notes) unless the software can
 understand the musical context better than a lot of musicians. Or just
 stick with chord mode.
 
 Particularly when entering the notes and the root is not the chord
 name.  For example, a chord I saw in a Pat Martino chart would have
 included:
 
 d des fes aes
 
 which was written as Dbmin/D.  I have no idea how one would make
 LilyPond properly interpret slash chords or compound chords from note
 entries.  

As far as I can see, there is very little hope for LilyPond making the right
decision about this chord entered in note mode.  The first note is not the
root of the chord, so it would require substantial computation time to try
to identify the chord properly (and there's no guarantee that the proper
chord identification is unique, based upon just the set of notes).  I'm not
even proposing to *try* to attack this problem.

As far as my current plan goes, this chord would be identified as a D chord
of some type, as is the current practice in LilyPond.  If the root and
inversion have not been identified (which they will not be when chords are
entered in note mode), then the first note in the chord is identified as the
root, which gives weird chord names.


 Rendering chords written as chord names (des2:m5/d) would of
 course be simpler.

Yes, and that functionality is not currently as strong as we'd like it to
be, I think.  That's what I'm proposing to rework, when I get the chance.

 
 I agree with this.
 
 Couldn't there be an 'automatic chord mode' and an 'mode which just
 display the chord names', not the notes?
 

What do you mean by 'automatic chord mode', and  'mode which just displays
the chord names'?

We currently have a context which just displays the chord names.  It's
called ChordNames.

We *don't* have a mode which just *accepts* chord names.  We have a mode
(chord mode) that accepts a root, a modifier, a maximum chord step, and can
add, remove, and modify chord steps, including moving a pitch to the bass or
adding a pitch to the bass.  This mode does not use chord names per se,
because chord names tend to be ambiguous (all one needs to do is look at the
variety of names for a given chord as defined by a set of pitches to see
this).  Parsers tend not to deal well with ambiguities, so what we have is a
completely non-ambiguous input format.  Someone who understands the
chordmode input format can look at a chordmode expression and determine
exactly what pitches are intended to be included in the chord.

A chordnamemode *input* mode has been proposed a couple of times.  This mode
would take only a root (and optionally, a slash or alternate bass note), and
everything else about the chord would be in the form of a markup.  For
american jazz chords, this functionality seems to be feasible (but it
couldn't handle the german practice of making minor chords have a lower case
root name, instead of an upper case root name for a major chord).  But I do
not have the expertise to implement such a mode, and I'm not really
interested in spending my time to develop such a mode.  For somebody who is
familiar with the parser, it may not be a huge deal to implement such an
input mode.   

If we had such a mode, we could add properties to a ChordEvent, I think we
could add the necessary properties to store the chord name information that
was generated by the input.  And the ChordNames context could be modified to
display those (except that I'm not sure how slash notes would be handled;
but I would guess it's possible to do so).

I guess that the bottom line to this ongoing request for a chord name
*input* mode may be able to be implemented, but it will likely take somebody
who is interested in it deciding to put in the time to make it happen, like
Marc has done with tablature.  Discussions about how it might work, what the
input syntax should be, etc. can be held, but they will remain just
interesting reference material until somebody decides to do something about
it.

Thanks,

Carl



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


Re: Problems with Piano Staff Template

2009-06-01 Thread Carl D. Sorensen



On 6/1/09 1:38 PM, Jonathan Kulp jonlancek...@gmail.com wrote:

 Mats Bengtsson wrote:
 
 
 Mark Austin wrote:
 Thanks James. Works a treat now. However, this means the error is in
 the template in the Learning Manual, since I copied it straight over.
 
 The first few lines of the first \score block should be:
 
 \score {
   \new PianoStaff = PianoStaff_pf 
 \new Staff = Staff_pfUpper  \global \upper 
 \new Dynamics = Dynamics_pf \dynamics
 \new Staff = Staff_pfLower \global \lower 
 \new Dynamics = pedal \pedal
 
  
 Yes of course! Carl or John, could you fix this in LSR and in the GIT copy?
 A subsidiary question. What does the second \score block do?
  
 
 Ok I fixed this in LSR.  Does that mean it will show up properly in the
 docs next time they're recompiled, or do I need to fix it somewhere else
 as well?

By fixing it in LSR, when makelsr.py is run, the new versions will get into
the docs, IIUC.

Thanks,

Carl




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


Re: Lilypond and Jazz chords

2009-06-01 Thread Carl D. Sorensen



On 6/1/09 8:56 PM, Tim McNamara tim...@bitstream.net wrote:

 
 
 On Jun 1, 2009, at 2:33 PM, Carl D. Sorensen wrote:
 
 A chordnamemode *input* mode has been proposed a couple of times.
 This mode
 would take only a root (and optionally, a slash or alternate bass
 note), and
 everything else about the chord would be in the form of a markup.  For
 american jazz chords, this functionality seems to be feasible (but it
 couldn't handle the german practice of making minor chords have a
 lower case
 root name, instead of an upper case root name for a major chord).
 
 Carl succinctly illuminates another problem, which is that LilyPond
 works with many different musical systems.  I am only familiar with
 what he calls American jazz chords and would be out to sea if a
 German chart was placed in front of me- or one of the many other
 notation systems with which I am unfamiliar.  Heck, I am out to sea
 often enough with American jazz charts!  Any changes to the chordname
 function would need to be context-sensitive to the needs of many
 musical systems.
 
 Would it be feasible to make differences in chord naming conventions
 part of language-specific files, like \include english.ly or \include
 german.ly etc.?  Or does that just end up resulting in multiple
 exceptions and complicating things immensely?

I think this idea is interesting, but I would be opposed to it.  I use
nederlands (default) note names, but I want American chord names.

As long as we have a relatively simple command to change chord name modes,
I think we're OK.

Carl



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


Re: Better MIDI

2009-06-01 Thread Carl D. Sorensen



On 6/1/09 5:29 PM, Peter Chubb lily.u...@chubb.wattle.id.au wrote:

 
 
 Hi,
 
   I've put up a page on how to get more realistic sounding MIDI output
   from current LilyPond, along with the scripts and scheme code used, at
   http://www.nicta.com.au/people/chubbp/articulate

Peter,

I haven't had a chance to look at your code, since I don't have a login to
your server, and it wasn't attached to your email to the list.

The improved MIDI sounded good to me.  I'd like to get it into the
distribution.

As a first step, it could be included in an optional add-in.  The way to
make it work is probably to first split your scheme and lilypond code.

I'd recommend that you put your scheme code in a new file that could be
placed in the scm/ directory, perhaps something
like articulation.scm.

And then you'll have your lilypond syntax stuff in articulation.ly file that
can be placed in the ly/ directory and included in a lilypond file.

Then, you can post your articulation.scm and articulation.ly files on the
lilypond-devel list, where it will be reviewed by the experts.

 
   It has before-and-after MIDI samples to listen to, and a full
   description of what the script does and how to use it.
 
   Is there any way that the scheme code can be distributed with
   LilyPond?  It's fairly useful now, but could do with going over by
   some real experts for improvement. In particular I'd like to get rid
   of the double pass over all the notes (first to find out what to do
   then to do it), and the hacked up communication between the two
   passes.  I'd also like to do something about trills and turns with
   alterations, and do a better calculation for trill duration.

Sounds great.  The best way to get a review is to post code on -devel.

Thanks,

Carl



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


Re: Lilypond and Jazz chords

2009-06-01 Thread Carl D. Sorensen



On 6/1/09 1:45 PM, lasconic lasco...@gmail.com wrote:

 
 
 Hi,
 Just in case it can be helpful, someone (Karl) post a pdf he wrote on
 MuseScore (http://www.musescore.org) mailing list about chord name display.
 Musescore is a free GPL WYSIWYG scorewriter (with lilypond export
 capabilities)
 Maybe it can be helpful to your current and future work on chord names
 engraving for light music. Here is the discussion thread:
 http://n2.nabble.com/Setting-file-associations-for-Windows-td2729864i20.html#a
 2859233
 
 Here is the link to the pdf :
 http://www.njonjo.net/chordfonts/chordfonts.pdf
 

Thank your for this link.  It is always helpful to see what other people
propose for standards.

Personally, I don't like the look of this proposed standard.  I'm sure it
could be implemented in LilyPond, but I have seen other layouts that I find
more pleasing than this one.

Thanks,

Carl



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


Re: Lilypond and Jazz chords

2009-05-31 Thread Carl D. Sorensen



On 5/30/09 10:55 PM, Brett Duncan bdd1...@bigpond.net.au wrote:

 Carl D. Sorensen wrote:
 I assume that there would still have to be some means of creating
 exceptions. If someone wants chords named mainly in the Real Book style,
 but with minors notated slightly differently ( Cm / Cmi / C- ) for
 example, would they find themselves having to put together a large list
 of exceptions to get their preferred style? Or would there be some other
 way of 'tweaking' just that aspect of how chord names are displayed?
 
 I haven't done it yet, so I don't know.
 
 But I imagine we can have a property minorSymbol which could have values
 like \markup {m}, \markup {mi}, \markup {-}, or 'lowerCaseRootName
 
 Then a user could specify the markup to be used to indicate a minor, etc.
 
 Sounds good.
 
 Right now we have a naming problem, separate from the display problem.  If
 we can get the code to recognize that we have a Ebmaj7b5, then we can figure
 out how to display it in a way that the users will like.  Right now, we
 haven't had much luck with anything but exceptions in terms of getting chord
 names.
 
 Given that I have only ever used \chordmode with ChordNames, I hadn't
 noticed the problem, but having done a little test, I can see what you
 mean. The chord d f aes c produces a chord name of Cb6/sus4/sus2!?
 Bizarre!
 
 Which scheme file processes the chord to produce the name?

scm/chord-names.scm, IIRC.

CarL



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


Re: Lilypond and Jazz chords

2009-05-31 Thread Carl D. Sorensen



On 5/31/09 7:34 AM, Johannes Schöpfer j...@schoepfer.info wrote:

 Hi,
 
 As I already said some time ago when I made my own chordnames functions, I
 still believe chordnames should be seperated from chords, or at least chords
 shouldn't produce chordnames since it'll never be clear. And the other way
 round there can also occur problems, i.e. with C7alt., how should Lilypond
 know which chord to display then.
 
 Another thing is the exceptions list.
 I think instead of defining some standards (\realbook, etc.) it would be
 easier to just type what you mean, maybe something like c:m7, c:mi7, c:-7
 That way everyone could just type each chordname as they want it to be
 displayed instead of selecting an exception for each from a list.
 
 I have an idea that goes in that direction.
 It would simplify both entry and interpretation:
 
 Basenotes are the only thing really needed to be recognized as note to make a
 chord(meaning just the basenote) transposeable and to get the duration.
 Anything else may be added without interpretation.
 
 Syntax proposal for \chordName:
 Basenote[:optional text] [optional anyextension] [ optional / for
 slash-chords [Basenote ...]]

You are welcome to pursue this, if you are interested in it.  It is not my
interest.

This would require changes to the parser.  I do not have the ability to make
these changes, and I'm not interested in developing this capability.

But if you, or somebody else you can find, is interested in doing this, we
can have the discussion.

Right now there is not chordName input mode.  There is note mode, where we
input chords using the chord construct, and chord mode, where we input
chords with the root plus modifiers.  chord mode is well defined, logical,
and unambiguous, so I don't see a need (or desire, IMO) to change chord
mode.

Right now chordName is strictly an *output* characteristic; a context that
displays chord names based on notes it receives.  It relates notes to chord
names.  That's what I'll be working on.  I'm interested in that, because it
works well with midi, and fretboards, etc.

 
 This would remove any exeptions for chordentry as anything is dispalyed as it
 was entered.
 Displaying the whole chord(es g bes d) interpreted as notes would not be
 possible, but i personally never needed that.
 

My interest is in getting the notes correct, and being able to generate the
names from the notes.  I realize that there are some (like Tao) who just
want names.  I can see that it might be a great contribution to LilyPond to
create a chordname input mode, which could do what you want to have done.
I'd be happy to provide whatever help I could provide to somebody who wants
to do this.

Thanks,

Carl




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


Re: Lilypond and Jazz chords

2009-05-30 Thread Carl D. Sorensen



On 5/30/09 3:21 AM, Brett Duncan bdd1...@bigpond.net.au wrote:

 Grammostola Rosea wrote:
 Do we have an Jazz/pop chord expert on the list (I'm sure he/she exist)?
 And who wants to help with this?
 
 I don't consider myself an expert, but after 20 years of playing with
 various pop, rock and jazz groups, I've got a pretty good idea of what's
 out there as far as chord notation goes, and I'm willing to be part of
 the discussion. I'm also willing to help on the programming side _if_ I
 can get my head around Scheme.
 
 Brett

On 5/30/09 3:32 AM, Tao Cumplido tao_lilypondu...@gmx.net wrote:

  Original-Nachricht 
 
 Do we have an Jazz/pop chord expert on the list (I'm sure he/she exist)?
 And who wants to help with this?
 
 I wouldn't call myself an expert but I do know some display methods for
 chords. I don't know if pop chords differ much from jazz though but if it's
 for sharing knowledge on jazz chords count me in.
 I could make a table with a rough overview of the variations for chord names I
 am aware of and maybe some information on different typographical approaches I
 know of.


My currently-planned starting point for chord naming is

http://www.dolmetsch.com/musictheory17.htm#namechords

If you have any disagreement with this reference, please let me know.

Thanks,

Carl



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


Re: Lilypond and Jazz chords

2009-05-30 Thread Carl D. Sorensen



On 5/30/09 9:53 AM, Grammostola Rosea rosea.grammost...@gmail.com wrote:

 Tim McNamara wrote:
 
 On May 30, 2009, at 9:50 AM, Carl D. Sorensen wrote:
 
 On 5/30/09 3:21 AM, Brett Duncan bdd1...@bigpond.net.au wrote:
 
 Grammostola Rosea wrote:
 Do we have an Jazz/pop chord expert on the list (I'm sure he/she
 exist)?
 And who wants to help with this?
 
 I don't consider myself an expert, but after 20 years of playing with
 various pop, rock and jazz groups, I've got a pretty good idea of
 what's
 out there as far as chord notation goes, and I'm willing to be part of
 the discussion. I'm also willing to help on the programming side _if_ I
 can get my head around Scheme.
 
 Brett
 
 On 5/30/09 3:32 AM, Tao Cumplido tao_lilypondu...@gmx.net wrote:
 
  Original-Nachricht 
 
 Do we have an Jazz/pop chord expert on the list (I'm sure he/she
 exist)?
 And who wants to help with this?
 
 I wouldn't call myself an expert but I do know some display methods for
 chords. I don't know if pop chords differ much from jazz though but
 if it's
 for sharing knowledge on jazz chords count me in.
 I could make a table with a rough overview of the variations for
 chord names I
 am aware of and maybe some information on different typographical
 approaches I
 know of.
 
 
 My currently-planned starting point for chord naming is
 
 http://www.dolmetsch.com/musictheory17.htm#namechords
 
 If you have any disagreement with this reference, please let me know.
 
 The problem with this sort of thing is that there is really no
 standardized nomenclature and there is a lot of personal preference.
 For example, some people like Fmaj7 and others like F-delta (F with a
 triangle), or Dm7b5 versus DØ, etc.  Satisfying all personal
 preferences might be impossible.  However, that reference table looks
 reasonable to my eyes.  My preferences were pretty strongly formed by
 the old Real Book 5th Edition.

F-delta and Fmaj7 are two different ways of displaying a chord named F
major seventh.

On the other hand, Dm7b5 and D0 are two different names for the same set of
notes.  (But both of those names are listed in the Dolmetsch reference for
that set of notes).

 
 There are some chord name exception files that have been written by
 other LilyPond users.  Two of them were generously sent to me by James
 Hammons  and B Duncan.  These could be good references to look at,
 since the chord names look pretty good to me, and might be more easily
 incorporated without a lot of extra work.  Let me know if you want me
 to post them.

That may be a possibility.  However, I think that the exceptions method is a
workaround, rather than a solid means of naming chords.  In particular, I
don't think that the exceptions method will work for slash chords.

 
 
 
 Isn't it possible to give more options and be able to choose an way of
 noticing?
 
 For example
 
 \europe
 
 \vs
 
 \Berklee
 
 \realbook
 
 \fakebook
 


Yes.  That is why I want to separate naming from displaying, as much as
possible.

 
Carl



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


Re: Lilypond and Jazz chords

2009-05-30 Thread Carl D. Sorensen



On 5/30/09 5:15 PM, Brett Duncan bdd1...@bigpond.net.au wrote:

 Carl D. Sorensen wrote:
 My currently-planned starting point for chord naming is
 
 http://www.dolmetsch.com/musictheory17.htm#namechords
 
 If you have any disagreement with this reference, please let me know.
 
 It looks like a good starting point to me - there are a couple of things
 that don't appear that I have seen in published music (stacked
 additions, for example) - I'll make a list.
 
 Isn't it possible to give more options and be able to choose an way of
 noticing?
 
 For example
 
 \europe
 
 \vs
 
 \Berklee
 
 \realbook
 
 \fakebook
 
 
 
 Yes.  That is why I want to separate naming from displaying, as much as
 possible.
 
 Makes sense, but I wonder at how many options would needed - the
 problem, as stated before, is that there is no standard, and every
 publishing house seems to do its own thing, even to the point of having
 different conventions used within the same publishing house.
 
 I have in front of me right now three pieces which I'm currently
 performing with my jazz ensemble, from two different publishers, all
 bought in the last twelve months. While at first glance they appear
 similar (partly because the same ugly font has been used in all three),
 a closer look reveals that there are differences in the way chords are
 named in all three pieces. Whether this comes from the original
 composer, the arranger or the typesetter is not clear.
 
 I assume that there would still have to be some means of creating
 exceptions. If someone wants chords named mainly in the Real Book style,
 but with minors notated slightly differently ( Cm / Cmi / C- ) for
 example, would they find themselves having to put together a large list
 of exceptions to get their preferred style? Or would there be some other
 way of 'tweaking' just that aspect of how chord names are displayed?

I haven't done it yet, so I don't know.

But I imagine we can have a property minorSymbol which could have values
like \markup {m}, \markup {mi}, \markup {-}, or 'lowerCaseRootName

Then a user could specify the markup to be used to indicate a minor, etc.

Right now we have a naming problem, separate from the display problem.  If
we can get the code to recognize that we have a Ebmaj7b5, then we can figure
out how to display it in a way that the users will like.  Right now, we
haven't had much luck with anything but exceptions in terms of getting chord
names.

Carl



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


Re: Lilypond and Jazz chords

2009-05-30 Thread Carl D. Sorensen



On 5/30/09 7:16 PM, Carl D. Sorensen c_soren...@byu.edu wrote:

 Right now we have a naming problem, separate from the display problem.  If
 we can get the code to recognize that we have a Ebmaj7b5, then we can figure
 out how to display it in a way that the users will like.  Right now, we
 haven't had much luck with anything but exceptions in terms of getting chord
 names.

Oops -- obviously I meant Ebm7b5.





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


Re: tablature.ly - please test and comment

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 [...]
 
 Here's one way to do it:
 
 deadNote =
 #(define-music-function (parser location note) (ly:music?)
 (set! (ly:music-property note 'tweaks)
   (acons 'stencil ly:note-head::print
(acons 'glyph-name 2cross
 (acons 'style 'special (ly:music-property note 'tweaks)
 note)
 
 {
   f\4 \deadNote f'\1
 }
 
  
 There is some drawback/difference: the crosses are drawn without
 whiteout, so they look different. Is there a way to change this?

Yes.  Change the stencil so that it is a composite stencil.

  
 Marc, feel free to add this to tablature.ly if you want to.
  
 How should we call this? It should be clear that
 \deadNotes works as expected, and the new function is meant
 to be used inside chord constructs  only.
 \chordNoteDeadNote sounds a bit strange ...

I would recommend \deadNote, since it only applies to the next note.
 
 The matching case for \palmMute, namely
 \chordNotePalmMute seems to be ok for me.


I haven't reviewed the code carefully, but I think that \palmMute should
apply only to the next note, and \palmMuteOn should change all notes to palm
mute notes, or \palmMuteNotes could apply to a whole music expression.
 
 Or just simply use \chordDeadNote /  \chordPalmMute ?

I don't like the \chord* notation because they aren't limited to use in
chords.  They will work for any single note, won't they?

Thanks,

Carl



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


Re: Lilypond and Jazz chords

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 6:10 AM, Grammostola Rosea rosea.grammost...@gmail.com wrote:

 Hi,
 
 In the last months there where some questions about Jazz/pop chords.
 About the notation of the default chords but also about chords with an E
 in the bass, A/E, sus4 etc.
 Some people even posted ways to do it right.
 If I remember well, Carl has said that he was planning to work on the
 chords improvement. How far is this process?

Not at all started.  It's still floating around in the back of my head.  I'm
flying to England in June, with a long layover in New York City, so I may
try to make it happen then.

 
 Maybe it's an idea to brainstorm a bit about how we want Jazz chords to
 be displayed? Maybe some interested people can form a group like the
 'tablature group' does?

I'd welcome people creating documents that describe how chord naming should
work.  I think that there is a two-step process:

1) Get the chord naming right (it's currently broken)

2) Make sure we have sufficient flexibility to accommodate anybody's desired
method of displaying chords (I think this is pretty close right now,
although it may need some tweaking).

Thanks,

Carl



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


Re: tablature.ly - please test and comment

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 1:56 AM, Marc Hohl m...@hohlart.de wrote:

 David Stocker schrieb:
 If I may chime in...
 
 This may just be a matter of editorial taste, but would it be possible
 to make it so the 'X' on in the Tab staff is not the musical glyph
 from Feta, but rather the character 'capital X' from the same font set
 being used for tab numbers? For example, instead of #'glyph-name
 #2cross, use whatever command would call the capital X from
 whichever font tab numbers are set to?
 
 I believe that this looks better on the page than mixing music glyphs
 and text glyphs in the tab staff, particularly where tab numbers and
 muted strings are part of the same chord.
 Hm, in my opinion, this looks not very convincing. I defined
 
 #(define (xx-tab-format str context event)
   (make-whiteout-markup
 (make-vcenter-markup
   (markup X
 
 so the X matches the font and font-size of the numbers.
 I have attached an example.

Have you tried a sans-serif font for both the numbers and the X?

Carl



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


Re: tablature.ly - please test and comment

2009-05-29 Thread Carl D. Sorensen



On 5/29/09 9:20 AM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 
 On 5/29/09 2:05 AM, Marc Hohl m...@hohlart.de wrote:
 
  
 Carl D. Sorensen schrieb:

 [...]
  
 There is some drawback/difference: the crosses are drawn without
 whiteout, so they look different. Is there a way to change this?

 
 Yes.  Change the stencil so that it is a composite stencil.
  
 But how can I find out whether the tweak is called within a normal or a
 tab staff? Within a normal staff, a whiteout should surely be avoided ...

I think you have to do this within the callback, where the context is
available.  Once you have a context, you can see if it's a Voice context or
a TabVoice context.  I'm sure Neil can help with this better than I can.
But if you do a git grep for context, you'll see lots of examples of how to
get information about contexts

  
 
 Marc, feel free to add this to tablature.ly if you want to.
 
  
 How should we call this? It should be clear that
 \deadNotes works as expected, and the new function is meant
 to be used inside chord constructs  only.
 \chordNoteDeadNote sounds a bit strange ...

 
 I would recommend \deadNote, since it only applies to the next note.
  
 The matching case for \palmMute, namely
 \chordNotePalmMute seems to be ok for me.
 

 
 I haven't reviewed the code carefully, but I think that \palmMute should
 apply only to the next note, and \palmMuteOn should change all notes to palm
 mute notes, or \palmMuteNotes could apply to a whole music expression.
  
 Yes, that's how it works now (you can use \palmMute { ... } to treat
 several notes at once, or \palmMuteOn ... \palmMuteOff).
 
  
 Or just simply use \chordDeadNote /  \chordPalmMute ?

 
 I don't like the \chord* notation because they aren't limited to use in
 chords.  They will work for any single note, won't they?
  
 No, the tweaks will work only in chord constructs
 as far as I know, so I should have a pair of functions
 for each feature, i.e.
 
 c4 d \palmMute e f
 
  c \chordPalmMute e g 4
 
 c4 d \deadNotes e f
 
  c \chordDeadNotes e g 4
 

Oh, I wasn't expecting that the new function wouldn't work outside of chord
constructs.

How about using the same function both inside and outside of the chord
constructs, and just including a check to see if the argument is a
NoteEvent.  If it is, use the \tweak method, and if it's not, use the
existing method?

I haven't tried this out, but I think it could be made to work, and if it
could, then it would greatly simplify things for the users.

HTH,

Carl



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


Re: tablature.ly - please test and comment

2009-05-28 Thread Carl D. Sorensen



On 5/28/09 1:21 AM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 [...]
 
 I think it's better to have the duplication and the ability to switch
 between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication,
 and have \tabFullNotation be a non-undoable setting.
  
 As you can see, \tabFullNotation works only locally when included in a
 score:
 
 \version 2.13.0
 \include tablature.ly
 
 test = \relative c { c4 d e f g a b c }
 
 \score { \new TabStaff { \clef tab \test } }
 
 \score { \new TabStaff { \clef tab \tabFullNotation \test } }
 
 \score { \new TabStaff { \clef tab \test } }
 
 So according to Neil's proposals, I got rid of the \tabNumbersOnly for
 sake of clarity.
 

OK, I guess.  I still don't like having a command that is not undoable.  I
can't think of a reasonable  application where this would cause a problem,
but LilyPond users regularly try things that I don't consider reasonable.

I guess that we can deal with the problem later if it ever shows up.

I'll publish the patch to rietveld and obtain comments.

Thanks,

Carl



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


Re: tablature.ly - please test and comment

2009-05-28 Thread Carl D. Sorensen



On 5/28/09 7:22 AM, Julian jul...@casadesus.com.ar wrote:

 But still not within the tablature staff
 At the moment, I don't know how to manage this.
 
 I found it,
 
 
% Dead Note
\tweak #'stencil #ly:note-head::print
\tweak #'glyph-name #2cross
\tweak #'style #'special
f'\1
% End of Dead Note
f\4
 4
 
 Dead note is applied only to f'\1 as we expect, and X is displayed on
 both,
 staff and tabStaff.
 
 Now i don't have idea how to make it in a lilypond function :) to use
 \chordNoteDead instead of add all tweaks lines...
 however it don't matters, now we know that it is possible to show X in tab too
 by notes instead of chord.


Here's one way to do it:

deadNote =
#(define-music-function (parser location note) (ly:music?)
(set! (ly:music-property note 'tweaks)
  (acons 'stencil ly:note-head::print
   (acons 'glyph-name 2cross
(acons 'style 'special (ly:music-property note 'tweaks)
note)

{
  f\4 \deadNote f'\1
}


Marc, feel free to add this to tablature.ly if you want to.


HTH,

Carl




 
 Thanks for your patience.
 
 
 
 



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


Re: tablature.ly - please test and comment

2009-05-28 Thread Carl D. Sorensen



On 5/28/09 6:28 PM, David Stocker dstoc...@thenotesetter.com wrote:

 If I may chime in...
 
 This may just be a matter of editorial taste, but would it be possible
 to make it so the 'X' on in the Tab staff is not the musical glyph from
 Feta, but rather the character 'capital X' from the same font set being
 used for tab numbers? For example, instead of #'glyph-name #2cross,
 use whatever command would call the capital X from whichever font tab
 numbers are set to?

Getting an X from the number font is not hard.  The only challenge would
come in setting the cross notehead for the Staff context, and the number
notehead for the TabStaff context.  But this shouldn't be too hard to do, I
think.  Marc is certainly good enough at programming to make it happen  now,
I'm sure.

Carl



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


Re: Tweaking end-of-line time signature?

2009-05-27 Thread Carl D. Sorensen



On 5/26/09 4:03 PM, Trevor Bača trevorb...@gmail.com wrote:
Snip some good comments about this code

 %%% BEGIN #3 PROPORTIONAL SPACING WITHOUT STRICT NOTE SPACING AND WITH  EOL
 ADJUSTMENT %%%
 
 adjustEOLMeterBarlineExtraOffset = #(define-music-function (parser location)
 ()
    #{
   #(define (foo grob)
  (if (= (ly:item-break-dir grob) 0)
     (ly:grob-set-property! grob 'extra-offset (cons 2.8 0)) '() ))
   #(define (bar grob)
  (if (= (ly:item-break-dir grob) 0)
     (ly:grob-set-property! grob 'extra-offset (cons 2.8 0)) '() ))
   \once \override Score.TimeSignature #'after-line-breaking = #foo
   \once \override Staff.BarLine #'after-line-breaking = #bar
    #})

As a stylistic matter, I don't like this definition , because foo and bar
are redefined globally every time adjustEOLMeterBarlineExtraOffset is
called.

I prefer to have foo and bar defined locally:

adjustEOLMeterBarlineExtraOffset =
#(define-music-function (parser location) ()
   (define (foo grob)
 (if (= (ly:item-break-dir grob) 0)
 (ly:grob-set-property! grob 'extra-offset (cons 2.8 0)) '() ))
   (define (bar grob)
 (if (= (ly:item-break-dir grob) 0)
 (ly:grob-set-property! grob 'extra-offset (cons 2.8 0)) '() ))
#{
   \once \override Score.TimeSignature #'after-line-breaking = $foo
   \once \override Staff.BarLine #'after-line-breaking = $bar
#})

Note that in this implementation, we use $foo and $bar inside the #{ #}
construct to refer to a local scheme variable.

Furthermore, it seems to me that writing a function like this that has
embedded constants is less than desirable, because if some different offset
were desired, a new function would need to be written.  I think it would be
better to have

adjustEOLMeterBarlineExtraOffset =
#(define-music-function (parser location offset) (pair?)
   (define (foo grob)
 (if (= (ly:item-break-dir grob) 0)
 (ly:grob-set-property! grob 'extra-offset offset) '() ))
   (define (bar grob)
 (if (= (ly:item-break-dir grob) 0)
 (ly:grob-set-property! grob 'extra-offset offset) '() ))
#{
   \once \override Score.TimeSignature #'after-line-breaking = $foo
   \once \override Staff.BarLine #'after-line-breaking = $bar
#})

and call it with

\adjustEOLMeterBarlineExtraOffset #'(2.8 . 0)

HTH,

Carl



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


Re: tablature.ly - please test and comment

2009-05-27 Thread Carl D. Sorensen



On 5/27/09 2:50 PM, Neil Puttock n.putt...@gmail.com wrote:

 2009/5/23 Marc Hohl m...@hohlart.de:
 Neil Puttock schrieb:
 
 Since none of this works properly (I suspect it will require more than
 Scheme hacking to get everything working), I don't think it's suitable
 for inclusion.
 
 
 
 Hm, I guess you're right - but as a compromise, how about letting the
 \clearTabTieBreaks as a default, because it is working most of the time, and
 when someone needs a more sophisticated tab staff, he has to write a
 separate
 score for the tablature?
 
 I would propose to rename it as
 
 #(define (tie::handle-tied-fret-numbers grob)
       (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
             (ly:grob-set-property! tied-fret-nr 'transparent #t)))
 
 make it default by
 
 \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers
 
 and use this as a kind of starting point for future improvements?
 
 Oh go on then.  As long as you promise to leave out \markTabTieBreaks. :)
 
 I'm concerned about the amount of duplication here; this basically
 repeats all the code in \tabNumbersOnly, which is really something we
 should try to avoid in included files.
 
 
 But how to avoid this? One possibility would be to just get rid of the
 \tabNumbersOnly, because I don't think that tablatures with and
 without stems will ever be mixed together in a file, and when someone wants
 to do so, he can \override everything manually.
 
 I think that's the only option available, since there's no way of
 inserting identifiers into a context definition.

I think it's better to have the duplication and the ability to switch
between \tabNumbersOnly and \tabFullNotation, than to avoid the duplication,
and have \tabFullNotation be a non-undoable setting.

Thanks,

Carl



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


Re: Confused about asterisk notation

2009-05-26 Thread Carl D. Sorensen



On 5/26/09 7:33 AM, David Bobroff bobr...@centrum.is wrote:

 Brandon Olivares wrote:
 Hi,
 One of the tracks starts with this:
 
 s16*259 a' b 16 e' d 16 a, b 16 s16 a b 16 e' d 16
 
 
 The * is a multiplication sign.  s16*259 means skip (i.e. invisible
 rest) a 16th note 259 times.

I'd actually say it a bit different.

s16*259 means create an invisible 16th note rest, with a duration of 259
16th notes.

To my way of thinking, to skip a 16th note 259 times you'd do

\repeat unfold 259 {s16}

It probably doesn't make any difference for a skip, since it produces not
output.  But if you replace s with r, the first construct will produce
one 16th rest, and and second will produce 259 of them.

HTH,

Carl



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


Re: tablature.ly - please test and comment

2009-05-25 Thread Carl D. Sorensen



On 5/25/09 12:13 PM, Julian jul...@casadesus.com.ar wrote:

 
 Hello Marc,
 
 Well at first, english is no my native lang, so sorry for don't speak it well.
 
 I'm the admin of tuxguitar (a tablature editor) project and now i'm trying to
 implement some of these features to the lilypond exporter plugin.
 
 But i'm having some problems, when i try to apply them on only 1 note of a
 beat
 that have more notes.
 
 I'll try to explain them with some examples:
 
 * Dead Notes
 
 I was able to build examples like:
 c4 \deadNotes{ c, c4 } c4 c4
 
 But if i try to set the dead to only 1 note of the beat:
 c4 c, \deadNotes{ c } 4 c4 c4
 
 lilypond throw me:
 ---
 test.ly:324:20: error: syntax error, unexpected '{', expecting DRUM_PITCH or
 MUSIC_FUNCTION or NOTENAME_PITCH
c4 c, \deadNotes
 { c } 4 c4 c4
 test.ly:324:26: error: syntax error, unexpected 
c4 c, \deadNotes{ c }
 4 c4 c4
 test.ly:330:3: error: errors found, ignoring music expression
 ---
 
 So, am i doing something wrong with my sintax, or it is just a non supported
 feature ?
 ( Same thing is happening with palmMute )

I think you can make this work with parallel music, instead of chords.

 c, \deadNotes{ c ]


HTH,

Carl



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


Re: Petrucci-like spacing?

2009-05-25 Thread Carl D. Sorensen



On 5/25/09 10:57 AM, Henning Plumeyer h.plume...@web.de wrote:

 Am 25.05.2009, 02:13 Uhr, schrieb Carl D. Sorensen c_soren...@byu.edu:
 
 There are some issues though - not with Laura's example where no bar lines
 are needed. But when you want bar lines the bars are too full.
 

You can manually add bars, if you'd like.  Use the \bar | command every
place you would like a bar.  But there should probably be a better way to do
it.  What are you trying to achieve?

Carl




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


Re: Line lengths in NR [was Petrucci-like spacing?]

2009-05-25 Thread Carl D. Sorensen



On 5/25/09 4:43 PM, Patrick McCarty pnor...@gmail.com wrote:

 On Mon, May 25, 2009 at 03:26:42PM -0700, Patrick McCarty wrote:
 On Mon, May 25, 2009 at 2:49 PM, Trevor Daniels t.dani...@treda.co.uk
 wrote:
 
 It looks like a whole note but has the duration of a quarter note, when
 LilyPond determines the spacing. If you don't want to add *1/4 for every
 single note, there is a command \scaleDurations to apply this kind of
 scaling for a whole section of music. All this is well described in
 Subsection Scaling durations in 1.2.1 Writing Rhythms in the Notation
 Reference.
 
 The lines in the html version of this section of the
 Notation Reference are significantly longer than any
 other, so long I have to scroll horizontally to read them.
 
 Does anyone else see this, or is it some subtle problem
 with IE?
 
 IIRC, if the line lengths for any pre section are too wide, IE
 recalculates the width of the div to accomodate the longest line on
 the page.  Other browsers don't behave this way (as far as I
 remember).
 
 I suspect the snippet Non-default tuplet numbers in the Tuplets
 section is the culprit.  If the values of #'text are moved to separate
 lines, that should solve the problem.
 
 And here is a patch.


I tried to apply your patch, but I got the following:

sorensen2:lilypond-working Carl$ git am
0001-Docs-Shorten-line-lengths-for-a-snippet.patch
error: cannot read mbox 0001-Docs-Shorten-line-lengths-for-a-snippet.patch
error: cannot split patches from
0001-Docs-Shorten-line-lengths-for-a-snippet.patch

Then I checked out the file
0001-Docs-Shorten-line-lengths-for-a-snippet.patch
It was zero length.

Then I tried saving your email

[PATCH] Docs: Shorten line lengths for a snippet

to a file test.patch.  When I did that, it had MacOS line endings (I'm using
Entourage on the Mac for my email client)

So I copied the text, and cat it to a file.

cat  test2.patch

Now I have unix line endings, so I tried to apply.

Carl$ git am test2.patch
Patch does not have a valid e-mail address.


However the files are modified, so I can commit them  and push, but then it
will be my commit, not Patrick's.

So what am I doing wrong, or how should I do it different?

Thanks,

Carl



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


Re: Petrucci-like spacing?

2009-05-24 Thread Carl D. Sorensen



On 5/24/09 8:56 AM, Laura Conrad lcon...@laymusic.org wrote:

 
 I think so.  There's a lot of stuff where modern transcribers typically
 halve or even quarter the note values, and I'd prefer not to but it's
 problematic with the normal lilypond  spacing. (One reason it probably
 became common is that the same is true of other printing based on 19th
 century engraving practices.)
 
 Whether it makes my website as beautiful as I'm hoping remains to be
 seen, but I'll let you know.
 
 You can see the spacing with Michael's layout on my blog entry for
 today: http://laymusic.org/wordpress/?p=974

Laura,

Here's my attempt to get the spacing you're looking for.  I've done it
manually, but if you like it, I think that I can write a music function
\petrucciSpacing{} that will generate it automatically.

What I've done is to multiply each note by a value necessary to make its
final duration equal a 1/4 note.

\relative c'' {  
  \key f \major g1*1/4 bes1*1/4 a1*1/4 g1*1/4 d'1.*1/6 c4 bes4 c1*1/4
}

Does this seem at all promising?

Thanks,

Carl



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


Re: tablature.ly - please test and comment

2009-05-23 Thread Carl D. Sorensen



On 5/23/09 1:09 AM, Marc Hohl m...@hohlart.de wrote:

 Neil Puttock schrieb:
 2009/5/22 Marc Hohl m...@hohlart.de:
 % for ties in tablature, fret numbers that are tied to should be invisible
 % or -after a line break - put in parentheses. Since this is not (easily?)
 % possible in lilypond, we offer three commands:
 #(define (tie::tab-mark-tied-fret-numbers grob)
 (let* ((original (ly:grob-original grob))
(tied-fret-nr (ly:spanner-bound grob RIGHT))
(siblings (if (ly:grob? original)
  (ly:spanner-broken-into original) '() )))
 
   (if (and (= (length siblings) 2)
(eq? (car (last-pair siblings)) grob))
   ;; tie is split - change fret number color to red and
 print a message
   (begin (display \nSplit tie appears in tablature.)
  (display \nAffected fret number is marked red.\n)
  (ly:grob-set-property! tied-fret-nr 'color red))
   ;; tie is not split - make fret number invisible
 
 Since none of this works properly (I suspect it will require more than
 Scheme hacking to get everything working), I don't think it's suitable
 for inclusion.
 
  
 Hm, I guess you're right - but as a compromise, how about letting the
 \clearTabTieBreaks as a default, because it is working most of the time, and
 when someone needs a more sophisticated tab staff, he has to write a
 separate
 score for the tablature?
 
 I would propose to rename it as
 
 #(define (tie::handle-tied-fret-numbers grob)
 (let* ((tied-fret-nr (ly:spanner-bound grob RIGHT)))
   (ly:grob-set-property! tied-fret-nr 'transparent #t)))
 
 make it default by
 
 \override Tie #'after-line-breaking = #tie::handle-tied-fret-numbers
 
 and use this as a kind of starting point for future improvements?
 
 

Marc,

Have you explored the possibility of calling parentheses-item::print on your
tied fret number?

I don't know if it will work, but it appears it may be possible.  It may
need to be defined public in order to call it.

It's found in scm/output-lib.scm.

I haven't tried it, but it looks to me like it takes a grob and adds
parentheses around it.

Carl




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


Re: \partial at start, but want whole bar at end

2009-05-22 Thread Carl D. Sorensen



On 5/22/09 7:27 AM, Paul Hodges p...@cassland.org wrote:

 Hi all,
 
 I have looked around, but I can't find anything about this in the pdf
 documentation or snippets (v2.12.2):
 
 At the start of my piece, I have \partial for an upbeat.  However, I
 wish to have a full bar (a semibreve in 2/2) at the end of the piece -
 following my source.  However, Lilypond is insisting on having a final
 bar of three beats to match the upbeat at the start - which is blank,
 because I have no more notes.  How can I get rid of this, pretty please?

Just put \bar |. at the end of your last full measure.  See Notation
Reference 1.2.5.

Carl



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


Re: Should sample code in NR build correctly?

2009-05-22 Thread Carl D. Sorensen



On 5/22/09 4:25 PM, Nick Payne nick.pa...@internode.on.net wrote:

 -Original Message-
 From: Patrick McCarty [mailto:pnor...@gmail.com]
 Sent: Saturday, 23 May 2009 8:15 AM
 To: Nick Payne
 Cc: lilypond-user@gnu.org
 Subject: Re: Should sample code in NR build correctly?
 
 On Sat, May 23, 2009 at 07:54:54AM +1000, Nick Payne wrote:
 For example, on p.98 of the PDF version of the 2.12.2 NR the
 following
 example appears about half way down the page:
 
 \repeat volta 2 { c4 d e f }
 c2 d
 \repeat volta 2 { d4 e f g }
 
 If you try to build this using 2.12.2 on Windows you get
 
 error: syntax error, unexpected NOTENAME_PITCH
 
 c2 d
 
 and the output is two separate staves rather than the single staff
 shown
 with the example. The whole thing has to be surrounded by \relative
 c'' { }
 to get the desired output.
 
 The reason I ask is that I remember a post from someone a while ago
 saying
 that the code as shown in the manuals had been used to produce the
 output.
 
 If you click on the image of the musical example, and copy/paste the
 appropriate code, it should compile.
 
 That suggestion only works with the HTML documentation, not the PDF
 documentation. I almost always use the PDF documentation, as I can build an
 easily searchable index across all the different manuals.

Nearly all the examples are in relative mode, meaning they have a
\relative c' {} 

(or some other octave)

around them.  It was a conscious choice to do so.  This convention is
explained in Learning Manual 2.1.4 How to read the manual.

How should it be more prominent?

Carl



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


Re: How to achieve chord stop with ¬

2009-05-21 Thread Carl D. Sorensen



On 5/21/09 1:08 AM, Stjepan Brbot stjepan.br...@zg.t-com.hr wrote:

 
 
 
 M Watts wrote:
 
 There are at least 2 versions in UTF-8; a normal one U+00AC, and a
 full-width one U+FFE2.
 
 To use these within lilypond, do \markup { \char ##x00AC } or \markup {
 \char ##xFFE2 }.
 
 Or, if your file is saved with UTF-8 encoding, you can paste the
 character straight into it.
 
 
 Thanks Marc, but it is not problem with character code. One can insert UTF-8
 correct character ¬ like I did in this message using Character Map tool. The
 issue is with position of this character inside chords line and how to
 insert it easily. There is similar thread about N.C. on this forum. How to
 easily insert N.C. (No Chord). The same story is here.

Stjepan,

First, you should know that this has been fixed in the git sources and will
be available in the next development release.

You can read the documentation about it here:
http://kainhofer.com/~lilypond/Documentation/user/lilypond/Displaying-chord
s.html#Displaying-chords

For clarity, you should be talking about a ChordNames context, rather than a
chords line.  Chords can be displayed in many contexts, including at least
TabStaff, Staff, FretBoards, and ChordNames. I mention this not to complain,
but to try to help you learn a little bit more about LilyPond.  I remember
when I started with LilyPond, all of the LilyPond specific terms like
context were very confusing to me.  Now they make sense.

Anyway, if you can wait for the next development release (which should
probably be available in less than two weeks), you will have this
functionality.

Regards,

Carl



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


Re: Complex chords

2009-05-21 Thread Carl D. Sorensen



On 5/21/09 12:41 AM, Stjepan Brbot stjepan.br...@zg.t-com.hr wrote:

 
 
 
 Tim McNamara wrote:
 
 You need to define exceptions to the way that LilyPond writes
 chords.  One way is to use one of the alternative chord rendering
 methods that you can find in the snippet repository.  You can put
 this into a .ly file and use the \include command to call it when the
 music file is rendered into a PDF.
 
 
 Thanks Tim. It seems that this is exactly what I need but... it does not
 work for me!? I don't know why.

Have you shared your whole file?  This message looks like there was
something before the code you've included that is causing this error.
And the error occurs on line 18 of the input file, but it's line 3 of the
included material.

If you'll share the whole file, I'm sure we can help you.

Carl



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


Re: Complex chords

2009-05-21 Thread Carl D. Sorensen



On 5/21/09 2:54 PM, Stjepan Brbot stjepan.br...@zg.t-com.hr wrote:

 
 
 But this should be the whole snippet code form snippets guide, look at:
 

Yes, but in your file there are apparently 16 lines that come before the
lines you showed in your email.

The line that caused the error is line 2 in your email, and line 18 in your
file.

Carl



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


Re: How to achieve chord stop with ¬

2009-05-21 Thread Carl D. Sorensen



On 5/21/09 2:07 PM, Stjepan Brbot stjepan.br...@zg.t-com.hr wrote:

 
 
 
 Carl D. Sorensen wrote:
 
 Stjepan,
 
 First, you should know that this has been fixed in the git sources and
 will
 be available in the next development release.
 
 You can read the documentation about it here:
 http://kainhofer.com/~lilypond/Documentation/user/lilypond/Displaying-chord
 s.html#Displaying-chords
 
 For clarity, you should be talking about a ChordNames context, rather than
 a
 chords line.  Chords can be displayed in many contexts, including at least
 TabStaff, Staff, FretBoards, and ChordNames. I mention this not to
 complain,
 but to try to help you learn a little bit more about LilyPond.  I remember
 when I started with LilyPond, all of the LilyPond specific terms like
 context were very confusing to me.  Now they make sense.
 
 Anyway, if you can wait for the next development release (which should
 probably be available in less than two weeks), you will have this
 functionality.
 
 
 
 Thanks Carl, I really appreciate your help and hints. I'm not in a hurry.
 I'll wait for the next development release. I just want to emphasize that ¬
 should always go with \set chordChanges = ##t There's no sense to have
 multiple ¬ chars in a row.

Even when the new development release comes out, the character you use will
not be part of it.  The release will have N.C. as the default markup, and
you'll need to change the markup to your character, which should be
relatively straightforward.

As far as the \set chordChanges = ##t, that will be up to the user.

 
 Understanding of contexts are still a little bit strange for me. Also I'm
 not totally sure how the proper lilypond score code structure should look
 like.

I'm not sure what this comment says you're unsure about.  If contexts don't
make sense to you, please try rereading section 3.3 of the Learning Manual.
I generally understand more when I reread it after fighting with scores on
my own for a bit.

 
 Also I must admit that I'd never seen a triangle as a representation for
 maj7 chord until I started to tackle with lilypond and it's strange for me
 that this triangle sign is in default chords naming system.

Apparently this is common in Germany.  We don't use it in the US either.
 
 BTW, is it possible to have the following chord naming system :-)
 
 \croatianChordsE/DCmH/HH#/H#B/B
 

I imagine it is, but it will take some work.  Would you like to try to
implement it?  I'd be happy to give you advice, if you want to try.


Carl




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


Re: missing glissando features (bugs?)

2009-05-20 Thread Carl D. Sorensen



On 5/20/09 9:20 AM, Graham Percival gra...@percival-music.ca wrote:

 On Tue, May 19, 2009 at 11:04:30AM +0200, Mats Bengtsson wrote:
 
 I've played several orchestral pieces where the violin parts include
 glissandi ranging over several strings.
 Mahler Symphony no. 4 comes to my mind, for example. I'm still uncertain
 on exactly how to play it, though, but perhaps the idea is that every
 player does it somewhat differently and the collective effect is what
 the composer is looking for.
 
 Oh, come on!  There's no theoretical maximum frequency of a violin
 string[1].  Just start on the G string and slide up.  ;)
 
 [1]  Assuming a perfectly elastic string, being excited by an
 infitesimally narrow bow, with perfectly-controlled bow speed,
 pressure, and position...
 

Don't forget that the fingerboard also needs to reach all the way to the
bridge!

Carl



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


Re: missing glissando features (bugs?)

2009-05-20 Thread Carl D. Sorensen



On 5/20/09 10:41 AM, Graham Percival gra...@percival-music.ca wrote:

 On Wed, May 20, 2009 at 10:19:47AM -0600, Carl D. Sorensen wrote:
 
 
 Nonsense.  You can push down a string without a fingerboard... ok,
 granted this *really* makes the ideal string calculations
 questionable, since you're changing the tension by quite a bit.
 But it can certainly be done; I've done it many times on the
 cello.
 
 Actually, one book on cello technique book (I think it was
 something like how to play the cello without pain; I read it
 soon after the first time I had tendonitus) actually recommends
 this style of playing for *all* notes.  The claim was that pushing
 was less natural than pulling, and so you should pull the string
 to the left (towards your arm) instead of pushing down (exerting
 force perpendicular to the arm/hand plane).

So I guess if you are using this technique, the only thing that makes a
harmonic is when your finger is in a harmonic position?

I've always thought that pushing against the fingerboard created a fixed end
to the string, while just touching the string created a node.  Perhaps the
pulling the string towards the arm technique creates enough force that it
functions as the end of the string, in contrast to the relatively light
harmonic touch?

Carl



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


Re: relative mode occasionally gets forgotten?

2009-05-18 Thread Carl D. Sorensen



On 5/18/09 6:04 PM, Jonathan Kulp jonlancek...@gmail.com wrote:

 Carl,
 
 I'm working on your suggestions and have come across a problem.
 
 \relative c' { \chordmode { c \relative c'' { c }}
 
 
 This last example won't compile.  (It was missing the last curly brace
 but I added it.) Here's the terminal output:
 
 chordmode.ly:1:40: error: syntax error, unexpected TONICNAME_PITCH
 \relative c' { \chordmode { c \relative
  c'' { c }}}

Apparently, you can't use \relative c'' inside of chordmode.  \relative
needs a note (I think, but am not sure, it's called a NOTENAME_PITCH, not a
chord, and in chordmode c is read as a tonic for a chord, not as a note
(hence, a TONICNAME_PITCH).

Interestingly enough, you can get the following to compile:

\relative c' { \chordmode { c \relative  {c}}}

but the result is not at all what I expected, although I can explain it.

I think the knownissue was wrong, and what should be said is

Items inside a \chordmode block are always in absolute mode, even if the
\chordmode block is in a \relative block.

with an example of 

{
  \relative c'' {\chordmode {c1}}
  \chordmode {c1}
}

And the \chordmode section should say

\relative cannot be used inside a \chordmode block.

HTH,

Carl
 



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


Re: Special markups

2009-05-18 Thread Carl D. Sorensen



On 5/18/09 4:09 PM, Neil Puttock n.putt...@gmail.com wrote:

 2009/5/18 Mark Polesky markpole...@yahoo.com:
 Helge Kruse wrote:
 I want to add
 markups... circled T and the
 half-moon... How do I add such special markups?
 
 See the 2 attached files.
 
 Nice curve. :)
 
 Here's a slightly simplified version:
 
 #(define-markup-command (fingernail layout props) ()
   (ly:make-stencil
(list 'bezier-sandwich
  '(list 1.6 1.5 0.4 1.5 0 0 2 0
 
This list is unnecessary, since the list is quoted, I think.

 0.4 0.75 1.6 0.75 2 0 0 0)
  0.15)
'(0 . 2)
'(0 . 1.75)))
 

Perhaps for maximum clarity, we should write this as:

#(define-markup-command (fingernail layout props) ()
  (ly:make-stencil
   (list 'bezier-sandwich
 (list 1.6 1.5 0.4 1.5 0 0 2 0
0.4 0.75 1.6 0.75 2 0 0 0)
 0.15)
   (cons 0  2)
   (cons 0  1.75)))


I think we just had a discussion where we decided that the '(A . B) syntax
was more confusing than (cons A B) because the period could be overlooked.

HTH,

Carl



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


Re: relative mode occasionally gets forgotten?

2009-05-15 Thread Carl D. Sorensen


On 5/15/09 5:05 AM, Jonathan Kulp jonlancek...@gmail.com wrote:

 Chip wrote:
 Patrick McCarty wrote:
 On Thu, May 14, 2009 at 8:05 PM, Chip c...@wiegand.org wrote:
 
 
 I think this is the issue mentioned in the Known Issues for Chapter
 1.1.2 Transpose in the Notation Reference.  However, the two
 sentences included there are very confusing and should be rewritten to
 make the issue more clear.
 
 -Patrick
 Yes, I see what you mean. Not sure I understand it myself.
 --
 Chip
 
 
 If someone who understands the issue can send me new wording for this
 passage that makes it clearer, I will make a patch for the docs.
 
How about:

Music inside a \transpose or \chordmode block is absolute, unless a
\relative is included inside the the \transpose or \chordmode block.  When
\relative blocks are nested, the innermost relative block applies.


I think that this information should be put in several places in the NR.

First, I think that the information above should be put into 1.1.1 Writing
Pitches as examples under Relative octave entry.  There should be three
separate items/examples:

When relative blocks are nested, the innermost relative block applies.

\relative c' { d e f \relative c'' { d e f}}

Music inside a \chordmode block is absolute unless a \relative is included
in the block.

\relative c' { \chordmode { c \relative c'' { c }}

Music inside a \transpose block is absolute unless a \relative is included.

\relative c' { d e \transpose f g { d e \relative c' { d e }}}

Second, I think a warning (inside a box, not just a known issue) under
t1.1.2 Changing multiple pitches Transpose should say

Music inside a \transpose block is absolute unless a \relative is included
in the block.

with a see-also to \relative.

Similarly, a warning in 2.7.1. Chord mode should say

Music inside a \chordmode block is absolute unless a \relative is included
in the block.

with a see-also to \relative.

Note:  I haven't tested any of these examples.

HTH,

Carl




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


Re: relative mode occasionally gets forgotten?

2009-05-15 Thread Carl D. Sorensen



On 5/15/09 8:43 AM, Mats Bengtsson mats.bengts...@ee.kth.se wrote:

 
 
 
 Carl D. Sorensen wrote:
 
 Music inside a \transpose or \chordmode block is absolute, unless a
 \relative is included inside the the \transpose or \chordmode block.  When
 \relative blocks are nested, the innermost relative block applies.
  
 I don't understand why \chordmode (and \chords) changes back to absolute
 mode, when \notemode doesn't. Is it just since it's less common that the
 roots of the chords span several octaves, or is there any other good
 reason why LilyPond is implemented in this way?

I have no idea why LilyPond is implemented in this way.

\chords behaves the same as \chordmode because \chords is just equivalent to
\new ChordNames \chordmode, which I am sure you already knew.

Thanks,

Carl



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


Re: relative mode occasionally gets forgotten?

2009-05-15 Thread Carl D. Sorensen



On 5/15/09 3:06 PM, Anthony W. Youngman lilyp...@thewolery.demon.co.uk
wrote:

 In message 200905151909580...@1654122929, David Pounder
 pound...@lineone.net writes
 
 I don't know if it's worth mentioning, but you can also run into
 problems using \repeat inside a \relative block if an \unfoldRepeats is
 used outside the block. For example in
 
 Tune = \relative c' { \partial 4 d4 |
\repeat volta 2 { c4 d e g | }
 }
 
 the first c will be relative to the last g on the second play through
 using \unfoldRepeats. Rewriting as
 
 Tune = { \partial 4 d'4 |
\repeat volta 2 \relative c' { c4 d e g | }
 }
 
 resolves the problem. I try to make sure I keep \relatives at the
 innermost block for this reason. Is this a case of programming style,
 and should the docs cover it?
 
 Han-Wen gave me a resetOctave function that deals with this. I don't
 know if it's made its way into the docs, though.

I just use the octave check construct and ignore the warning.

Carl



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


Re: Quoting everything from another voice

2009-05-15 Thread Carl D. Sorensen



On 5/15/09 4:13 PM, Reinhold Kainhofer reinh...@kainhofer.com wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 The notation reference states in section 1.6.3 that \quoteDuring is typically
 used for two instruments that play the same notes during a passage of music.
 Unfortunately, quoteDuring quotes only notes, rests and ties, but not
 dynamics, slurs, other markup etc.
 Thus in its plain vanilla form it is not suitable for passages where one
 instrument playes colla parte with another, since all markings will be missing
 in the instrumental score...
 
 One snippet in that section shows how one can prevent rests from being quoted
 (using the quotedEventTypes list), but it does not mention how can can exactly
 duplicate from another instrument. What is the correct value for
 quotedEventTypes to really quote everything, including dynamics, markups,
 tempo changes, key/clef/time changes, etc.?
 
 Is there any pre-defined list of all available event types that can be used?
 
 As an example I'm attaching a file, where \bb quotes everything from \aa, but
 in the output only the notes appear, but no key/clef/time, tempo change,
 markup, dynamic markings, articulartions, etc.
 
Given your expertise in LilyPond, I hesitate to chime in here, but


Why do you need to quote instead of just putting everything in a variable
and including it in both voices?

Carl



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


Re: printing rest in ChordNames context

2009-05-14 Thread Carl D. Sorensen



On 5/14/09 8:07 AM, Tim McNamara tim...@bitstream.net wrote:

 
 into the \chords feels clunky and intrusive to me.  I'd prefer to
 minimize putting formatting code in the music content as much as
 possible.  Being able to write something like nc1 (or r1) and have it
 interpreted by LilyPond as N.C. would be much more elegant and
 intuitive:
 

This solution to the N.C. problem (use r to indicate N.C.) is currently
being implemented for 2.13.1.

It should be available in git by the end of the day, for those who can build
their own binary.

For those who cannot build their own binary, Marc's solution should work
until 2.13.1 is released.

Carl



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


Re: printing rest in ChordNames context

2009-05-14 Thread Carl D. Sorensen



On 5/14/09 9:03 AM, Gilles Sadowski gil...@harfang.homelinux.org wrote:

 Hi.
 
 This solution to the N.C. problem (use r to indicate N.C.)
 ^^^
   Will R also work?

Not right now.  I will investigate to see if it is easily done.

Carl



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


Re: Need help with this trill

2009-05-14 Thread Carl D. Sorensen



On 5/14/09 3:24 PM, Holger Hellebro hol...@gmail.com wrote:

 Hi
 
 I'm a new Lilypond user and I'm really enjoying the program so far. However I
 am having difficulties typesetting a certain trill. You can see in the
 attached picture what I want to achieve. I run into two difficulties:
 
 1. How to get the two minor notes (sort of like appoggiaturas) placed
 correctly after the main note, at the end of the bar. \appoggiatura seems to
 always put the minor notes before the actual notes.

I think \graceAfter is what you're looking for.


 2. How to put the natural symbol above the trill symbol. I've tried 
 ^\markup{\tiny \natural} both before and after the \trill, but the trill sign
 ends up above the natural sign in either case.

I can't help on this one.

Carl



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


Re: Newbie Question -- verse and chorus

2009-05-12 Thread Carl D. Sorensen



On 5/12/09 4:44 AM, Tim Rowe digi...@gmail.com wrote:

 
 Now on to my next exercise -- working out how to print capo chords in
 parentheses after the regular chord, so I get:
   (capo 3)   C (A)   G7 (E7)
 The nearest I can find is at
 http://www.mail-archive.com/lilypond-user@gnu.org/msg24850.html, but
 that does them on different rows and without parentheses.
 

To do this on double rows is not too hard.  I made it easier by developing a
parenthesizeAll function.

(I haven't put in the instrument name or the instrument_name_engraver that
was in the archives, but I think you can do that).

parenthesizeAll =
#(define-music-function (parser loc myMusic) (ly:music?)
  (music-map
(lambda (ev)
  (if (or (memq 'note-event (ly:music-property ev 'types))
  (memq 'rest-event (ly:music-property ev 'types)))
  (set! (ly:music-property ev 'parenthesize) #t))
  ev)
myMusic)
  myMusic)


mychords = \chordmode {
  c1 g1 c1
}


  \new ChordNames {
\mychords
  }
  \new ChordNames {
\parenthesizeAll
  \transpose c a {\mychords}
  }



Doing the two side-by-side will be a bit harder, because we'll need to
figure out a scheme for the timing.  My initial thought was to just cut the
duration in half and add a \parenthesize{\transpose {}}.  But this would be
really ugly if the chords were full duration.  For example, if each chord
were a whole note, then the capo chords would be off half a measure from the
regular chords.  Further, that scheme would mess up the chordChanges
behavior.

So I think the best way to go is to just mess with the chordNames function.
If I recall correctly, in the last year or so somebody posted on the list a
transposition function for chord names.  You might be able to make that work
and to create a new chord name creation function that would create the chord
name, transpose it, and then combine the two with the second one in
parentheses.  This would require Scheme knowledge.

Anyway, I hope this has been helpful.

Carl

P.S.  It's generally a good idea to start a new thread when you change the
topic; it helps in archive searches later.



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


Re: Bass in Chord Name

2009-05-12 Thread Carl D. Sorensen



On 5/12/09 10:35 AM, Stjepan Brbot stjepan.br...@zg.t-com.hr wrote:

 
 
 
 
 Kieren MacMillan wrote:
 
 Hi Stjepan,
 
 I'd like to get the following chord D7/F#. How to define this F#
 as bass in
 chord? I can use d:7/fis but I get fis, not wanted F# as bass.
 
 If you're using english.ly, you need to use fs (not fis).
 Kieren.
 
 
 
 I do not use english.ly. I use template in OOoLilypond (lilypond macro for
 OpenOffice.org). However I still don't know how to achieve F# as bass in
 chord.
 --



This works for me:

myChords = \relative c' {
  \chordmode {
d1:7/fis
  }  
}
  
  
\new ChordNames {\myChords}


producing the attached output (FsharpBass.png).

HTH,

Carl



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


Re: writing chords

2009-05-12 Thread Carl D. Sorensen



On 5/12/09 12:41 PM, James E. Bailey derhindem...@googlemail.com wrote:

 I will be the first one to admit that I don't work with chords frequently. I'm
 also trying to understand them. I understand that I can enter c:7 and lilypond
 will recognise that I want to display c7, and display it accordingly. Since I
 wanted to make some changes to some of the defaults, I decided to make a
 little list of all the chords, and what is typed in order to get lilypond to
 display them. I've run into some chords that I don't know how to name
 properly, so I thought I would ask for help. I would like I know what I need
 to type in order to get these chords. Here is what I want, and what I've
 tried:



James,

Have you read the section in the notation reference on chord notation
(2.7.1)?

The reason I ask is that most of your chord notations do not comply with the
stated syntax rules.

Also, you should check out appendix B2 of the Notation Reference; it has
lots of these.

I'll write the way I'd code the chords up right after to your notes.
 \version 2.12.2
 \paper { indent = #0 }
 \layout {\context {\Score \remove Bar_number_engraver} }
 \score {
    \new ChordNames {
       c e g bes d' f' a'
c:13.11 (in appendix B2)
       \break
       c e g bes des' f' as'
c:13-.9-.11 (assuming, of course that as is what I would normally call aes)
       \break
       c e g bes des' f' a'
c:13.9-.11
       \break
       c e g b d' f' a'
c:maj13.11  (also in appendix B2)
       \break
       c e g b d' fis'
c:maj11.11+

       \break
       c f g
c:sus4 (in appendix B2)

       \break
       c f g bes
c:sus4.7-

       \break
       c f g bes d'
c:sus4.7-.9 or
c:9.4^3
 
       \break
       c e g d'
c:5.9

       \break
       c es g f'
c:m5.11



HTH,

Cqrl



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


Re: writing chords

2009-05-12 Thread Carl D. Sorensen



On 5/12/09 1:51 PM, Tim Rowe digi...@gmail.com wrote:


 
 I can get them all except for the last; when I try to remove the 9th
 (c:m11^7^9) lilypond gets stuck :-(

If you read the notation reference carefully, you'll see that only the
*first* pitch to be removed is preceded by ^. (6 examples in under Extended
and Altered Chords).

What would have worked is

c:m11^7.9


 
 I'm also puzzled that lilypond gives the name of one of them as just
 C7, even though the 3rd is clearly augmented.

The automatic chord namer for LilyPond is not good on altered and extended
chords.  Hopefully I'll get to it this summer.  In the meantime, you can fix
it by adding your own chord name exceptions.  It's a bit cumbersome for a
workaround, but it takes care of everything except bass notes, I think.

BTW, Tim, thanks for jumping in to offer help.  Unfortunately, relatively
few who ask for help end up offering it.  We appreciate having you around.

Carl



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


Re: bad spacing

2009-05-06 Thread Carl D. Sorensen



On 5/5/09 9:03 PM, Victor Eijkhout vic...@eijkhout.net wrote:

 This looks really bad:
 
 harpchords = \relative c' { \time 15/8
s2^C s2^G/B s2^Am s4. | s2^Cmaj7/B s2^Em/G s2^F s4. |
s2^G s2^F/A s2^G/B s4. | s2^Dm/A s2^Dm/F s2 s4. |
\repeat volta 2 {
  s2^C s2^G/B s2^Am s4.^Am/G# | s2^Cmaj7/G s2^Em s2^F
 s4.^Bb/F |
  s2^G s2^F/A s2^G/B s4.^Fdim/G# | s2^Am s2^F s2 s4. |
} s2^C
 }
 
 \score {
 \new Staff { \set Staff.instrumentName = Harp  \harpchords }
 }
 
 Should it look better, or am I using the wrong mechanism?

Why not use a ChordNames context?  As you have written this, the chords are
just text, not really music elements.

If I were writing this, I think I'd write it as:

harpchords = \relative c' \chordmode {
  \time 15/8
  c2 g/b a:m s4. |
  c2:maj7/b e:m/g f s4. |
...
}

\score {
   
   \new ChordNames \harpchords
   \new Staff {
  \set Staff.instrumentName = Harp
  \harpchords
   }
  
}

Of course, this will set the notes as well as the chord names, which you may
not want to have.

Thanks,

Carl


 
 Victor.
 
 
 
 



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


Re: Chord Names Tweak

2009-05-03 Thread Carl D. Sorensen

Jonathan,

On 5/2/09 2:23 PM, Jonathan Townes edmundtow...@gmail.com wrote:

 Hello all,
 Does anyone have suggestions for tweaking the position of accidental in
 chord names. For example, the flat sign in in the chord name Ab? I
 find in the default Lilypond setting the flat symbol is too big and
 too low on the base line.
 Thanks,
 Jonathan
 
 

Unfortunately, this is not an easy tweak, because there is no property in
the chord-name-interface that allows control of this (the chord-name
functionality of LilyPond is in need of a major rewrite; I hope to get to it
this summer, but we'll see).

If I were going to try it, I'd alter scm/chord-name.scm.  In that file,
you'll find

(define-public (alteration-text-accidental-markup alteration)

  (make-smaller-markup
   (make-raise-markup
(if (= alteration FLAT)
0.3
0.6)
(make-musicglyph-markup
 (assoc-get alteration standard-alteration-glyph-name-alist )


To change the positioning of the flat, you change 0.3 to a different number.
To change the positioning of the sharp, you change 0.6 to a different
number.

In order to change the size of the flat (and not the sharp, too) you will
need to do some rewrite on this procedure.

In terms of making the change, you have two choices.  One is to make the
change in scm/chord-name.scm.  The other is to redefine the function in your
.ly file

#define-public (alteration-text-accidental-markup alteration)

  (make-smaller-markup
   (make-raise-markup
(if (= alteration FLAT)
0.3
0.6)
(make-musicglyph-markup
 (assoc-get alteration standard-alteration-glyph-name-alist )

This definition will override the one in scm/chord-name.scm.

Hope this helps,

Carl






 



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


Re: adding to the LSR

2009-05-02 Thread Carl D. Sorensen



On 5/2/09 5:50 AM, Daniel Hulme s...@istic.org wrote:

 On Wed, Apr 29, 2009 at 09:54:09PM +0800, Graham Percival wrote:
 Is it worth defining our own function
   replaceOnly(\\octave, ...)
 which does
   re.sub(\\octave[?a-z,A-Z], ...)
 or whatever the regex was?
 
 \\octave\b would work fine. \b matches a word Boundary.

I think that LilyPond word boundaries are different from Python word
boundaries.

For example, LilyPond identifiers cannot contain numbers or special
characters.  That's why only alphabetic characters were chosen for
exclusion, IMO.

Carl





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


Re: auto-beam in pickup-bars with grace note

2009-05-01 Thread Carl D. Sorensen
Christian,

This kind of question is better asked on lilypond-user.

Thanks,

Carel


On 4/30/09 12:57 PM, grisu_76 christian.hum...@univie.ac.at wrote:

 
 
 As for I get some helpful hints for solving the spacing-problem in
 pickup-bars starting with a grace note, now I struggle with the
 auto-beaming:
 
 global = {
 \time 6/8
 \key es \major
 \tempo Presto
 \partial 8*3 \grace {s8}
 \autoBeamOn % this doesn't work to get the
 auto-beaming back
 \set beatGrouping = #'(3 3)   %without the two following the result is
 the
 same as without...
 \set beatLength = #(ly:make-moment 3 8)
 }
 
 ViolineEins = \new Voice {\relative c'{
 \set Staff.midiInstrument = #violin
 
 \partial 8*3 \grace c''8 \p  b8 (a) b-.
  g-. g-. g-.  \grace{as8} g f g
 \bar |.
 }}
 music = {
 
   \tag #'score \tag #' vn1 \new Staff {  \global \ViolineEins  }
 
 }
 
 Some ideas? regards, Christian
 --
 View this message in context:
 http://www.nabble.com/auto-beam-in-pickup-bars-with-grace-note-tp23322316p2332
 2316.html
 Sent from the Gnu - Lilypond - Bugs mailing list archive at Nabble.com.
 
 
 
 



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


Re: tablature.ly

2009-04-30 Thread Carl D. Sorensen



On 4/30/09 1:36 AM, Marc Hohl m...@hohlart.de wrote:

 [snip]
 
 I have reworked my tablature.ly according to all suggestions and
 improvements by Neil and Carl.
 
 The modern tab clef seems to be scaling properly, I played a bit with
 some values for staff-space,
 and it looks now as it should be (at least in my opinion). I have
 managed (with excessive help)
 to get the staff-space and the line-count from the staff-symbol
 property, so there is no more
 need for explicitly using the tuning as an argument for the clef functions.
 (And again, I have gained some more insight  in scheme and lilypond,
 thank you both!)
 
 As Neil proposed, it should be possible to code
 
 \clef tab
 
 for the current calligraphic clef, and to write
 
 \clef moderntab
 
 for the sans serif-style clef for compatibility's sake.
 
 This issue is beyond my abilities, so I call desperately for help ;-)
 If we add entries in parser-clef.scm to supported-clefs and
 c0-pitch-alist (either directly or by consing the new entries within
 the tablature file) for the modern tab,
 
 (moderntab . (markup.moderntab 0 0))
 
 (markup.moderntab . 0)
  
 I tried to cons these values, and I succeded (or at least it seemed to
 me) for the
 supported-clefs list, but not with the c0-pitch-alist
 (see attached files and lilypond's error messages).
 Is this list only locally defined, or am I missing something?

You are correct.  c0-pitch-alist is not public.  So it's currently not
possible to cons a value in with the tablature.ly file.

Your choices at this point are to
a) change the scm/parser-clef.scm file to (define-public c0-pitch-alist 
and keep the additions to the clef list in tablature.ly

b) hardcode the changes to supported-clefs and c0-pitch-alist in
scm/parser-clef.scm

c) add a scheme function (define-public (add-new-clef clef-name) )
to scm/parser-clef.scm.  This function would cons the new clef values onto
both lists.  And because the function is defined in scm/parser-clef.scm, it
will have access to c0-pitch-alist.  Then you would revise tablature.ly to
call add-new-clef to take care of things.

My recommendation is that you pursue option c.  The disadvantage of pursuing
option c is that it won't be available to others until a new release of
LilyPond is issued.

However, the existing tablature.ly file that you posted to the list works
for 2.12, so that will meet the needs of those users.  And you will have
made the changes to scm/parser-clef.scm on your system, so you'll have it
available for your use.  And you can post a patch that those who are
interested can use to make changes to their own version of
scm/parser-clef.scm.

All in all, I'd say go ahead with the new function in scm/parser-clef.scm
and modify tablature.ly to work with the new function.


 
 In my opinion, as tablature.ly is meant to be included by the user, not
 by default,
 the changings in these lists should be done within tablature.ly, if this
 is possible.

You can also think about splitting tablature.ly into tablature-init.ly which
will be always be run, and tablature.ly which will only be run if the user
includes it.  That's the way predefined-fretboards works.

 we can override the Clef 'stencil to check 'glyph before calling the
 default print-function.  If the string markup.moderntab is found,
 then it's simple to return a stencil for the new tab markup.
 
  
 How can I achieve this?

Define a new Scheme function to be used as the Clef 'stencil property

(define (newClefPrint grob) )

It should check for the 'glyph property of the grob, and if it's
markup.moderntab, it will call the new tab markup function.  Otherwise, it
will call (ly:clef::print grob).


Hope this helps,

Carl



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


Re: tablature.ly

2009-04-29 Thread Carl D. Sorensen



On 4/29/09 3:12 AM, Marc Hohl m...@hohlart.de wrote:

 Neil Puttock schrieb:
 2009/4/27 Carl D. Sorensen c_soren...@byu.edu:
  
 Neil,
 
 Thanks for your input.  I think it's all really good.
 
 
 On 4/26/09 1:49 PM, Neil Puttock n.putt...@gmail.com wrote:
 

 2009/4/25 Marc Hohl m...@hohlart.de:
  
 Marc, there are probably at least two ways to do this.  The easiest one
 would be to take each of these magic numbers and divide them by the default
 staff-space setting, and then change to something like
 
 (base-skip (cond ((= 4 num-strings) (* staff-space 1.03))
 
 and so forth.  (1.03 = 1.55/1.5)  And you'd need to find the value of
 staff-space in order to be able to do this multiplication.


 Ok, as Neil has posted somewhere else in this thread, the formula works
 only with a
 fixed staff-space. But I don't know how to find the value of staff-space.
 I think it could be done similar to the proposals for the line-count
 (see below), but this is far beyond my possibilities - any help is highly
 appreciated!

See below for my comment.

 There are two issues that I can't address:
 
 1) I wasn't able to figure out how to get stringTunings in a music function
 or a markup function.   How do we do that?

 
 You don't need to know stringTunings, since it's possible to access
 'line-count from any grob which is placed on a StaffSymbol:
 
 (let* ((staff-symbol (ly:grob-object grob 'staff-symbol))
(line-count (ly:grob-property staff-symbol 'line-count)))
 
  
 This is way beyond my knowledge of the internals. I simply added these lines
 accordingly in my definition of customTabClef:
 
 #(define-markup-command (customTabClef layout props tuning) (pair?)
 (define (square x) (* x x))
 (let* ((staff-symbol (ly:grob-object 'grob 'staff-symbol))
(num-strings (ly:grob-property staff-symbol 'line-count))
(font-size (- (* num-strings 1.5) 7))
(base-skip (square (+ (* num-strings 0.195) 0.4
(interpret-markup layout props
  (markup #:vcenter #:bold
  #:override #'(cons 'font-family 'sans)
  #:fontsize font-size
  #:override #'(cons 'baseline-skip base-skip)
  #:left-align
  #:center-column (T A B)
 
 but this doesn't work. Lilypond complains with
 
 Unbound variable: grob
 
 How can I assign the right value to this symbolic variable?
 

This was meant to be applied along with Neil's earlier comment about
changing from using ly:text-interface::print for the 'stencil to using
grob-interpret-markup.  I've included his comments below:

 % Wrappers for the different clefs
 % the argument is the string-tuning, which is automatically set.
 sansSerifTabClef = #(define-music-function (parser location tuning) (pair?)
   #{
      \override TabStaff.Clef #'stencil = #ly:text-interface::print
 
 Use grob-interpret-markup instead of ly:text-interface::print:
 
 \override TabStaff.Clef #'stencil = $(lambda (grob)
 (grob-interpret-markup grob (make-customTabClef-markup tuning)))
 
 The docs are slightly lagging behind here, but
 ly:text-interface::print should only be used with objects which
 support text-interface.

When you define 'stencil to be a function of some object  (lambda(grob) is a
function with one parameter), LilyPond will call that function with the
parameter of the grob that is supposed to be printed -- in this case, the
clef.  So then, grob will exist and will have the capability of learning
about both 'line-count and 'staff-space.

If this doesn't point you in the right direction, please let me know.

Thanks again for doing this!

Carl



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


Re: adding to the LSR

2009-04-28 Thread Carl D. Sorensen



On 4/28/09 4:42 PM, Jonathan Kulp jonlancek...@gmail.com wrote:

 Carl D. Sorensen wrote:
 
 Thanks for the offer, Chip.  I've just finished a preliminary run
 through all of the snippets.  I downloaded the tarball of the entire
 repo and ran them through the convert-ly script, then did a looping
 script that ran lilypond on each updated snippet using 2.12.2 and saved
 the terminal output for each in a text file.
 
 Cool -- I didn't know you were up enough on scripting to do that kind of
 work!  I think such a script should be added to scripts/auxiliar so that we
 have it to use the next time we want to do an update.  (And you just
 demonstrated that you have two of Larry Wall's attributes of a good
 programmer: laziness and hubris.  Good for you!)
 
 
 This was a very simple script.  I learned a good bit of scripting with
 the help of Patrick Horgan a while back when I was writing my lily2image
 script.  Here's the script for any interested folks (first I did
 convert-ly -e *.ly on the whole directory):
 
 #!/bin/bash
 
 #*#
 # Run Lilypond on a lot of files and save #
 # the terminal output in text files   #
 #*#
 
 for LILYFILE in *.ly
 do
STEM=$(basename $LILYFILE .ly)
echo running $LILYFILE...
lilypond --format=png $LILYFILE  $STEM.txt
rm $STEM.ps
 done
 
 ---
 
 I chose png format b/c the ristretto image viewer on xubuntu allows for
 very quick paging through all of the images in a directory, much quicker
 than going through a bunch of pdfs.
 
 After running the script on the directory with all the snippets in it, I
 run this command to find snippets that didn't compile:
 
grep failed *.txt
 
 It reads the terminal output from all the files and brings back the ones
   that failed.

Cool!  I still think that you ought to put it all (including the grep part)
into a single script and store it in the source tree.  And it ought to be
added to the CG so that we have it tracked for the next time we release a
stable version (I assume it will happen quickly, once Graham gets home from
Singapore -- although maybe going to Scotland doesn't qualify as home).

 
 The results were pretty good, really.  About 95% of the snippets
 compiled and look the same as they did in 2.10.  Two snippets didn't
 compile at all, but I've already taken care of one of them
 (adding-octaves-automatically) because I've had to fix that one on some
 of my own files before.  The convert-ly script took the \octaves command
 as if it were an octave check instead of a user-defined macro.  I've
 changed the \octaves command in the original LSR code to \makeOctaves,
 which will survive the convert-ly update intact.
 
 This probably also indicates a need to change the convert-ly rule for
 \octave.  If it doesn't work for \octaves, it also wouldn't work for
 \octaveAdjustFunction, or some other user-defined variable that starts with
 \octave.  This should be either fixed or added to the issue tracker to get
 fixed.
 
 
 Yes, I was thinking the same thing but I don't know how to change the
 convert-ly rules.  It was easier for me just to change \octaves to
 \makeOctaves.

Any Frog willing to take on this convert-ly rule fix?  You have a file that
you can use to see if you have fixed the rule.

 
 
 There are also some snippets that work but should be changed to reflect
 changes in 2.12.  I know of two snippets that have to do with lead sheets
 (Chords, Fret Diagrams, melody, and lyrics) that should be changed to use
 \predefinedFretboards and a FretBoards context, instead of using \markup
 \fret-diagram.
 
 I'm not sure if there are others.  There may be one related to auto-beaming.
 I'm not sure what a good process on this is, but I think at a minimum, we
 should look at NEWS for 2.12 and see if there are any NEWS items related to
 each of the snippets.
 
 That's why I estimated 15 minutes per snippet (I wasn't thinking of
 automation, which I should have).  We should check each of the snippets and
 see if the snippet is made obsolete or should be changed to reflect new
 features added, not just check to see if the syntax is right.
 
 
 Yes, to do it properly we'll need to examine each one more carefully.
 My idea with this is simply to find out which snippets are broken in
 2.12 and get them at least to compile, so that the LSR could be switched
   to 2.12 and then the snippets can be checked out more carefully after
 that.  Is that a good strategy?

No, it's a *great* strategy.  Get the easy work done quickly, so there's
nothing us keeping from moving the LSR, then do the careful work at our
leisure.

Thanks for taking the lead on this.

Chip, are you still willing to do some work reviewing the converted
snippets?

Carl



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


Re: tablature.ly

2009-04-27 Thread Carl D. Sorensen



On 4/27/09 3:38 AM, Marc Hohl m...@hohlart.de wrote:

 Neil Puttock schrieb:
 2009/4/25 Marc Hohl m...@hohlart.de:
  

   (font-size (- (* num-strings 1.5) 7))
   (base-skip (cond ((= 4 num-strings) 1.55)
((= 5 num-strings) 1.84)
((= 6 num-strings)  2.00)
((= 7 num-strings) 2.08)))

 
 Can you rework these so they're not hard-coded?
  
 That's a bigger problem: first, I used a definition as shown in the LSR
 and played a bit with the
 values for base-skip, font-size and raise. Here is my first attempt:
 
 tabClefIV = \markup {
   \raise #0.7 {
 \override #'(font-family . sans)
 \bold\fontsize #-1.0
 \override #'(baseline-skip . 1.44)
 \column { T A B }
   }
 }
 
 I found out that the base-line for 4 ... 7 strings follows a quadratic
 equation:
 base-skip = ( 0.2 * num-strings + 0.4 )**2
 but inserting this into the definition of customTabClef didn't work, and
 neither
 Carl nor I could nail down the problem, so finally, I hard-coded the values.
 
 If you can help me with that, it would be great.


Marc, did you get the email from Robin Bannister?  He found the problem we
were having with customTabClef.  I had you put the baseline-skip override as
a cons to  the property list, instead of using it as an :override function,
and the :fontsize reset the baseline-skip.  That's why things weren't
working right.  I think the code below works with your original quadratic:

#(define-markup-command (customTabClef layout props) ()
   (define (square x) (* x x))
   (let* ((num-strings (length (chain-assoc-get 'stringTunings props '(
  (raise-value (- (* num-strings 0.4) 0.9))
  (base-skip (square (+ (* num-strings 0.2) 0.4)))
  (font-size (- (* num-strings 1.5) 7)))
(interpret-markup layout props
 (markup #:raise raise-value #:bold
 #:override #'(font-family . sans)
 #:fontsize font-size
 #:override #(cons 'baseline-skip base-skip)
 #:column (T A B)


 Imagine a user doesn't like the default staff-space setting for
 TabStaff (1.5).  If they change it, none of these empirical values
 will work properly.
 

Here Neil points out the thing he's most concerned about.  It's not a
concern about the magic numbers per se, it's that they don't change with
staff-spacing.  In my earlier email (let me know if you didn't get it), I
asked for his help with that problem.

 On a general note, I'd prefer to keep the string tunings separate from
 setting the clef.  To set the traditional tab clef, we have the
 command \clef tab, so it would be nice to be able to set the modern
 style using e.g. \clef moderntab without having to use a new function.
  

 Yes, that would be better, but I didn't manage to get the information about
 the number of strings internally, so I used the tuning as an argument.
 Then, to avoid setting it twice, I wrote the wrappers.
 On the other hand, I would have to set the tuning before setting \clef
 moderntab,
 but this could be easily mentioned in the docs.
 
 As said above, any help for the base-skip problem and finding a way to
 get the number of strings
 without explicitly using the tuning as an argument are appreciated.
 
 Thank you!
 
 Marc


Thank you, too, Marc!

Carl



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


Re: tablature.ly

2009-04-27 Thread Carl D. Sorensen



On 4/27/09 12:47 PM, Marc Hohl m...@hohlart.de wrote:

 Carl D. Sorensen schrieb:
 
 On 4/27/09 3:38 AM, Marc Hohl m...@hohlart.de wrote:
 
  
 No, I didn't get this mail. I played around with your suggestions and the
 improvements given by Neil and have now:
 
 #(define-markup-command (customTabClef layout props tuning) (pair?)
 (define (square x) (* x x))
 (let* ((num-strings (min (max (length tuning) 4) 7))
(font-size (- (* num-strings 1.5) 7))
(base-skip (square (+ (* num-strings 0.2) 0.4
(interpret-markup layout props
  (markup #:vcenter #:bold
  ;;#:override #'(font-family . sans)
  #:fontsize font-size
  #:override #'(cons 'baseline-skip base-skip)

I thought that there should be no ' before (cons 'baseline-skip base-skip).
But apparently it works, so perhaps it's evaluated during the markup
interpretation.

The ' is a quote that prevents evaluation.  In this case, we want to
evaluate the expression, because we want to replace the symbol base-skip
with its value, which was assigned above.  But this apparently works with
the macro expansion.

  #:center-column (T A B)
 
 The raise-value calculation has gone, because I use #:vcenter, but I had
 to comment
 out the font-family line, because I got an error saying unbound
 variable: font-family
 if it is in the source. What's going wrong here?

Try #'(cons 'font-family 'sans), and see if that will work.  It may be that
the way things are substituted by the macro expansion is causing it to work
differently than I would expect with straight Scheme.

 
  
 Imagine a user doesn't like the default staff-space setting for
 TabStaff (1.5).  If they change it, none of these empirical values
 will work properly.
 
  
 
 Here Neil points out the thing he's most concerned about.  It's not a
 concern about the magic numbers per se, it's that they don't change with
 staff-spacing.  In my earlier email (let me know if you didn't get it), I
 asked for his help with that problem.
 
  
 With the definition above, I inserted #(set-global-staff-size num)
 and tried values from 10 to 100, and it worked as expected.
 So the quadratic equation seems to be the right way.

OK, so the baseline skip is apparently sized in terms of staff spaces, which
means your equations are right.

Thanks,

Carl



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


Re: tablature.ly

2009-04-26 Thread Carl D. Sorensen
Neil,

Thanks for your input.  I think it's all really good.


On 4/26/09 1:49 PM, Neil Puttock n.putt...@gmail.com wrote:

 2009/4/25 Marc Hohl m...@hohlart.de:
 Hello tablature users*,
 
 Like Carl, I'm not a tablature user, so I can only comment on matters of
 coding.
 
 Some suggestions and thoughts follow below:
 
SNIP
 
           (font-size (- (* num-strings 1.5) 7))
           (base-skip (cond ((= 4 num-strings) 1.55)
                            ((= 5 num-strings) 1.84)
                            ((= 6 num-strings)  2.00)
                            ((= 7 num-strings) 2.08)))
 
 Can you rework these so they're not hard-coded?
 
 Imagine a user doesn't like the default staff-space setting for
 TabStaff (1.5).  If they change it, none of these empirical values
 will work properly.

Marc, there are probably at least two ways to do this.  The easiest one
would be to take each of these magic numbers and divide them by the default
staff-space setting, and then change to something like

(base-skip (cond ((= 4 num-strings) (* staff-space 1.03))

and so forth.  (1.03 = 1.55/1.5)  And you'd need to find the value of
staff-space in order to be able to do this multiplication.

The second way would be to try to define fundamental relationships for
base-skip, but I'm not sure exactly how you'd do that, so I'm not
recommending it right now.

SNIP
 
 calligraphicTabClef = #(define-music-function (parser location tuning)
 (pair?)
   #{
      \revert TabStaff.Clef #'stencil
      \set TabStaff.stringTunings = $tuning
   #})
 
 On a general note, I'd prefer to keep the string tunings separate from
 setting the clef.  To set the traditional tab clef, we have the
 command \clef tab, so it would be nice to be able to set the modern
 style using e.g. \clef moderntab without having to use a new function.

I'd also like to do that.  But I don't know how to help Marc do it.  Neil,
if you can help him figure it out, I'd appreciate it.

There are two issues that I can't address:

1) I wasn't able to figure out how to get stringTunings in a music function
or a markup function.   How do we do that?

2) I'm not sure how to use a markup, instead of a glyph, as a clef without
redefining the 'stencil property, and I don't know how to redefine the
'stencil property by means of  a \clef cleftype command.  If you can show us
how to do that, it would be really helpful.

Thanks for your help and insight,

Carl


Marc,

Can you revise your code according to Neil's recommendations and make me a
new patch?

Thanks,

Carl



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


Re: date in footer?

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 9:37 AM, Neil Puttock n.putt...@gmail.com wrote:

 2009/4/23 Jonathan Kulp jonlancek...@gmail.com:
 Graham Percival wrote:
 
 1.  Log in to LSR as an editor.  (I remember the discussion now;
 this isn't your fault)
 
 2.  Find the tags section for each snippet.
 
 3.  Click on the drop-down menus, and select the relevant tags.
 
 4.  There is no #4.
 
 Is save #4?
 
 Thanks for the rundown, Graham.  As you've said, this is very easy and I
 figured it out myself as reported in previous email...
 
 4. Note that one of the snippets isn't tagged as `docs', which means
 it's in input/new.
 
 5. Find the snippet in input/new, and add the tag there instead.
 
 6. Scratch #5, since the snippet shouldn't be in input/new in the first place.

Unless the snippet is referenced in the docs, and the person who added it to
the docs didn't put the tag in it because he didn't know to do so.  I which
case, the tag should still be added, I think.

Carl



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


Re: date in footer?

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 1:31 PM, Neil Puttock n.putt...@gmail.com wrote:

 
 Perhaps the point I was trying to make got lost in my slightly
 facetious reply: if we're talking about LSR snippets which are in the
 docs, the LSR editor must be mindful of the fact that editing such
 examples in LSR may have no effect, since they can be shadowed by
 revised snippets in input/lsr.

I thought makelsr.py got snippets from the lsr and copied them into
input/lsr.  Is that wrong?

Cqrl



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


Re: New fonts for chords

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 12:52 PM, Pekka Siponen pekka.sipo...@bastu.net wrote:

 Here are some thoughts about the default chords in LilyPond:
 
 1. The suffixes should not be scaled (see attachment). The weight of the
 smaller character gets too light if it is simply scaled down from the
 original font.

Thanks for making a pdf that shows what you mean.  Perhaps we could make the
7 symbol bold as well as raising it.

 2. The suffix should be top-aligned with the preceding characted.

Is this an engraving standard or just a personal preference?  I'm not
disagreeing with you, but we try to make changes to LilyPond only in
response to music engraving standards.

Every book I've been able to find in my (admittedly limited) collection just
keeps everything on the same line -- no raising of suffixes.  I've read
about different standards in different regions, but have no personal
knowledge of that.

 3. The sharps should be centered and the flats should be aligned with
 the baseline. (Or something done in general, the sharps and flats look
 out of place)

Can you point us to an engraving standard that we could use to make this
decision?

 
 So, maybe (typographically correct) new fonts for chords in the future..?
 

If you're willing to make new fonts for chords, I would guess that you could
get them accepted as part of LilyPond, but I don't think there is a current
developer who will be spending time doing that.  I understand that it is a
big job to develop a new font.

 Also, it seems funny to me that the default font for chords is sans
 serif, when the default font otherwise is serif. Why not use the default
 roman font also for chords?

I assume (maybe incorrectly) that it's because somebody early on thought
that the sans fonts were better for chord names.  In my quick review of my
books, it appears that the chord names and the lyrics generally share the
same type face (sans or serif).

It is a *very* simple override to change to the roman font.  Put the
follwing in your ChordNames context:

\override ChordName #'font-family = #'roman

and you'll have your roman chord names.

HTH,

Carl



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


Re: tablature.ly

2009-04-25 Thread Carl D. Sorensen
Looks great, Marc!  *Very* nicely done.


On 4/25/09 4:06 AM, Marc Hohl m...@hohlart.de wrote:

 Hello tablature users*,
 
SNIP
 
 3) some more tunings are defined:
guitar-seven-string-tuning
guitar-drop-d-tuning
bass-four-string-tuning
bass-drop-d-tuning
bass-five-string-tuning
bass-six-string-tuning
(yes I know, the already defined bass-tuning is the same as my
 bass-four-string-tuning, but
 as I write music for various basses, this is easier to read at first
 glance.)

As your comment indicates, you will want to move these to
scm/output-lib.scm.  When you are up to speed on git, please do so.

Once you send me a patch, I'll check it and push to git, and it will become
part of LilyPond.

Oh, by the way, you will want to make a standard LilyPond comment block at
the top of the file -- see existing files for a pattern.

 
 4) commandos for palm mute playing and dead notes are supported (palm
 mute is not a tablature-specific
issue, but as electric guitar players use tablature and often play
 palm mute, I think this is ok).
At first I thought of using \x for dead notes, but in other threads
 \x is used for almost everything,
so I leave it to the user to say x = \deadNotes and use \x for faster
 typing myriads of dead notes :-)

This is exactly the right thing to do.  LilyPond defined functions should
always be descriptive.  If users want the convenience of defining a
shortcut, it's quite easy to do so.

 
 Yet again, I would like to thank Carl for his great help and patience,
 and as far as I can see now,
 making contributions to lilypond is easier than one might think, there
 are a lot of people outside
 willing to help you, if you are willing to bring lilypond further on, so
 give it a try!
 

You're very welcome.  It's always a pleasure to help somebody who is
learning to contribute!

Thanks,

Carl



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


Re: New fonts for chords

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 2:36 PM, Pekka Siponen pekka.sipo...@bastu.net wrote:

 Indeed it (suffix position) is a personal preference, and not correct
 most likely. I find that there is no standard for chord names, they have
 been around only for a short time historically, and mostly everything is
 based on personal preferences.. as are all traditions when you go back
 far enough. :P Usually the suffix is on the baseline, but it is beacause
 finale standard layout is that way. The publishers in finland usually
 only accept finale based work. For me the suffix is nice when top
 aligned. Also more compact.

There are certainly plenty of chord names around with raised suffixes.  I
was just hoping that you had some place you could point to a standard, so
we'd improve our understanding.


 
 Sharps and flats: sorry I can't point you to any authority that would
 say so, except basic typographical books. The sharps and flats look like
 they don't belong there. They should look like a natural part of the
 text, not something added later by a different program. =) No offence
 intended.


None taken.  And no offense intended by me, either.  I agree with you that
the chord names should look nice typographically.
 
 Alas, I am only proficient in using fonts, not making them. :(

And I am proficient in neither, so you're one up on me!


I think that you should post your requests for improved alignment of raised
7 and sharps and flats to bug-lilypond, along with a sample of current
LilyPond output and a sample of desired output for each of your cases.  It
will show up as an enhancement request, and may be an engraving nitpick,
with low priority, but it *will* be on the list.



 
 The override is indeed simple, but for a novice user learning the
 override and the things behind it, is a big step (worth taking
 perhaps..). Also it is basic typographical thing to keep it simple with
 fonts; if there is no need to start mixing fonts, so why do it..?

I'm not sure who has the decision authority to change the default chord name
font to roman, but if lots of users made that request on lilypond-user, I
would guess that it would happen.

In the meantime, we could add a snippet to the LSR that shows how to change
the chord name font to roman.  As a matter of fact, *you* could add that
snippet to the LSR, and it would be available for others to use.  And you'd
be part of LilyPond development team.  We'd love to have you come along with
us!


BTW, the LSR is found at
http://lsr.dsi.unimi.it/


 
 I tried to make a fairly complex but simple chords-notes(with
 alternative repeats)-lyrics score. I found out everything that is
 needed, but still failed. One of the reasons was this typographical
 dilemma. It was getting too complicated, and I think would soon have
 required some programming (and font-making) knowledge.

Have you asked for help on the user list?

This should be relatively straightforward, except that I don't understand
what complex but simple means.

If you can create a simple example of your score that demonstrates the
difficulties, I'm sure you'll get help here.

The typographical dilemma for chord names may be able to be resolved (at
least temporarily) with some not-so-simple overrides...


 
 I was very pleased with the spacing with the LilyPond, also some glyphs,
 especially the natural, received positive comments from the musicians:
 it was easily distinguished from the sharp.. it had a distinctive color. :)
 

Good -- I'm glad you found the quality desirable!

Thanks,

Carl



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


Re: TextSpanner at Score level?

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 3:38 PM, -Eluze elu...@gmail.com wrote:

 
 
 
 Carl D. Sorensen wrote:
 
 You use the Internals Reference.  You find the object you want engraved
 under 3.1 All layout objects:  3.1.111 TextSpanner.
 
 The IR tells you that TextSpanners are created by Dynamic_engraver,
 New_dynamic_engraver, and Text_spanner_engraver.
 
 So then you look in section 2.2 Engravers and Performers (or you just
 click the link on Text_spanner_engraver.  Section 2.2.117
 Text_spanner_engraver tells you that this is part of all of the Voice
 contexts.  So then you know which contexts to remove it from and
 which contexts to add it to.
 
 thanks for your answer (and sorry i did not answer before, but i was busy
 installing a new computer...)
 
 it is good to know you can find this information somewhere - but i was
 thinking of a procedure listing all the actual or possible engravers or
 contexts - maybe something similar to the function list-all-grobs which i
 found in the snippets repository!

I've not seen a list all contexts functon, but all of the contexts are
listed in the Internals Reference, section 2.1.

And all of the engravers are listed in the Internals Reference, Section 2.2.

Carl




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


Re: Changing font of Table of Contents

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 5:38 PM, Nick Payne nick.pa...@internode.on.net wrote:

 I'm putting together a book of pieces, and using a particular font for
 headers, footers, titles, subtitles, etc. The one place where I haven't
 figured out how to get that font used is for the header text for the table
 of contents that Lilypond creates. Each tocItem has the font I want by using
 \override #'(font-name etc, but how do I change the font for the actual text
 Table of Contents that Lilypond inserts corresponding to the \markuplines
 \table-of-contents in the ly source.
 
 I tried using
 
 \markuplines {
 \override #'(font-name . SpectrumMT SC)
 \table-of-contents
 }
 
 In the same way as inside \markup blocks, but that doesn't parse correctly
 and gives errors.
 
 Nick

If you look at ly/toc-init.ly, you'll see tocTitleMarkup.  You'll want to
add font override to that markup.

Unfortunately, I haven't yet found out how to fix it from a lilypond file.
When I make a similar change in the lilypond file, the one in toc-init.ly
seems to override it.

Carl



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


Re: Changing font of Table of Contents

2009-04-25 Thread Carl D. Sorensen



On 4/25/09 5:38 PM, Nick Payne nick.pa...@internode.on.net wrote:

 I'm putting together a book of pieces, and using a particular font for
 headers, footers, titles, subtitles, etc. The one place where I haven't
 figured out how to get that font used is for the header text for the table
 of contents that Lilypond creates. Each tocItem has the font I want by using
 \override #'(font-name etc, but how do I change the font for the actual text
 Table of Contents that Lilypond inserts corresponding to the \markuplines
 \table-of-contents in the ly source.

Ahh, after a bit more looking, I got it now.

In your paper block, define the variable tocTitleMarkup to be whatever you
want it to be.

\paper {
  tocTitleMarkup = \markup \huge \override #'(font-name . Courier)
  \column {
\fill-line { \null Custom Table of Contents \null}
\hspace #1
  }
}


HTH,

Carl



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


Re: Removing empty (drum) staff in a score, instrument name placement

2009-04-24 Thread Carl D. Sorensen



On 4/24/09 1:51 PM, Toine Schreurs a.m.m.schre...@chem.uu.nl wrote:

 1. You would need (the nonexisting) RemoveEmptyDrumStaffContext. But
 inspection of engraver-init.ly points to the solution:

SNIP


Toine,

Thanks for a great, clear answer.  You're making a great contribution to
LilyPond by doing this.  You not only help users, but you free up time for
developers!

Thanks,

Carl



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


Re: music expression explanation

2009-04-24 Thread Carl D. Sorensen



On 4/24/09 4:22 PM, Peter Chubb lily.u...@chubb.wattle.id.au wrote:

 
 I'd really appreciate an appendix or something that gives Lily syntax
 as BNF, or as a syntax diagram.   The syntax is very complex, and I've
 been caught out a number of times by things not being as I expected
 them to be from the NR --- not that the NR was wrong, but that the way
 elements are combined wasn't explicit.

This has been asked for in the past.  You'll find a thread on devel about it
here: 
http://thread.gmane.org/gmane.comp.gnu.lilypond.devel/7431

My best result is here:

http://thread.gmane.org/gmane.comp.gnu.lilypond.devel/7431/focus=7443

HTH,

Carl



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


Re: date in footer?

2009-04-23 Thread Carl D. Sorensen



On 4/23/09 9:31 AM, Graham Percival gra...@percival-music.ca wrote:

 On Thu, Apr 23, 2009 at 09:56:05AM -0500, Jonathan Kulp wrote:
 Graham Percival wrote:
 
 I will admit that outputting the version number appears in the
 Text list, rather than the titles.  In fact, both snippets should
 appear in both Text and Titles, but currently they're only in one
 list.  Somebody should fix this.
 
 Ok I found the snippets in the database, clicked modify, added the
 missing Text and Title tags in the respective snippets and clicked
 save for each one.  I assume that since I was apparently allowed to
 modify these snippets that I am now an editor?
 
 I guess.  I just checked, and it looks like it was all done
 correctly.
 
  That's...pretty easy :).
 
 No kidding.  Now do you see why I wanted somebody who hasn't
 fought with git or learned the doc policy to do it?
 
 
 Of course, the job is much longer.  Every snippet needs to be
 examined.  The person doing this can exercise a fair amount of
 judgment over how many tags to have, how relevant something should
 be to warrent getting a tag, etc.  Ideally, they'd also make sure
 the snippets all conform to the doc policies... easy-to-understand
 variable names (no \thrsddbx for three-sided box), etc.

And we really (IMO) need to be doing it as part of moving to a 2.12 LSR.
We should also be evaluating:

A) Does it run in 2.12?
B) Is it needed in 2.12 (i.e. has 2.12 introduced new features such that
the snippet become irrelevant)?

 
 I'm estimating 20 hours to organize the current lot, plus 1 hour
 per month. 

With checking for vriable names, 2.12 validity, etc. I estimate about 15
minutes per snippet (although the time may go down as skill goes up).  With
448 files in the LSR (at least according to Valentin's lsr tarball at
http://lsr-update.lilynet.net) it's about 100 hours.

Of course, if we drop to only the docs snippets, there will be less time
than that.

I think we need more than one person.

Thanks,

Carl



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


Re: date in footer?

2009-04-23 Thread Carl D. Sorensen



On 4/23/09 12:04 PM, Jonathan Kulp jonlancek...@gmail.com wrote:

 Graham Percival wrote:
 On Thu, Apr 23, 2009 at 10:31:22AM -0600, Carl D. Sorensen wrote:
 And we really (IMO) need to be doing it as part of moving to a 2.12 LSR.
 We should also be evaluating:
 
 A) Does it run in 2.12?
 B) Is it needed in 2.12 (i.e. has 2.12 introduced new features such that
 the snippet become irrelevant)?
 
 There aren't so many new features in 2.12.  And only the
 doc-related snippets need to be evaluated.
 
 
 I notice there's a TODO in the Contrib Guide about making multiple
 versions of LP coexist on the same system.  This is something I would
 need to do to test these snippets, since I'm always runnning the latest
 development version.  I'm not sure how to make 2.12 available at the
 same time.  Can someone point me in the right direction?  If I get it
 working then maybe I could also update that part of the CG.

I think all you have to do is to install 2.12 from the download page, and
have a different working directory for the 2.13 source.  And then you
can follow the instructions in the file HACKING that exists in the top
LilyPond source directory.

Of course, those instructions won't work on Windows, but IIRC you have Linux
anyway.

 I could start checking snippets a few at a time at night after the kids
 are in bed once I get 2.12 running.
 
But you can't update any snippets to 2.12 and put them on LSR until LSR is
moved to 2.12.  But if you just keep the updated, checked, and approved
snippets in a directory, we can upload the changes later, I think.

 BTW, Graham, in the 2.12 docs, CG 1.1.2 Main source code it still says
 FIXME test this for the git commands.  The 2.13 version of same
 doesn't say this.  The commands work perfectly (I used them yesterday
 after a reinstall of my OS).  I could go in and delete the FIXME
 stuff, but I'm not sure where to get at the 2.12 source files.  I'm
 pretty sure my whole git repo is 2.13. How do I make a change to the
 2.12 docs?

For the time being, you don't make changes to the 2.12 docs.  2.12 is the
last stable release; contributors should be working on 2.13 right now.
Similarly, we are not backporting bug-fixes to 2.12.  Besides, none of those
changes would be available until we have a new release, and new releases
appear to be problematic right now.

If another release of 2.12 is planned (e.g. because we backport some
bugfixes from 2.13), then we could update the docs.  But right now, I don't
see that happening.  I think we have already seen the last 2.12 release.

Thanks,

Carl




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


Re: Playing a file in midi

2009-04-22 Thread Carl D. Sorensen



On 4/22/09 5:09 AM, Shayne Picard shay...@gmail.com wrote:

 How can I play a file in midi?
 

See Notation Reference Section 3.5 in the LilyPond documentation.

Thanks,

Carl
 
 
 



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


Re: Vertical Spacing question

2009-04-22 Thread Carl D. Sorensen



On 4/22/09 9:13 AM, Mischa Falkenburg
because_producti...@myfairpoint.net wrote:

 Hello All,
 
 I'm using version 2.12.1, and my piece utilizes a GrandStaff with 6 Staffs.
 The .pdf file generated shows all the pages, except for the final page,
 with a big space between two GrandStaffs.
 
 I would like to modify the spacing so that three GS's would show on each
 page. Is this possible?
 

Perhaps, if there's enough space on the page.  Please review Section 4.6.2
of the Notation Reference.

I think you want to set system-count.

HTH,

Carl




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


Re: Moving dynamics to a fixed vertical position (inside the staff)

2009-04-20 Thread Carl D. Sorensen



On 4/20/09 3:11 PM, Reinhold Kainhofer reinh...@kainhofer.com wrote:


 
 Is there any way to position a dynamic sign at an explicit staff-relative (not
 note-relative) vertical position?

Here's a hack that uses staff-padding together with a change in the Y-extent
that makes it work.

However, if you try to put it more than 2 staff lines down, then it will
throw it well below the staff.

I don't know if this will work for you or not, but at least it's a start.

Carl




dyn2.ly
Description: dyn2.ly


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


Re: Moving dynamics to a fixed vertical position (inside the staff)

2009-04-20 Thread Carl D. Sorensen



On 4/20/09 4:32 PM, Neil Puttock n.putt...@gmail.com wrote:

 2009/4/20 Reinhold Kainhofer reinh...@kainhofer.com:
 
 Is there any way to position a dynamic sign at an explicit staff-relative
 (not
 note-relative) vertical position?
 
 Since the dynamic's X-parent is the notehead, you can normalize its
 position by retrieving the notehead's Y-offset:
 
 dynamicsAllInside = #(define-music-function (parser location offsetX shiftY)
 (number? number?)
 #{
   \once \override DynamicText #'X-offset = $offsetX
 %   \once \override DynamicLineSpanner #'Y-offset = #0
   \once \override DynamicText #'Y-extent = #(cons 1 -1)
   \once \override DynamicLineSpanner #'Y-extent = #(cons 1 -1)
   \once \override DynamicText #'Y-offset =
 $(lambda (grob)
(let* ((head (ly:grob-parent grob X))
   (offset (ly:grob-property head 'Y-offset)))
  (- (/ shiftY 2) offset 0.75)))
 #})

Thanks, Neil.  You just saved me the time of figuring out how to do this.
After I sent my hack, I realized that the trick was to get the parent offset
and then do a shift from that.  But then I found that you had already
written it!

Carl



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


  1   2   3   4   >