Comma basis: Difference between revisions

m Clarify and - here-links
No edit summary
 
Line 1: Line 1:
{{Beginner|Dual list}}
{{Beginner|Dual list}}
A '''comma basis''' is a [[basis]] for the {{w|Kernel (linear algebra)|nullspace}} (sometimes also called the "kernel") of a [[regular temperament|temperament]]. It consists of ''n'' {{w|linearly independent}} vectors, where ''n'' is the [[nullity]], each one representing a [[comma]] that is made to [[vanish]].  
A '''comma basis''' is a list of linearly independent commas that characterizes a temperament.


Linear independence means that no comma can be found as the sum of any multiples of the other commas. For example, consider the set of three commas 81/80, 126/125, and 225/224. As vectors those are {{vector|-4 4 -1 0}}, {{vector|1 2 -3 1}}, and {{vector|-5 2 2 -1}}. Notice that the third comma is actually the difference between the other two; {{nowrap|{{vector|-4 4 -1 0}} − {{vector|1 2 -3 1}} {{=}} {{vector|-5 2 2 -1}}}}, or as cents, {{nowrap|21.51{{c}} − 13.80{{c}} {{=}} 7.71{{c}}}}. So, if two of these three commas are ever made to vanish (mapped to 0{{c}}), then the third one necessarily is also made to vanish. Therefore, we only need to pick two of these commas to put in our comma basis; the third one would be implied.
For example, septimal meantone tempers out [[225/224]], [[126/125]], and [[81/80]], but from any two of these commas can be derived the third ((225/224)*(126/125)=(81/80), for example). This means that if two of these three commas are ever made to vanish (mapped to 0{{c}}), then the third one necessarily is also made to vanish. Thus, we only need to pick two of the three commas; the third is implied. So we may write meantone's comma basis as (81/80, 225/224). This can be written in matrix form using the monzos of the commas as columns: [{{vector|-4 4 -1 0}}, {{vector|-5 2 2 -1}}], or equivalently as a list of monzos. Besides, it is often presented in terms of ratios for convenience. Various [[Normal lists #Normal interval lists|normal forms]] have been developed as identifiers of temperaments.  


The comma basis can be thought of either as a list of vectors or as a matrix formed by putting these vectors (as columns) together. Besides, it is often presented in terms of ratios for convenience. Various [[Normal lists #Normal interval lists|normal forms]] have been developed as identifiers of temperaments.  
Mathematically, it is a [[basis]] for the {{w|Kernel (linear algebra)|nullspace}} (sometimes also called the "kernel") of a [[regular temperament|temperament]]. It consists of ''n'' {{w|linearly independent}} vectors, where ''n'' is the [[nullity]], each one representing one of the commas that is tempered out.  


== With respect to the mapping ==
== With respect to the mapping ==
The comma basis is considered the dual of the temperament's [[mapping]] matrix. Temperaments may be identified by either their mapping or comma basis.
The comma basis is considered the dual of the temperament's [[mapping]] matrix, similar to how a val is considered dual to a monzo. Temperaments may be identified by either their mapping or comma basis.


Functions for finding the nullspace of a matrix are readily available in many math libraries. All you need to do to get a comma basis for a mapping is to find the nullspace. To learn about finding the nullspace by hand, see [[Dave Keenan & Douglas Blumeyer's guide to RTT/Exploring temperaments #Nullspace]].
Functions for finding the nullspace of a matrix are readily available in many math libraries. All you need to do to get a comma basis for a mapping is to find the nullspace. To learn about finding the nullspace by hand, see [[Dave Keenan & Douglas Blumeyer's guide to RTT/Exploring temperaments #Nullspace]].


To reverse the nullspace operation, that is, to find a mapping from a comma basis, you can also use the nullspace operation; the relationship between a matrix and its nullspace essentially works both ways.  
To reverse the nullspace operation, that is, to find a mapping from a comma basis, you can also use the nullspace operation; the relationship between a matrix and its nullspace essentially works both ways.  
When applied to convert between [[wedgies]] and "multimonzos" (the wedgie version of a comma basis), the equivalent operation is the [[Hodge dual|Hodge star]].


Some math libraries, such as [https://www.sagemath.org/ Sage], provide functions for both directions; in Sage, to go from a mapping to a comma basis, use <code>left_kernel()</code>, and to go from a comma basis to a mapping, use <code>right_kernel()</code>. In other math libraries, such as [https://www.wolfram.com/language/ Wolfram Language], the nullspace operation <code>NullSpace[]</code> is primarily designed to work for mappings, and so if you want correct results, you must transform the basis for the nullspace into a mapping-like form, perform the nullspace operation, and then undo the initial transformation.  
Some math libraries, such as [https://www.sagemath.org/ Sage], provide functions for both directions; in Sage, to go from a mapping to a comma basis, use <code>left_kernel()</code>, and to go from a comma basis to a mapping, use <code>right_kernel()</code>. In other math libraries, such as [https://www.wolfram.com/language/ Wolfram Language], the nullspace operation <code>NullSpace[]</code> is primarily designed to work for mappings, and so if you want correct results, you must transform the basis for the nullspace into a mapping-like form, perform the nullspace operation, and then undo the initial transformation.