# 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]