lilypond-devel
[Top][All Lists]
Advanced

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

Re: Lilypond's internal pitch representation and microtonal notation


From: Hans Aberg
Subject: Re: Lilypond's internal pitch representation and microtonal notation
Date: Mon, 20 Sep 2010 20:30:11 +0200

On 20 Sep 2010, at 18:00, Wols Lists wrote:

As a related issue, have you considered how (different kinds of)
transposition would be handled in your pitch scheme?


This is much simpler: the linear combinations are vectors that you
just add. For example, if a, b, c, ... are represented by 0, M, m+M,
..., and you want to transpose from b to c, just add m. A sharp is M-m
and a flat m-M. If you want transpose from a note x to a note y, just
add y - x.
What you've missed (and I need to address) is "what is x?".

Let's say I want to transpose up three semitones. That's probably easy,
it's a minor third, but it could be an augmented second. So, trying to
remember the pitch class, is it (0,2,sharp) or (0,3,flat)?

The staff system always distinguishes between those, because they have different degrees, which are put in different positions. A minor third m3 = m + M has deg(m + M) = deg m + deg M = 2; an augmented second M + (M - m) = 2M - m has degree 1 as an accidental does not change the degree. The first one will move the notes two steps, and the second one step.

And, for your
example of that, I've currently got a modified chord engraver on the
frogs list that's added a guitar capo property. All the engraver is told is how many semitones to transpose, and it's got to sort out all the keys!

Then with this system, you will have to add E12 enharmonic equivalences afterwards. It is not difficult: add or subtract M - 2m. But the degree of M - 2m is -1, so the position on the staff will change, like for example F# <-> Gb.




reply via email to

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