lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bass clarinet fingering chart


From: Mark Polesky
Subject: Re: Bass clarinet fingering chart
Date: Tue, 7 Jul 2009 17:00:58 -0700 (PDT)

Mike Solomon wrote:
> Hey lilypond-users,
>     Before I put this on the LSR, please play around with this.
> Specifically, please
>
> 1) 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.

I have a couple of general recommendations.
1) Read about good scheme style here:
   http://community.schemewiki.org/?scheme-style
2) I think 2-space indentations are best (you're using 4).
3) keep lines of code within 72 characters each. Many e-mail
   clients automatically wrap long lines, so long single-line
   comments become several lines, which means that users copying
   your code from e-mail get lines of code that should've been
   commented out. Then the code doesn't compile. That's what
   happened to me with the line that starts ";degree of stretch".
   Same with the line that starts "% USEAGE".
4) a list with no variables, like (list #t #t #f), can be
   shortened to '(#t #t #f).
5) I read that the biblical definition of pi is 3 (1 Kings 7:23).
   In guile, (angle -1) returns pi accurate to 14 decimal places.

Format your code! Instead of this:

\relative c' { c1^\markup { \multiphonic #(list 1.0 0.5 #t #f #t #f #t #t #t
#t (list #f #f #f #t #f #t ) (list #t #t #f #f #f #f #t ) (list "2" "1" )  )
}  }

do this:

\relative c' {
  c1^\markup {
    \multiphonic
       #'(1.0 0.5 #t #f #t #f #t #t #t #t
          (#f #f #f #t #f #t)
          (#t #t #f #f #f #f #t)
          ("2" "1"))
  }
}

LilyPond code tends to have each closing bracket on its own line,
whereas scheme lumps closing parentheses together. Deviating from
these basics makes it hard for others to read and will cause many
developers to just skip your post altogether.

Also in markups, you don't need brackets for a single command:

\relative c' {
  c1^\markup
    \multiphonic
       #'(1.0 0.5 #t #f #t #f #t #t #t #t
          (#f #f #f #t #f #t)
          (#t #t #f #f #f #f #t)
          ("2" "1"))
}

And it's a little weird to see a command accepting an argument
consisting of 2 numbers, 8 booleans, and then 3 lists. This might
be easier to work with:

\relative c' {
  c1^\markup
    \multiphonic
       #'((1.0 0.5)
          (#t #f #t #f #t #t #t #t)
          (#f #f #f #t #f #t)
          (#t #t #f #f #f #f #t)
          ("2" "1"))
}

Lastly, make sure to get some sleep -- it's important.

Hope this helps.
- Mark


      




reply via email to

[Prev in Thread] Current Thread [Next in Thread]