Interval matrix: Difference between revisions
Wikispaces>FREEZE No edit summary |
→Examples: Added an interval matrix example for a temperament-agnostic situation, where no cent values or JI ratios are known but instead the number of L's and s's that make up each interval |
||
Line 1: | Line 1: | ||
An ''interval matrix'' is a tabular representation of all possible [[ | An ''interval matrix'' is a tabular representation of all possible [[interval]]s in a [[scale|scale]]. | ||
To create an interval matrix, start with a table with (at least) as many rows and columns are there are pitches in your scale. | To create an interval matrix, start with a table with (at least) as many rows and columns are there are pitches in your scale. | ||
Line 127: | Line 127: | ||
| | 1200.0 | | | 1200.0 | ||
|} | |} | ||
== Using step sizes == | |||
Working with a [[mos]] in a [[TAMNAMS|temperament-agnostic]] sense means that the cent values or JI ratios may not be known beforehand. However, it's still possible to generate an interval matrix as follows. | |||
Consider the diatonic mos [[5L 2s]], represented as the string LLsLLLs, for example. The intervals between the scale's root and any other scale degree can be considered as being a substring of "LLsLLLs" that starts at the first character (or step) and ends at any other character, including itself; for example, a 2nd is "L", a 3rd is "LL", a 4th is "LLs", and s on. The order of L's and s's is not important, rather the number of L's and s's. | |||
The first row of the matrix can then be populated as such: | |||
{| class="wikitable" | |||
|+ | |||
! rowspan="2" | | |||
! colspan="2" |2nd | |||
! colspan="2" |3rd | |||
! colspan="2" |4th | |||
! colspan="2" |5th | |||
! colspan="2" |6th | |||
! colspan="2" |7th | |||
|- | |||
!Substr. | |||
!Sum | |||
!Substr. | |||
!Sum | |||
!Substr. | |||
!Sum | |||
!Substr. | |||
!Sum | |||
!Substr. | |||
!Sum | |||
!Substr. | |||
!Sum | |||
|- | |||
!LLsLLLs | |||
|L | |||
|L | |||
|LL | |||
|2L | |||
|LLs | |||
|2L + s | |||
|LLsL | |||
|3L + s | |||
|LLsL | |||
|4L + s | |||
|LLsLLL | |||
|5L + s | |||
|} | |||
To find the next row means finding the substrings starting at the second L and ending at any other step after it. However, this is equivalent to rotating the the scale to the right (moving the first L to the end) and finding the substrings that start at the first step of that rotated scale. Since LLsLLLs represents the ionian mode, shifting to the right produces the dorian mode (LsLLLsL), and the mode after that is the phrygian mode (sLLLsLL), so populating the rest of the interval matrix means finding the quantities of L's and s's for every substring for every mode. The completed matrix is shown below: | |||
{| class="wikitable" | |||
|+ | |||
!String | |||
!Mode | |||
!1st | |||
!2nd | |||
!3rd | |||
!4th | |||
!5th | |||
!6th | |||
!7th | |||
!8th | |||
|- | |||
!LLsLLLs | |||
!Ionian | |||
|0 | |||
|L | |||
|2L | |||
|2L + s | |||
|3L + s | |||
|4L + s | |||
|5L + s | |||
|5L + 2s | |||
|- | |||
!LsLLLsL | |||
!Dorian | |||
|0 | |||
|L | |||
|L + s | |||
|2L + s | |||
|3L + s | |||
|4L + s | |||
|4L + 2s | |||
|5L + 2s | |||
|- | |||
!sLLLsLL | |||
!Phrygian | |||
|0 | |||
|s | |||
|L + s | |||
|2L + s | |||
|3L + s | |||
|3L + 2s | |||
|4L + 2s | |||
|5L + 2s | |||
|- | |||
!LLLsLLs | |||
!Lydian | |||
|0 | |||
|L | |||
|2L | |||
|3L | |||
|3L + s | |||
|4L + s | |||
|5L + s | |||
|5L + 2s | |||
|- | |||
!LLsLLsL | |||
!Mixolydian | |||
|0 | |||
|L | |||
|2L | |||
|2L + s | |||
|3L + s | |||
|4L + s | |||
|4L + 2s | |||
|5L + 2s | |||
|- | |||
!LsLLsLL | |||
!Aeolian | |||
|0 | |||
|L | |||
|L + s | |||
|2L + s | |||
|3L + s | |||
|3L + 2s | |||
|4L + 2s | |||
|5L + 2s | |||
|- | |||
!sLLsLLL | |||
!Locrian | |||
|0 | |||
|s | |||
|L + s | |||
|2L + s | |||
|2L + 2s | |||
|3L + 2s | |||
|3L + 4s | |||
|5L + 2s | |||
|} | |||
The column of firsts consists of only the unison, which is zero units above the root, hence the entire column is zero. The column of eights consists of the entire string, hence the entire column is 5L + 2s. Note that this matrix is for any arbitrary L and s and does not reveal any information with regards to tuning or other properties. | |||
==Scala== | ==Scala== |