Comma basis

From Xenharmonic Wiki
Jump to navigation Jump to search

This is a basic introduction to this concept. For a more mathematical take, see dual list.

A comma basis is a basis for the null-space (sometimes also called the "kernel") of a temperament. It consists of [math]n[/math] linearly independent vectors, where [math]n[/math] is the nullity, each one representing a comma that is tempered out.

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 [-4 4 -1 0, [1 2 -3 1, and [-5 2 2 -1. Notice that the third comma is actually the difference between the other two; [-4 4 -1 0 - [1 2 -3 1 = [-5 2 2 -1, or as cents, 21.51¢ - 13.80¢ = 7.71¢. So, if two of these three commas are ever tempered out (mapped to 0¢), then the third one necessarily is also tempered out. Therefore, we only need to pick two of these commas to put in our comma basis; the third one would be implied.

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.

With respect to the mapping

The comma basis is considered the dual of the temperament's mapping matrix. Temperaments may be identified by the canonical form of either their mapping or comma basis.

Functions for finding the null-space 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 null-space. To learn more about finding the null-space, see here.

To reverse the null-space operation, that is, to find a mapping from a comma basis, you can also use the null-space operation; the relationship between a matrix and its null-space essentially works both ways. However, math libraries' null-space operation is designed to work for mappings, and so if you want correct results, you must transform the basis for the null-space into a mapping-like form, perform the null-space operation, and then undo the initial transformation. This initial transformation you must do and undo is called the anti-transpose, which is just like the typical transpose of a matrix, except instead of reflecting the matrix's values across the main diagonal (starting from either the top-left or bottom-right corner), you reflect them across the anti-diagonal (starting from either the top-right or bottom-left corner). You can remember this because most mappings and comma bases have zeroes in the bottom-left corner, and you want to keep them there; some kind of transpose is necessary to convert the constituent comma vectors columns of the comma basis into rows as if they were constituent generator mapping rows of a mapping, but a normal transpose of the comma basis would flip its zeroes into the top-right corner instead.