On Mon, 2024-10-28 at 06:25 -0300, Lucas Cavalcanti wrote:
> Hello! I'm fully migrating from Guitar Pro to Lilypond in relation to
> musical engraving and I have hit a roadblock: I cannot write the
> closed hi hat without its "bold" font (same problem with the "splash"
> cymbal and the cymcb) nor can I write the half open hi hat as a semi
> "X Circle". Also I don't know how to add this "little hat" to the
> chinese cymbal (cymch).

I'd suggest taking a look at this if you haven't (scroll to the bottom
and read upwards):

<http://web.archive.org/web/20201111224331/http://lilypondcookbook.com/
>

It's a great recipe to get lilypond drum set notation to look more
normal.  It doesn't help with the china cymbal though.

For that you probably need to create a brand new notehead glyph.  And I
don't know how to do that.

Otherwise you can try to add an ornamentation to the existing note.

I just have the china cymbal with a diamond notehead on a high staff
line:

(chinesecymbal    diamond   #f         10)

And you can print a drum key so that there's no confusion on what the
noteheads and staff positions mean.  I believe there's a recipe for
that in the link above.

And btw, I noticed that guitar pro has a symbol for hitting the edge of
a cymbal.  For example, playing the edge of the ride vs the bow.  I
haven't seen this in lilypond.  I don't know if there are others that
you might miss.

> Just to clear things out, this problem is merely cosmetic. I have
> created a functional and partially equal drum-table to GUITAR PRO's
> drum table.

Writing drum parts in lilypond will be frustrating when you actually
try...

And Guitar Pro has some other nice features that you may miss with
lilypond.  Like being able to play back the score with a cursor
following the notation.  In some regards, it's better for drum set
notation.

> Also, on a side note: can I add this hash table directly to my
> lilypond path in a way that I can call it like other drum tables? For
> example, with the command drumStyleTable = #weinberg-drums-style? Or
> do I need to compile the source to have this embed?

You can probably add it to the source without compiling by editing the
right file, but I don't think that's a good idea.  For one, you could
forget you did that and with upgrades to lilypond you'll have breakage
that might be frustrating.  I personally don't think it's a good idea.

The better way is to put your drum table in a separate file and then
include it in your score.  What I did was arrange my transcriptions
into a directory structure that looks like this:

.
├── inc
│   ├── dt-drum-table.ily
│   └── <other drum template includes>
├── lsr
│   └── <other lsr snippets>
├── transcriptions
│   └── path
│           └── to
│               └── song.ly

Then in song.ly, I put

linc="../../../"  % set the topdir path
\include #(string-append linc "inc/dt-drum-table.ily")

and in the score:

drumStyleTable = #(alist->hash-table drum-table)

The reason I created the linc variable to hold the path is that so I
don't have to change the path for every include.  But it's easy enough
to find/replace if that's what you prefer.

I don't know if absolute paths work.  I can't recall.  I wanted to use
relative paths anyway.

Lilypond lacks the ability to specify directories for additional
include files.  At least when I tested all of this back on 2.18.  So
setting the topdir like I do is the workaround.


Reply via email to