Dave Keenan & Douglas Blumeyer's RTT library in Wolfram Language
This is a library of functions for working with regular temperament theory, implemented in Wolfram Language. It was developed by Dave Keenan and Douglas Blumeyer mostly from 2021 - 2022.
The code is maintained and shared on GitHub here: https://github.com/cmloegcmluin/RTT
More details can be found on the README there.
Tuning
optimizeGeneratorTuningMap[m, tuningSchemeSpec] optimizeTuningMap[m, tuningSchemeSpec] getGeneratorTuningMapMeanDamage[m, generatorTuningMap, tuningSchemeSpec] getTuningMapMeanDamage[m, tuningMap, tuningSchemeSpec] getGeneratorTuningMapDamages[m, generatorTuningMap, tuningSchemeSpec] getTuningMapDamages[m, tuningMap, tuningSchemeSpec] generatorTuningMapFromTAndTuningMap[m, tuningMap]
Temperament exploration
The functions implemented include:
canonicalForm[t]
Puts the given mapping into canonical form (i.e. defactored Hermite form): it defactors it and puts it into HNF.
mapMerge[t1, t2...] commaMerge[t1, t2…]
Per Temperament merging.
dual[t]
For a mapping, returns the canonical form of the basis for its nullspace. For a comma basis, vice-versa: returns the canonical form of its mapping.
Temperament addition
sum[t1, t2] diff[t1, t2]
Per Temperament addition.
Nonstandard domains
changeBasis[t, targetBasis]
Per Doman basis#Changing domain basis.
EA
If you are interested in exterior algebra, this library also includes modules with helpful functions.
eaCeanonicalForm[multivector] eaDual[multivector] progressiveProduct[multivector1, multivector2] regressiveProduct[multivector1, multivector2] interiorProduct[multivector1, multivector2] eaSum[multivector1, multivector2] eaDiff[multivector1, multivector2] multivectorToMatrix[multivector] matrixToMultivector[t]