Skip to main content

Module temperament

Module temperament 

Source
Expand description

Rank-2 regular temperaments, a period and a generator over a mapping. Regular temperaments — a period, some generators, and what they mean.

A regular temperament is a decision to stop telling two intervals apart. Meantone decides that four fifths and a major third are the same note, which is to say it tempers out the syntonic comma, and everything else about meantone follows: the fifth has to shrink to about 697 cents, every 5-limit interval is then some number of those fifths and octaves, and the scales that come out are the pentatonic, the diatonic and the chromatic.

What a temperament is, concretely, is a mapping: how many periods and how many of each generator every prime is worth. The wiki writes meantone’s as 1; 1 4 10 — one period to the octave, and the fifth reached in one generator, the third in four, the harmonic seventh in ten. Temperament::from_mapping takes exactly that, and works the period row out for itself.

Two things here are more general than the usual account, because the data is. A temperament need not have one generator: marvel has two, so its mapping is two rows and Temperament::from_mapping_rows takes them. And a temperament need not repeat at the octave: a subgroup written 3.5.7 has no 2 in it at all, and its period divides a tritave instead. The interval a temperament repeats at is its equave, and the octave is only the usual one.

use music21_rs::tuningsystem::{Monzo, Temperament};

// Meantone: one period to the octave, generator a fifth of 696.7 cents.
let meantone = Temperament::from_mapping(1, &[1, 4, 10], 696.7, &[2, 3, 5, 7])?;
assert!(meantone.tempers_out(&Monzo::from_ratio(81, 80)?));
assert_eq!(meantone.pattern(7)?.to_string(), "5L 2s");

Structs§

Temperament
A regular temperament: a period, some generators, and a mapping onto primes.