Glendan Lawler wrote Friday, October 16, 2009 10:57 PM
Caveat: I've answered you questions as best I can, although I really
know nothing about Turkish music.
Hey everyone, I was wondering if someone could help me create a
template
similar to the makam template for Turkish music, but instead for
Byzantine
music. I can make a guess from looking at the makam.ly how it
works, but
there are a few parts I don't understand. First, in this code:
makamPitchNames = #`(
(c . ,(ly:make-pitch -1 0 NATURAL))
What does the -1 and the 0 mean? In think the 0 is the scale
degree, not
sure, but I have no idea what the -1 does.
Explanations of built-in Scheme functions can be found in
Section 4 of the Internals Reference. I quote (knowing nothing
of Turkish music):
"Function: ly:make-pitch octave note alter
"octave is specified by an integer, zero for the octave containing
middle C. note is a number indexing the global default scale, with 0
corresponding to pitch C and 6 usually corresponding to pitch B.
alter is a rational number of 200-cent whole tones for alteration."
Also, when you define things
like NATURAL, and KOMA using the fractions at the beginning, does
that also
affect the pitch for midi output?
I believe so, if the midi player implements bends.
Second:
...
(bbm . ,(ly:make-pitch -1 6 BUYUKMUCENNEB))
;; f for flat.
(cfc . ,(ly:make-pitch -1 0 (- KOMA)))
...
What is the ;; f for flat do?
Nothing. A semi-colon just introduces a comment in Scheme.
Does that mean that cf = c-flat? is that
some kind of option? If I change the "f" to an "x", will that
make cx =
c-flat?
No. Only the explicitly defined pitch names can be used, but you
can change their names if you wish.
And lastly (I hope) :
#(define eksikMirroredSlashedFlat
(if (defined? 'eksikMirroredSlashedFlat)
eksikMirroredSlashedFlat #f))
What is this for and what does it do? It seems like the following
code maps
the values to the corresponding font characters, but then there's
this
little bit of code out front, and I don't know what to make of
it...
This checks if 'eksikMirroredSlashedFlat is defined, returning its
value
if it is and returning #f if it isn't. It's used later (lines 133
and 136) to
select which of two mirroredflat accidentals to use.
Trevor
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user