[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Shape notes
J. David Blackstone
Re: Shape notes
Tue, 19 Feb 2002 20:53:07 -0600
> [moving discussion to lilypond-devel]
> address@hidden writes:
>> Had a burst of energy and creativity tonight. I can now do all the
>> processing I need for each note to decide which shape to print. So, I
>> looked into lilypond/tetex font stuff for the first time. That was a lot
>> more complex than I was expecting.
>> I immediately despaired of using my friend's truetype shaped-note font.
>> But then on a whim I searched on google for "tetex truetype," and it's
>> possible to convert truetype fonts for tetex after all:
> that is problematic; I don't want to support this route. Try to find
> someone to code metafont for the shapes, and have a look at the font
> itself (cd mf ; make out/feta20.dvi ; xdvi out/feta20 ) -- we support
> quite a number of head shapes already.
Yes, I began to see how difficult that route would be very soon. I
originally thought the conversion on that web page would give me a .mf file
and I could paste portions into the original lilypond file. Yes, I had no
idea what I was doing! :) (But I've learned a lot about metafont in the
last 24 hours.)
On top of that, it turned out the font was copyrighted; the information
was embedded in the font and the conversion program printed it out when I
ran it. So, that will never happen, anyway.
Yes, there are many shapes in lilypond already, but they are not the set
of shapes I need for Aiken seven-shaped-note music. :) In order, I need:
do => almost equilateral triangle, flat side down
re => "bowl", flat on top, almost a semicircle on the bottom
mi => diamond
fa => right triangle, reverses direction with stem up/down
so => just like a normal note! :)
la => rectangle, wider than it is tall
ti => "ice cream cone," almost a quarter circle on top, triangle coming to
a point on the bottom
So, it's a little more complicated than one might expect. I guess I will
be getting very familiar with metafont soon.
I did manage to find a good hit on google with the search phrase
"metafont aiken music." I found a metafont someone has defined for a
related seven-shape system called "funk." He actually makes the comment,
"The Aiken system is more widely used, but this was easier to program." I
can use some of that font as a starting point, but I think three or more of
the shapes are different. (I should check to make sure distribution terms
will let me use part of it.)
>> parser. (Hmm... I wonder what happens if it's minor. Ick! Best not to
>> think about that.) Then I've got a relative-scale class I've put together
> don't do that. The signature can be discovered through
> get_property("keySignature") within any engraver.
That gives me a structure representing the sharps and flats in the key
signature, right? But that means I have to count them up and reconstruct
the pitch object the keySignature came from in the first place. The shapes
come from the interval from the key tone. The parser does
Music->transpose(*unsmob_pitch($2)) and then it is gone. I just need to
save off the return value from the unsmob_pitch and use it later.
Okay ... wait. I see keySignature gives me a value called "c0-position."
I'm note sure I completely understand that. By c0, do you mean the
keytone? Or distance of the keytone from c? Perhaps I can use that.
I didn't realize before that I could get the keySignature from any