Re: Quarter-tone notation with arrows
Kees van den Doel wrote: I agree it makes total sense to have an accidental_level2 which make additional microtonal alterations to the 12 diatonic pitches and their equally tempered accidental_level1 alterations (b and #), but there is only one level of accidental in Lilypond, as it adheres to the strict Western notation principles of diatonic pitches modified by an accidental. Yup. Which is a bit of a bugger in some respects, as I just discovered from some experiments ... Graham Breed was absolutely right about transposition problems with my cheaty way of getting these microtonal accidentals. I've attached the .ly files for people's amusement. I don't know if it's even _possible_ to make them work, but the errors seem to crop up when the transposition would normally transform a natural into a flat or sharp (or vice versa). If your microtonal accidentals are approximate it makes logical sense to me that B_natural_downarrow and B_flat_uparrow should be assigned slightly different pitches, for they will not sound the same anyways. Just as Bb and A# are not the same pitches in all but one tuning. Well ... different or not, I'm coming to the conclusion that GB's idea of tweaks instead of different accidental names is the way to go, since we ARE talking about an addition that shades a given pitch up or down instead of being a unique accidental in its own right. So what I'm wondering now is whether it's possible to define a tweak that adds an up (or down) arrow to the accidental (whatever accidental that may be) and also tweaks the pitch up or down by the desired amount, but which would be transparent as far as transposition is concerned. Then I could just go around writing things like, \ih cis \qeh d and all should be both happy _and_ transposeable. But I don't know if that's possible ... ? Thanks to all of you for all your help so far, -- Joe #(define-public SHARP-Q-FLAT 1001/4000) #(define-public FLAT-Q-SHARP -1001/4000) quartertonearrowPitchNames = #`( (cff . ,(ly:make-pitch -1 0 DOUBLE-FLAT)) (ctqf . ,(ly:make-pitch -1 0 THREE-Q-FLAT)) (cf . ,(ly:make-pitch -1 0 FLAT)) (cfqs . ,(ly:make-pitch -1 0 FLAT-Q-SHARP)) (cqf . ,(ly:make-pitch -1 0 SEMI-FLAT)) (c . ,(ly:make-pitch -1 0 NATURAL)) (cqs . ,(ly:make-pitch -1 0 SEMI-SHARP)) (csqf . ,(ly:make-pitch -1 0 SHARP-Q-FLAT)) (cs . ,(ly:make-pitch -1 0 SHARP)) (ctqs . ,(ly:make-pitch -1 0 THREE-Q-SHARP)) (css . ,(ly:make-pitch -1 0 DOUBLE-SHARP)) (cx . ,(ly:make-pitch -1 0 DOUBLE-SHARP)) (dff . ,(ly:make-pitch -1 1 DOUBLE-FLAT)) (dtqf . ,(ly:make-pitch -1 1 THREE-Q-FLAT)) (df . ,(ly:make-pitch -1 1 FLAT)) (dfqs . ,(ly:make-pitch -1 1 FLAT-Q-SHARP)) (dqf . ,(ly:make-pitch -1 1 SEMI-FLAT)) (d . ,(ly:make-pitch -1 1 NATURAL)) (dqs . ,(ly:make-pitch -1 1 SEMI-SHARP)) (dsqf . ,(ly:make-pitch -1 1 SHARP-Q-FLAT)) (ds . ,(ly:make-pitch -1 1 SHARP)) (dtqs . ,(ly:make-pitch -1 1 THREE-Q-SHARP)) (dss . ,(ly:make-pitch -1 1 DOUBLE-SHARP)) (dx . ,(ly:make-pitch -1 1 DOUBLE-SHARP)) (eff . ,(ly:make-pitch -1 2 DOUBLE-FLAT)) (etqf . ,(ly:make-pitch -1 2 THREE-Q-FLAT)) (ef . ,(ly:make-pitch -1 2 FLAT)) (efqs . ,(ly:make-pitch -1 2 FLAT-Q-SHARP)) (eqf . ,(ly:make-pitch -1 2 SEMI-FLAT)) (e . ,(ly:make-pitch -1 2 NATURAL)) (eqs . ,(ly:make-pitch -1 2 SEMI-SHARP)) (esqf . ,(ly:make-pitch -1 2 SHARP-Q-FLAT)) (es . ,(ly:make-pitch -1 2 SHARP)) (etqs . ,(ly:make-pitch -1 2 THREE-Q-SHARP)) (ess . ,(ly:make-pitch -1 2 DOUBLE-SHARP)) (ex . ,(ly:make-pitch -1 2 DOUBLE-SHARP)) (fff . ,(ly:make-pitch -1 3 DOUBLE-FLAT)) (ftqf . ,(ly:make-pitch -1 3 THREE-Q-FLAT)) (ff . ,(ly:make-pitch -1 3 FLAT)) (ffqs . ,(ly:make-pitch -1 3 FLAT-Q-SHARP)) (fqf . ,(ly:make-pitch -1 3 SEMI-FLAT)) (f . ,(ly:make-pitch -1 3 NATURAL)) (fqs . ,(ly:make-pitch -1 3 SEMI-SHARP)) (fsqf . ,(ly:make-pitch -1 3 SHARP-Q-FLAT)) (fs . ,(ly:make-pitch -1 3 SHARP)) (ftqs . ,(ly:make-pitch -1 3 THREE-Q-SHARP)) (fss . ,(ly:make-pitch -1 3 DOUBLE-SHARP)) (fx . ,(ly:make-pitch -1 3 DOUBLE-SHARP)) (gff . ,(ly:make-pitch -1 4 DOUBLE-FLAT)) (gtqf . ,(ly:make-pitch -1 4 THREE-Q-FLAT)) (gf . ,(ly:make-pitch -1 4 FLAT)) (gfqs . ,(ly:make-pitch -1 4 FLAT-Q-SHARP)) (gqf . ,(ly:make-pitch -1 4 SEMI-FLAT)) (g . ,(ly:make-pitch -1 4 NATURAL)) (gqs . ,(ly:make-pitch -1 4 SEMI-SHARP)) (gsqf . ,(ly:make-pitch -1 4 SHARP-Q-FLAT)) (gs . ,(ly:make-pitch -1 4 SHARP)) (gtqs . ,(ly:make-pitch -1 4 THREE-Q-SHARP)) (gss . ,(ly:make-pitch -1 4 DOUBLE-SHARP)) (gx . ,(ly:make-pitch -1 4 DOUBLE-SHARP)) (aff .
Re: Quarter-tone notation with arrows
Joseph Wakeling wrote: I've attached the .ly files for people's amusement. I don't know if it's even _possible_ to make them work, but the errors seem to crop up when the transposition would normally transform a natural into a flat or sharp (or vice versa). Whoops, I attached the wrong files. This has the right versions. #(define-public SHARP-Q-FLAT 1001/4000) #(define-public FLAT-Q-SHARP -1001/4000) quartertonearrowPitchNames = #`( (cff . ,(ly:make-pitch -1 0 DOUBLE-FLAT)) (ctqf . ,(ly:make-pitch -1 0 THREE-Q-FLAT)) (cf . ,(ly:make-pitch -1 0 FLAT)) (cfqs . ,(ly:make-pitch -1 0 FLAT-Q-SHARP)) (cqf . ,(ly:make-pitch -1 0 SEMI-FLAT)) (c . ,(ly:make-pitch -1 0 NATURAL)) (cqs . ,(ly:make-pitch -1 0 SEMI-SHARP)) (csqf . ,(ly:make-pitch -1 0 SHARP-Q-FLAT)) (cs . ,(ly:make-pitch -1 0 SHARP)) (ctqs . ,(ly:make-pitch -1 0 THREE-Q-SHARP)) (css . ,(ly:make-pitch -1 0 DOUBLE-SHARP)) (cx . ,(ly:make-pitch -1 0 DOUBLE-SHARP)) (dff . ,(ly:make-pitch -1 1 DOUBLE-FLAT)) (dtqf . ,(ly:make-pitch -1 1 THREE-Q-FLAT)) (df . ,(ly:make-pitch -1 1 FLAT)) (dfqs . ,(ly:make-pitch -1 1 FLAT-Q-SHARP)) (dqf . ,(ly:make-pitch -1 1 SEMI-FLAT)) (d . ,(ly:make-pitch -1 1 NATURAL)) (dqs . ,(ly:make-pitch -1 1 SEMI-SHARP)) (dsqf . ,(ly:make-pitch -1 1 SHARP-Q-FLAT)) (ds . ,(ly:make-pitch -1 1 SHARP)) (dtqs . ,(ly:make-pitch -1 1 THREE-Q-SHARP)) (dss . ,(ly:make-pitch -1 1 DOUBLE-SHARP)) (dx . ,(ly:make-pitch -1 1 DOUBLE-SHARP)) (eff . ,(ly:make-pitch -1 2 DOUBLE-FLAT)) (etqf . ,(ly:make-pitch -1 2 THREE-Q-FLAT)) (ef . ,(ly:make-pitch -1 2 FLAT)) (efqs . ,(ly:make-pitch -1 2 FLAT-Q-SHARP)) (eqf . ,(ly:make-pitch -1 2 SEMI-FLAT)) (e . ,(ly:make-pitch -1 2 NATURAL)) (eqs . ,(ly:make-pitch -1 2 SEMI-SHARP)) (esqf . ,(ly:make-pitch -1 2 SHARP-Q-FLAT)) (es . ,(ly:make-pitch -1 2 SHARP)) (etqs . ,(ly:make-pitch -1 2 THREE-Q-SHARP)) (ess . ,(ly:make-pitch -1 2 DOUBLE-SHARP)) (ex . ,(ly:make-pitch -1 2 DOUBLE-SHARP)) (fff . ,(ly:make-pitch -1 3 DOUBLE-FLAT)) (ftqf . ,(ly:make-pitch -1 3 THREE-Q-FLAT)) (ff . ,(ly:make-pitch -1 3 FLAT)) (ffqs . ,(ly:make-pitch -1 3 FLAT-Q-SHARP)) (fqf . ,(ly:make-pitch -1 3 SEMI-FLAT)) (f . ,(ly:make-pitch -1 3 NATURAL)) (fqs . ,(ly:make-pitch -1 3 SEMI-SHARP)) (fsqf . ,(ly:make-pitch -1 3 SHARP-Q-FLAT)) (fs . ,(ly:make-pitch -1 3 SHARP)) (ftqs . ,(ly:make-pitch -1 3 THREE-Q-SHARP)) (fss . ,(ly:make-pitch -1 3 DOUBLE-SHARP)) (fx . ,(ly:make-pitch -1 3 DOUBLE-SHARP)) (gff . ,(ly:make-pitch -1 4 DOUBLE-FLAT)) (gtqf . ,(ly:make-pitch -1 4 THREE-Q-FLAT)) (gf . ,(ly:make-pitch -1 4 FLAT)) (gfqs . ,(ly:make-pitch -1 4 FLAT-Q-SHARP)) (gqf . ,(ly:make-pitch -1 4 SEMI-FLAT)) (g . ,(ly:make-pitch -1 4 NATURAL)) (gqs . ,(ly:make-pitch -1 4 SEMI-SHARP)) (gsqf . ,(ly:make-pitch -1 4 SHARP-Q-FLAT)) (gs . ,(ly:make-pitch -1 4 SHARP)) (gtqs . ,(ly:make-pitch -1 4 THREE-Q-SHARP)) (gss . ,(ly:make-pitch -1 4 DOUBLE-SHARP)) (gx . ,(ly:make-pitch -1 4 DOUBLE-SHARP)) (aff . ,(ly:make-pitch -1 5 DOUBLE-FLAT)) (atqf . ,(ly:make-pitch -1 5 THREE-Q-FLAT)) (af . ,(ly:make-pitch -1 5 FLAT)) (afqs . ,(ly:make-pitch -1 5 FLAT-Q-SHARP)) (aqf . ,(ly:make-pitch -1 5 SEMI-FLAT)) (a . ,(ly:make-pitch -1 5 NATURAL)) (aqs . ,(ly:make-pitch -1 5 SEMI-SHARP)) (asqf . ,(ly:make-pitch -1 5 SHARP-Q-FLAT)) (as . ,(ly:make-pitch -1 5 SHARP)) (atqs . ,(ly:make-pitch -1 5 THREE-Q-SHARP)) (ass . ,(ly:make-pitch -1 5 DOUBLE-SHARP)) (ax . ,(ly:make-pitch -1 5 DOUBLE-SHARP)) (bff . ,(ly:make-pitch -1 6 DOUBLE-FLAT)) (btqf . ,(ly:make-pitch -1 6 THREE-Q-FLAT)) (bf . ,(ly:make-pitch -1 6 FLAT)) (bfqs . ,(ly:make-pitch -1 6 FLAT-Q-SHARP)) (bqf . ,(ly:make-pitch -1 6 SEMI-FLAT)) (b . ,(ly:make-pitch -1 6 NATURAL)) (bqs . ,(ly:make-pitch -1 6 SEMI-SHARP)) (bsqf . ,(ly:make-pitch -1 6 SHARP-Q-FLAT)) (bs . ,(ly:make-pitch -1 6 SHARP)) (btqs . ,(ly:make-pitch -1 6 THREE-Q-SHARP)) (bss . ,(ly:make-pitch -1 6 DOUBLE-SHARP)) (bx . ,(ly:make-pitch -1 6 DOUBLE-SHARP)) ) %% set pitch names. pitchnames = \quartertonearrowPitchNames #(ly:parser-set-note-names parser pitchnames) quartertonearrowGlyphs = #`( (4001/4000 . accidentals.doublesharp) (1 . accidentals.doublesharp) (3001/4000 . accidentals.sharp.arrowup) (3/4 . accidentals.sharp.arrowup) (2001/4000 . accidentals.sharp) (1/2 . accidentals.sharp) (1001/4000 . accidentals.sharp.arrowdown)
Re: Quarter-tone notation with arrows
Kees van den Doel wrote: Unfortunately Western notation doesn't work like that. Accidentals (microtonal or not) operate on the 7 diatonic pitches, not on 12 semitones. I think you think the arrow somehow alters already altered notes (like Bb), but the alteration operates on the diatonic notes, so there can be no difference between natural-quarterflat and flat-quartersharp, but C# and Db are distinct. It's trivial (and intuitive, from a reader's point of view) to add an up- or down-arrow to a note/accidental to raise or lower its pitch by a quarter-tone. Whether this violates some theoretical ideal of how Western notation 'should' work seems to me to be not very important -- the notation _can_ be used in this way and it's expressively useful to do so. (I can come up with plenty of other examples where it would be preferable to alternatives, and plenty of other examples of breaches of notational correctness that are more intuitive and easy to understand than the strictly-correct notation.) Whether Lilypond (or other notation software) easily permits this use of notation is another matter ... :-) -- Joe ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
Graham Breed wrote: If there's some intuitive reason for choosing different logical equivalents, perhaps that should be reflected in different pitch alterations anyway. This was certainly one thought going through my head. Though it's not something I write myself, I was also thinking somewhat of Ben Johnston's notation for just intonation, where each successive addition to the accidentals (up/down arrows, 13 or upside-down 13, + or -) represents a successive refinement of the pitch. This second case might well be best dealt with via 'tweaks' instead of accidentals in the conventional case. The idea is you can only have one set of quartertone symbols at a time, but you can use a \tweak or \override to switch between sets. I have proof of concept examples for pure/mixed Sagittal. The cheating looks fine until you want to do transpositions. Transposing C up-a-quartertone up by the same quartertone won't give C sharp, for example. If you think it should that's an indication you're treating quartertones equally, of course. That's an interesting point. It hadn't occurred to me that this might be an issue -- I don't think I will be using quarter-tone transpositions in my own writing any time soon -- but I'll do a couple of experiments to see if I can get my cheat to deal with this possibility. ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Quarter-tone notation with arrows
Hello all, One of the delights to see in the News for 2.12 was the new material on quarter-tone and other microtonal notation. However, I have one problem... The standard Lilypond quarter-tone notation uses pitches -is and -es (sharp and flat), -ih and -eh (quarter-tone sharp and flat) and -isih and -eseh (three-quarter sharp and flat). This is fine with the standard quarter-tone accidentals but arrow notation allows for more flexibility: you can have -iseh (sharp, a quarter down) or esih (flat, a quarter sharp), and these are not necessarily the same as -ih or -eh, just as D-flat is not necessarily the same as C-sharp. Anyway, from looking at the Makam example it's apparent how to define arbitrary pitch names to associate with given microtonal alterations; it would be easy to define -iseh and -esih. What I don't understand is the glyph definition, which appears to associate a given alteration uniquely with a given accidental. So, for example, a pitch alteration of -1/4 can apparently only be associated with one accidental even though theoretically it could be represented by _either_ a natural sign with a down-arrow or a flat sign with an up-arrow. The 'if' statements from makam.ly don't give any clue because as far as I can tell they relate to a predefined static term (in this case, an option as to whether the EKSIK-IKI AND -UC flats should have a slash). I guess I could cheat by making e.g. -eh -24/100 and -esih -26/100, which would give a working solution, but is there a way of getting what I want (a full set of quarter-tone arrow accidentals) without such recourse? Thanks best wishes, -- Joe ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
On 5 Apr 2009, at 14:20, Joseph Wakeling wrote: One of the delights to see in the News for 2.12 was the new material on quarter-tone and other microtonal notation. However, I have one problem... Perhaps Graham Breed can help - I cc him. Hans ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
- Original Message - From: Joseph Wakeling joseph.wakel...@webdrake.net Date: Sunday, April 5, 2009 5:21 am Subject: Quarter-tone notation with arrows To: lilypond-user@gnu.org Hello all, One of the delights to see in the News for 2.12 was the new material on quarter-tone and other microtonal notation. However, I have one problem... The standard Lilypond quarter-tone notation uses pitches -is and -es (sharp and flat), -ih and -eh (quarter-tone sharp and flat) and -isih and -eseh (three-quarter sharp and flat). This is fine with the standard quarter-tone accidentals but arrow notation allows for more flexibility: you can have -iseh (sharp, a quarter down) or esih (flat, a quarter sharp), and these are not necessarily the same as -ih or -eh, just as D-flat is not necessarily the same as C-sharp. Anyway, from looking at the Makam example it's apparent how to define arbitrary pitch names to associate with given microtonal alterations; it would be easy to define -iseh and -esih. What I don't understand is the glyph definition, which appears to associate a given alteration uniquelywith a given accidental. So, for example, a pitch alteration of -1/4 can apparently only be associated with one accidental even though theoretically it could be represented by _either_ a natural sign with a down-arrow or a flat sign with an up-arrow. The 'if' statements from makam.ly don't give any clue because as far as I can tell they relate to a predefined static term (in this case, an option as to whether the EKSIK-IKI AND -UC flats should have a slash). I guess I could cheat by making e.g. -eh -24/100 and -esih -26/100, which would give a working solution, but is there a way of getting what I want (a full set of quarter-tone arrow accidentals) without such recourse? A given alteration results in one specific glyph. Of course a -1/4 flat can be presented by numerous glyphs, anything you like, really, but you'll have to decide which one is the default and if you want another symbol at some point in the score (I can't imagine why you would want that) you'll have to override the glyph. Kees ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
Kees van den Doel wrote: A given alteration results in one specific glyph. :-( Of course a -1/4 flat can be presented by numerous glyphs, anything you like, really, but you'll have to decide which one is the default and if you want another symbol at some point in the score (I can't imagine why you would want that) you'll have to override the glyph. Well, why I _want_ it is for much the same reason as why, if you want the note that is one semitone in-between C and D, sometimes you want it to be a C sharp and sometimes a D flat... :-) Another reason could be that if your quarter-tones are _approximate_ rather than precise, it can be helpful to know which of the 12 standard notes you are bending. Graham Breed wrote me a nice note suggesting defining some kind of override or tweak to redefine the symbol on the fly, but considering it I think I'll probably go with 'cheaty' definitions of pitch alterations, like +/- 101/400 (or 1001/4000 or whatever seems most appropriate:-) ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
- Original Message - From: Joseph Wakeling joseph.wakel...@webdrake.net Date: Sunday, April 5, 2009 2:41 pm Subject: Re: Quarter-tone notation with arrows To: Kees van den Doel kvand...@shaw.ca Cc: lilypond-user@gnu.org Kees van den Doel wrote: A given alteration results in one specific glyph. :-( Of course a -1/4 flat can be presented by numerous glyphs, anything you like, really, but you'll have to decide which one is the default and if you want another symbol at some point in the score (I can't imagine why you would want that) you'll have to override the glyph. Well, why I _want_ it is for much the same reason as why, if you want the note that is one semitone in-between C and D, sometimes you want it to be a C sharp and sometimes a D flat... :-) Another reason could be that if your quarter-tones are _approximate_ rather than precise, it can be helpful to know which of the 12 standardnotes you are bending. Unfortunately Western notation doesn't work like that. Accidentals (microtonal or not) operate on the 7 diatonic pitches, not on 12 semitones. I think you think the arrow somehow alters already altered notes (like Bb), but the alteration operates on the diatonic notes, so there can be no difference between natural-quarterflat and flat-quartersharp, but C# and Db are distinct. Graham Breed wrote me a nice note suggesting defining some kind of override or tweak to redefine the symbol on the fly, but considering it I think I'll probably go with 'cheaty' definitions of pitch alterations,like +/- 101/400 (or 1001/4000 or whatever seems most appropriate:-) I think that works so well and easy that there is no reason to have anything better :-) Kees ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Quarter-tone notation with arrows
Joseph Wakeling wrote: Another reason could be that if your quarter-tones are _approximate_ rather than precise, it can be helpful to know which of the 12 standard notes you are bending. If there's some intuitive reason for choosing different logical equivalents, perhaps that should be reflected in different pitch alterations anyway. Graham Breed wrote me a nice note suggesting defining some kind of override or tweak to redefine the symbol on the fly, but considering it I think I'll probably go with 'cheaty' definitions of pitch alterations, like +/- 101/400 (or 1001/4000 or whatever seems most appropriate:-) Yes, sorry that went privately. I forgot the shift-ctrl to reply. The idea is you can only have one set of quartertone symbols at a time, but you can use a \tweak or \override to switch between sets. I have proof of concept examples for pure/mixed Sagittal. The cheating looks fine until you want to do transpositions. Transposing C up-a-quartertone up by the same quartertone won't give C sharp, for example. If you think it should that's an indication you're treating quartertones equally, of course. Graham ___ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user