Talk:Normal forms: Difference between revisions

re
 
(13 intermediate revisions by 4 users not shown)
Line 11: Line 11:
== How best to handle the new canonical form for RTT matrices w/r/t normal form ==
== How best to handle the new canonical form for RTT matrices w/r/t normal form ==


I recently published [[Canonical form|a page on the xen wiki proposing a canonical form for RTT mappings (or comma-bases)]]. This new page of mine solves a problem that this page seems to have set out to solve but not finished the job: establishing a form for RTT matrices which ''uniquely identifies them'', for a definition of uniqueness that is appropriate to the RTT domain. And so my page refers to this page in several places, mostly critiquing it.  
I recently published [[Canonical form|a page on the xen wiki proposing a canonical form for RTT mappings (or comma bases)]]. This new page of mine solves a problem that this page seems to have set out to solve but not finished the job: establishing a form for RTT matrices which ''uniquely identifies them'', for a definition of uniqueness that is appropriate to the RTT domain. And so my page refers to this page in several places, mostly critiquing it.  


I note that this page doesn't even present a unified front. It presents both HNF and IRREF as ''potential'' normal forms. But it is not clear whether a given matrix on a temperament page marked as "normal" is its HNF or IRREF (sometimes they are the same, other times different).  
I note that this page doesn't even present a unified front. It presents both HNF and IRREF as ''potential'' normal forms. But it is not clear whether a given matrix on a temperament page marked as "normal" is its HNF or IRREF (sometimes they are the same, other times different).  


But in particular I note that neither the HNF nor IRREF methods discussed here reliably defactor matrices (or in other words, saturate them, or remove contorsion, though those are confusing terms for the issue that my new page sets out to eliminate). This is what I'm referring to when I speak of a definition of uniqueness that is appropriate to the RTT domain. The HNF of a matrix is unique, yes, as is the IRREF. But these definitions of uniqueness treat e.g. {{map|12 19 28}} and {{map|24 38 56}} as distinct, when from a strict RTT perspective the latter is not distinct ''insofar as how it tempers JI'' from the former. At least when enfactoring is found in mappings, it has musical reality, but in comma-bases it's meaningless and confusing (I can still play music in 24-ET that sounds different than 12-ET, but I can't pump the comma {{vector|-8 8 -2}} any differently than the comma {{vector|-4 4 -1}})). So: enfactored matrices are pathological. (If you're interested in this issue, my new page discusses it in detail.)
But in particular I note that neither the HNF nor IRREF methods discussed here reliably defactor matrices (or in other words, saturate them, or remove contorsion, though those are confusing terms for the issue that my new page sets out to eliminate). This is what I'm referring to when I speak of a definition of uniqueness that is appropriate to the RTT domain. The HNF of a matrix is unique, yes, as is the IRREF. But these definitions of uniqueness treat e.g. {{map|12 19 28}} and {{map|24 38 56}} as distinct, when from a strict RTT perspective the latter is not distinct ''insofar as how it tempers JI'' from the former. At least when enfactoring is found in mappings, it has musical reality, but in comma bases it's meaningless and confusing (I can still play music in 24-ET that sounds different than 12-ET, but I can't pump the comma {{vector|-8 8 -2}} any differently than the comma {{vector|-4 4 -1}})). So: enfactored matrices are pathological. (If you're interested in this issue, my new page discusses it in detail.)


My concern is that the normal forms for RTT matrices which are discussed here have proliferated widely, but I believe that now that a canonical form has been developed (by [[Dave Keenan]], in collaboration with myself, [[Douglas Blumeyer]], inspired in no small part by many insights from [[Gene Ward Smith]]) should be the primary form of RTT matrices used throughout the wiki. Of course I don't plan to do this myself immediately, for numerous reasons. For starters, that'd be a Herculean task. But mostly I wouldn't do something that impactful without soliciting input from the community first.
My concern is that the normal forms for RTT matrices which are discussed here have proliferated widely, but I believe that now that a canonical form has been developed (by [[Dave Keenan]], in collaboration with myself, [[Douglas Blumeyer]], inspired in no small part by many insights from [[Gene Ward Smith]]) should be the primary form of RTT matrices used throughout the wiki. Of course I don't plan to do this myself immediately, for numerous reasons. For starters, that'd be a Herculean task. But mostly I wouldn't do something that impactful without soliciting input from the community first.
Line 53: Line 53:
:::: I think the technique to link out to the canonical form page works fine. Maybe I'll keep it the way it is, i.e. not work to rename it to simply "defactoring" (I did add a redirect page for that, though).
:::: I think the technique to link out to the canonical form page works fine. Maybe I'll keep it the way it is, i.e. not work to rename it to simply "defactoring" (I did add a redirect page for that, though).


:::: Re: the beep example. I recently fixed that example myself. But I've since noticed it's not quite perfect. Normal form (and canonical form) require the pivots to be positive. And you find the pivots for comma-bases by anti-transposing them, i.e. flipping them across the anti-diagonal, between top-right and bottom-left, so that when the HNF tries to put all the zeros in the bottom-left corner, it gravitates them toward where we want them: the higher primes, and commas earlier in the list. Technically, then, the canonical commas for beep should be 25/27 and 35/36, even though with n < d those are negative in pitch and that's not the typical way we write commas. It looks less off-putting when the canonical form is presented as a matrix, i.e. {{map|{{vector|0 -3 2 0}} {{vector|2 2 -1 -1}}}}, so I suggest we write them like that. Or I'm open to other suggestions.
:::: Re: the beep example. I recently fixed that example myself. But I've since noticed it's not quite perfect. Normal form (and canonical form) require the pivots to be positive. And you find the pivots for comma bases by anti-transposing them, i.e. flipping them across the anti-diagonal, between top-right and bottom-left, so that when the HNF tries to put all the zeros in the bottom-left corner, it gravitates them toward where we want them: the higher primes, and commas earlier in the list. Technically, then, the canonical commas for beep should be 25/27 and 35/36, even though with n < d those are negative in pitch and that's not the typical way we write commas. It looks less off-putting when the canonical form is presented as a matrix, i.e. {{map|{{vector|0 -3 2 0}} {{vector|2 2 -1 -1}}}}, so I suggest we write them like that. Or I'm open to other suggestions.


:::: Speaking of lists vs. matrices, I would like to rename the page from "normal lists" to "normal form". I see that this reflects my preference to think of RTT structures as matrices rather than lists of vectors or covectors. Because we are using linear algebra extensively here, I think this is the natural and appropriate way to think of them. What do you think?
:::: Speaking of lists vs. matrices, I would like to rename the page from "normal lists" to "normal form". I see that this reflects my preference to think of RTT structures as matrices rather than lists of vectors or covectors. Because we are using linear algebra extensively here, I think this is the natural and appropriate way to think of them. What do you think?
Line 65: Line 65:
:::: That's all for now. Thanks for helping with this. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 18:54, 29 September 2021 (UTC)
:::: That's all for now. Thanks for helping with this. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 18:54, 29 September 2021 (UTC)


:::: I would also like to see across the wiki places where "normal list", "normal comma list", "normal interval list", "normal val list", "normal list basis", etc. standardized to "canonical mapping" or "canonical comma-basis", linking here. What do you think? --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 19:54, 29 September 2021 (UTC)
:::: I would also like to see across the wiki places where "normal list", "normal comma list", "normal interval list", "normal val list", "normal list basis", etc. standardized to "canonical mapping" or "canonical comma basis", linking here. What do you think? --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 19:54, 29 September 2021 (UTC)


::::: Sounds like a lot of work to be done!  
::::: Sounds like a lot of work to be done!  
Line 147: Line 147:
::::::::::::::: I've reworked it and pls give it a review. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 14:39, 2 October 2021 (UTC)
::::::::::::::: I've reworked it and pls give it a review. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 14:39, 2 October 2021 (UTC)


:::::::::::::::: W00t! That's basically exactly how I was going to do it: for the mapping side, build them cumulatively on top of each other: HNF, canonical, positive generator, equave-reduced, mingen. Then a similar progression for the comma-basis side. Great work.
:::::::::::::::: W00t! That's basically exactly how I was going to do it: for the mapping side, build them cumulatively on top of each other: HNF, canonical, positive generator, equave-reduced, mingen. Then a similar progression for the comma basis side. Great work.


:::::::::::::::: I just layered on an edit myself which came out bigger than I was expecting as I added some context that I think is helpful and some further explanations and examples. Let me know what you think. I didn't disagree with anything you had put on the page, so if in my edit I screwed up anything you cared about, please go right ahead and rework/redo. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 00:51, 4 October 2021 (UTC)
:::::::::::::::: I just layered on an edit myself which came out bigger than I was expecting as I added some context that I think is helpful and some further explanations and examples. Let me know what you think. I didn't disagree with anything you had put on the page, so if in my edit I screwed up anything you cared about, please go right ahead and rework/redo. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 00:51, 4 October 2021 (UTC)


::::::::::::::::: I like these additions of contexts and details. Hopefully they will give readers easier time. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 11:06, 4 October 2021 (UTC)
::::::::::::::::: I like these additions of contexts and details. Hopefully they will give readers easier time. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 11:06, 4 October 2021 (UTC)
:::::::::::::::::: Thank you. I did a little more work on it this morning based on random things that popped in my head last night. The main thing being that there were some inaccuracies re: canonical form (defactoring removes rows of zeros, so the third step to do so again after HNF was pointless). Also, I thought it was better to separate the issue re: converting intervals between ratio and vector format from discussions of the normal forms, since the format they're written in is independent from the different normal forms. Again, let me know if there's any problem with it and feel free to further adjust yourself. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 18:17, 4 October 2021 (UTC)
== IRREF ==
The footnote criticizes IRREF for making enfactored mappings. But I originally proposed IRREF for the comma list, not the mapping. I agree that IRREF mappings are a horrible idea! From my last edit of this page: "For a monzo list, it has the advantage of limiting the appearance of the N highest primes to only one comma each (where N is the codimension), isolating each prime's effect on the pergen, but has the disadvantage that the commas tend to have high odd limits, and the comma list may have torsion." I think IRREF is valuable as a sort of secondary comma list. It would be nice if x31eq listed the IRREF comma list as well as the usual one, so that one could see all the various restrictions at a glance. It also helps compare two different temperaments to see what they have in common. For example consider (81/80 36/35) and (2048/2025 64/63), two comma lists defined by ascending prime limit, least odd limit and no enfactoring. Their IRREF forms are (81/80 64/63) and (2048/2025 64/63). The IRREFs show that they have 64/63 in common. --[[User:TallKite|TallKite]] ([[User talk:TallKite|talk]]) 22:55, 13 October 2021 (UTC)
: Thanks for this Kite. I'm sorry that I misrepresented your writing. I didn't do it intentionally; I think I just wasn't being careful to mind possible importance that you may have placed on distinguishing between mappings and comma lists. As far as I was concerned IRREF was no good for either mappings or comma lists, because I was concerned about enfactoring (what you refer to here as "torsion", but as Dave and I determined in our recent research, torsion is the name for a related problem which only pertains to periodicity blocks, not temperaments; I can refer to you our findings again if you like).
: I've simply removed that part of the footnote, because I realized not only did it misrepresent your writing, what it says otherwise is no longer really relevant at all.
: Okay. So I see your point that IRREF can provide a different sort of value here. And at this point I can't see any reason why it wouldn't qualify as a "normal form". So if you want, feel free to add it back to the page. Flora politely commented it out but I was brash and straight up deleted your stuff. So here it is, dug up from the change logs:
:: Another important normalized form for integral matrices is what [[Kite Giedraitis]] has dubbed the IRREF, the '''integral reduced row echelon form'''. It is the [[Wikipedia: Row echelon form|reduced row echelon form]] made integral by multiplying each row of the matrix by the least common multiple of all denominators in that row. It differs from the Hermite normal form in that each pivot is the only nonzero entry in its column. For a monzo list, it has the advantage of limiting the appearance of the ''N'' highest primes to only one comma each (where ''N'' is the codimension), isolating each prime's effect on the [[pergen]], but has the disadvantage that the commas tend to have high odd limits, and the comma list may have torsion. Sometimes the IRREF is identical to the Hermite normal form.
: I had forgotten that the name IRREF was coined by you! Well, I think Dave and I did find one or two other academic sites which came up with the same term. But I believe you did so independently :)
: Right! So, however, if you want to add it back to the page, there is a slight issue. As you can see, at the moment, HNF is up top, because it's part of every normal form presently on the page. So if you want to add IRREF back, you would have to rework the page a bit to accommodate that. I got us into this mess so I'm happy to help with that. Perhaps we could do it together next week. Let me know. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 01:04, 14 October 2021 (UTC)
:: Yes, I would like it back in the article. BTW I thought of another use for IRREFs. Makes it easy to compute meets and joins if you have the IRREF for both temperaments. I don't know if it always makes it easier but it certainly makes it easier some times. --[[User:TallKite|TallKite]] ([[User talk:TallKite|talk]]) 20:59, 16 October 2021 (UTC)
== Revision to the equave-reduced generator form ==
Actually, the equave reduction need not start with the positive generator form, but may start with the canonical form, which means a step of manipulation is saved. The result of course can be different, but sometimes perferable.
My proposed revision changes the old "equave-reduced generator form" to the "positive equave-reduced generator form", which signifies that its starting point is the positive generator form. And it has the new "equave-reduced generator form" derived from the canonical form.
Sensi is a great example to show how all these will differ from each other:
# Canonical form: {{mapping| 1 6 8 11 | 0 7 9 13 }} with generators ~2, ~9/14
# Positive generator form: {{mapping| 1 6 8 11 | 0 -7 -9 -13 }} with generators ~2, ~14/9
# Equave-reduced generator form: {{mapping| 1 -1 -1 -2 | 0 7 9 13 }} with generators ~2, ~9/7
# Positive equave-reduced generator form: {{mapping| 1 6 8 11 | 0 -7 -9 -13 }} with generators ~2, ~14/9
# Minimal generator form: {{mapping| 1 -1 -1 -2 | 0 7 9 13 }} with generators ~2, ~9/7
My expectation is that the positive equave-reduced generator form should be left largely obsolete since musicians will work with the new equave-reduced generator form. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 08:00, 16 January 2023 (UTC)
: I like it. Well-motivated and well-executed. Yes, I agree that positive-ization and equave-reduction should not have been bound together as they were, and that canonical form is the baseline form. They are independent interests. And I also agree with you that their combination will likely be less popular than simple equave-reduction (or simple positive-ization). I expect after your revision, the combo form "Positive equave-reduced generator form" will be left with a very brief section, saying only that you equave-reduce the generator from the positive gen form, and that's all. Again, good thinking and good work; thanks for looking into this. --[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 16:51, 16 January 2023 (UTC)
:: Great! I'll work on it soon. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 18:43, 16 January 2023 (UTC)
== Title ==
The article discusses normal forms mostly, so I feel like it should be titled 'normal forms' or something like that.
I don't see many places calling these 'normal lists' at all, though for a list of commas I suppose this makes more sense.
– [[User:Sintel|Sintel🎏]] ([[User_talk:Sintel|talk]]) 12:41, 15 June 2025 (UTC)
: Makes sense. [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 13:09, 15 June 2025 (UTC)
: yes I’ve always wished for that myself. —[[User:Cmloegcmluin|Cmloegcmluin]] ([[User talk:Cmloegcmluin|talk]]) 20:25, 15 June 2025 (UTC)
== I propose an even better form/rule ==
A combo of the positive generator form and equave-reduced generator form (there should technically be a hyphen between ''positive''/''equave-reduced'' and ''generator'', right?): it makes sure the generators are positive not by flipping but by octave-reducing. Iow it's the canonical form if the canonical gens are positive, but octave-reduced form if the canonical gens are negative. This also makes sure the first nonzero entry of each row in the mapping is always positive; for rank-2 temps with primes 2 and 3 this means prime 3 is always a positive number of gensteps.
* For meantone this gives {{mapping| 1 0 -4 -13 | 0 1 4 10 }} with gens ~2, ~3, same as canonical and positive generator forms.
* For sensi this gives {{mapping| 1 -1 -1 -2 | 0 7 9 13 }} with gens ~2, ~9/7, same as equave-reduced and minimal generator forms.
* For würschmidt this gives {{mapping| 1 -1 2 | 0 8 1 }} with gens ~2, ~5/4(!), same as equave-reduced and minimal generator forms.
But that is still not good enough, for it gives {{mapping| 1 -1 -2 | 0 3 5 }} for porcupine, with gens ~2, ~9/5, yet we're generally more familiar with ~10/9 as the gen. So here's an additional rule based on the omega extension of ploidacot: if the temperament is omega-''n''-cot i.e. splits ~4/3 into three or more steps, we should stick to the positive generator form, so that porcupine remains {{mapping| 1 2 3 | 0 -3 -5 }}. I'm still contemplating how this should be extended to no-2 and/or no-3 temps.
I think it's very humanized and fits well for the wiki, tho perhaps it's more like a rule for choosing forms than an individual form.
[[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 13:12, 15 June 2025 (UTC)
: Update: I've figured it out for all ranks and subgroups. It's in my code. Enjoy! [[User:FloraC|FloraC]] ([[User talk:FloraC|talk]]) 15:42, 18 July 2025 (UTC)
Return to "Normal forms" page.