Hi List,
this is a somewhat specialist request, and more of a
long-term project, but I'm hoping you nice people can help
me with something I'd like to do with Lily someday.
If you've been watching the OpenLilyLib repository,
you'll see that Urs has been working on a set of tools for
rendering music in just intonation. He (quite modestly) says
that it isn't ready for production, but there are already
some impressive things it can do: for one, the interface
allows to input a fraction and get back a nearest-semitone
pitch with a deviation in cents *automatically*, which is
something the commercial programs don't offer in any way
(every composer I know who works with JI just inputs text
entries manually for every note, with no change in, for
example, MIDI output for ability to handle transpositions).
There's something I'd very much like to do with this,
largely out of my own (admittedly rather opinionated) view
on the best means of producing accidentals for just
intonation. I'm going to assume some familiarity with just
intonation concepts, but (in short) it works like this: the
relationship between two pitches is defined in terms of the
frequency relationship, given usually as a fraction. For
example, the interval of a perfect fifth may be rendered as
3/2: that is, if I play notes with base frequencies of 200
and 300Hz, we hear them as a (very purely tuned) fifth. The
equal-tempered one you have on a piano (ie, 7 semitones) is
about two 1/100th of a semitone (called "cents" logically
enough) too narrow to be pure (ie, a 3/2 fifth is about 702
cents).
Here's my thing: I believe that the most appropriate type
of accidental for such a system is one that reflects the
harmonic ratio, not the number of steps on a scale. Flats
and sharps tell us whether a pitch is lowered or raised from
its "natural" position in the scale, and just intonation
doesn't have those positions. So, I designed accidentals
that graphically reflect the harmonic ratio between a note
and the tonic.
There are some potential complicating factors here.
First, the accidentals I use change depending on the prime
factorization of the ratio involved: for example, the ratio
9/8 (a type of whole tone) would comprise two of the symbol
for 3 (because "9/8" is really "(3*3)/8" ), which means that
Urs' interface for JI ratios would need an add-on to do
prime factorization of the ratios (which is also
computationally intensive, even for relatively simple
numbers) or a means to encode ratios as lists of primes that
are then calculated to return the value in cents (that is,
do the process in reverse, starting from "(3*3)/8" and
getting 9/8, which might be easier to do).
The advantage here, though, would be this: one of the
interesting things about just intonation is that there is no
theoretical limit to what kinds of ratios you use. You could
theoretically have unique signs for all the primes you want,
and then the draw function could build them on the fly. The
accidentals become modular, scaling to whatever level of
complexity the composer wants. Harry Partch writes music
that tops out at the 13th overtone, but La Monte Young has
pieces with primes in the upper 300s.
So, List: this is, as I said, a somewhat long-term
project, but would any of you be willing to help me learn/do
the programming necessary to develop a system like this? I
also have in mind a more general add-on to the OLL
just-intonation library: I'd like to see a set of different
.ily files, each with different sets of accidentals, which a
composer could \include into the score as needed. For
example, I could write the ratios using my system, or use a
system that shows accidentals approximated to the nearest
12th-tone, with cents deviation for more exact tuning (which
might be of more relevance to keyed instruments).
I can send a few hand-drawn mock-ups of the accidentals
to show what I mean; I've been doing them by hand, but I'd
really like to see them engraved.
Thanks for the help.
Cheers,
A