|
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-mand 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 thefrogs 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.
[Prev in Thread] | Current Thread | [Next in Thread] |