Triadic diamonds
Given a triad 1/1, M, D, a triadic diamond is the seven notes
1/1, M, D, 2/M, 2/D, D/M, M/D
octave reduced and sorted. For example, for M = 5/4, D = 3/2, we get
1/1, 5/4, 3/2, 8/5, 4/3, 6/5, 5/3
giving the sorted scale
1/1, 6/5, 5/4, 4/3, 3/2, 8/5, 5/3
On a lattice where a factor of M moves one step up, a factor of D one step to the right, the triadic diamond appears as
M/D M
2/D 1/1 D
2/M D/M
A triadic diamond is the diamond construction applied to the triad 1, M, D.
Triadic reversed diamonds
A triadic reversed diamond is the seven notes
1/1, M, D, 2/M, 2/D, D*M, 2/(D*M)
octave reduced and sorted. On the lattice these notes are
M D*M
2/D 1/1 D
2/(D*M) 2/M
For M = 5/4, D = 3/2 this gives the notes
1/1, 5/4, 3/2, 8/5, 4/3, 15/8, 16/15
and sorting gives the scale
1/1, 16/15, 5/4, 4/3, 3/2, 8/5, 15/8
Further reading
- John H. Chalmers, Jr., The Triadic Diamond, the Triadic Reversed Diamond, and their Constituent Tetrachords when D=3/2, Xenharmonikon 15 (1993), p.64
Python code
from fractions import Fraction
from math import floor, log2
def reduce(x):
return x * Fraction(2) ** (-floor(log2(x)))
def triadic_diamond(M, D):
"""
>>> triadic_diamond(Fraction(5, 4), Fraction(3, 2))
[Fraction(1, 1), Fraction(6, 5), Fraction(5, 4), Fraction(4, 3), Fraction(3, 2), Fraction(8, 5), Fraction(5, 3)]
"""
notes = [1, M, D, 2 / M, 2 / D, D / M, M / D]
return sorted(reduce(x) for x in notes)
def triadic_reversed_diamond(M, D):
"""
>>> triadic_reversed_diamond(Fraction(5, 4), Fraction(3, 2))
[Fraction(1, 1), Fraction(16, 15), Fraction(5, 4), Fraction(4, 3), Fraction(3, 2), Fraction(8, 5), Fraction(15, 8)]
"""
notes = [1, M, D, 2 / M, 2 / D, D * M, 2 / (D * M)]
return sorted(reduce(x) for x in notes)
Scales
| File | Call |
|---|---|
| xen15-chalmers-triadic-diamond-11-9 | triadic_diamond(Fraction(11, 9), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-13-11 | triadic_diamond(Fraction(13, 11), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-14-11 | triadic_diamond(Fraction(14, 11), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-15-13 | triadic_diamond(Fraction(15, 13), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-16-13 | triadic_diamond(Fraction(16, 13), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-17-13 | triadic_diamond(Fraction(17, 13), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-17-14 | triadic_diamond(Fraction(17, 14), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-19-16 | triadic_diamond(Fraction(19, 16), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-22-17 | triadic_diamond(Fraction(22, 17), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-23-18 | triadic_diamond(Fraction(23, 18), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-23-19 | triadic_diamond(Fraction(23, 19), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-23-20 | triadic_diamond(Fraction(23, 20), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-26-21 | triadic_diamond(Fraction(26, 21), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-32-25 | triadic_diamond(Fraction(32, 25), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-34-27 | triadic_diamond(Fraction(34, 27), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-35-27 | triadic_diamond(Fraction(35, 27), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-40-33 | triadic_diamond(Fraction(40, 33), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-5-4 | triadic_diamond(Fraction(5, 4), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-56-45 | triadic_diamond(Fraction(56, 45), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-64-51 | triadic_diamond(Fraction(64, 51), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-7-6 | triadic_diamond(Fraction(7, 6), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-8-7 | triadic_diamond(Fraction(8, 7), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-81-64 | triadic_diamond(Fraction(81, 64), Fraction(3, 2)) |
| xen15-chalmers-triadic-diamond-8192-6561 | triadic_diamond(Fraction(8192, 6561), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-11-9 | triadic_reversed_diamond(Fraction(11, 9), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-13-10 | triadic_reversed_diamond(Fraction(13, 10), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-13-11 | triadic_reversed_diamond(Fraction(13, 11), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-14-11 | triadic_reversed_diamond(Fraction(14, 11), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-15-13 | triadic_reversed_diamond(Fraction(15, 13), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-16-13 | triadic_reversed_diamond(Fraction(16, 13), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-17-13 | triadic_reversed_diamond(Fraction(17, 13), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-17-14 | triadic_reversed_diamond(Fraction(17, 14), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-19-16 | triadic_reversed_diamond(Fraction(19, 16), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-21-16 | triadic_reversed_diamond(Fraction(21, 16), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-21-17 | triadic_reversed_diamond(Fraction(21, 17), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-22-17 | triadic_reversed_diamond(Fraction(22, 17), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-23-18 | triadic_reversed_diamond(Fraction(23, 18), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-23-19 | triadic_reversed_diamond(Fraction(23, 19), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-23-20 | triadic_reversed_diamond(Fraction(23, 20), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-24-19 | triadic_reversed_diamond(Fraction(24, 19), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-26-21 | triadic_reversed_diamond(Fraction(26, 21), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-27-22 | triadic_reversed_diamond(Fraction(27, 22), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-27-23 | triadic_reversed_diamond(Fraction(27, 23), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-30-23 | triadic_reversed_diamond(Fraction(30, 23), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-32-25 | triadic_reversed_diamond(Fraction(32, 25), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-32-27 | triadic_reversed_diamond(Fraction(32, 27), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-33-26 | triadic_reversed_diamond(Fraction(33, 26), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-33-28 | triadic_reversed_diamond(Fraction(33, 28), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-34-27 | triadic_reversed_diamond(Fraction(34, 27), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-35-27 | triadic_reversed_diamond(Fraction(35, 27), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-39-32 | triadic_reversed_diamond(Fraction(39, 32), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-39-34 | triadic_reversed_diamond(Fraction(39, 34), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-40-33 | triadic_reversed_diamond(Fraction(40, 33), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-5-4 | triadic_reversed_diamond(Fraction(5, 4), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-56-45 | triadic_reversed_diamond(Fraction(56, 45), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-57-46 | triadic_reversed_diamond(Fraction(57, 46), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-6-5 | triadic_reversed_diamond(Fraction(6, 5), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-64-51 | triadic_reversed_diamond(Fraction(64, 51), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-7-6 | triadic_reversed_diamond(Fraction(7, 6), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-81-64 | triadic_reversed_diamond(Fraction(81, 64), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-8192-6561 | triadic_reversed_diamond(Fraction(8192, 6561), Fraction(3, 2)) |
| xen15-chalmers-triadic-reversed-diamond-9-7 | triadic_reversed_diamond(Fraction(9, 7), Fraction(3, 2)) |