Safe Haskell | Safe |
---|---|

Language | Haskell98 |

Syntonic tuning.

- mk_isomorphic_layout :: Integral a => a -> a -> (a, a) -> [[(a, a)]]
- minimal_isomorphic_note_layout :: [[(Int, Int)]]
- rank_two_regular_temperament :: Integral a => a -> a -> [(a, a)] -> [a]
- mk_syntonic_tuning :: Int -> [Cents]
- syntonic_697 :: Tuning
- syntonic_702 :: Tuning

# Documentation

mk_isomorphic_layout :: Integral a => a -> a -> (a, a) -> [[(a, a)]] Source #

Construct an isomorphic layout of *r* rows and *c* columns with
an upper left value of *(i,j)*.

minimal_isomorphic_note_layout :: [[(Int, Int)]] Source #

A minimal isomorphic note layout.

let [i,j,k] = mk_isomorphic_layout 3 5 (3,-4) in [i,take 4 j,(2,-4):take 4 k] == minimal_isomorphic_note_layout

rank_two_regular_temperament :: Integral a => a -> a -> [(a, a)] -> [a] Source #

Make a rank two regular temperament from a list of *(i,j)*
positions by applying the scalars *a* and *b*.

mk_syntonic_tuning :: Int -> [Cents] Source #

Syntonic tuning system based on `mk_isomorphic_layout`

of `5`

rows and `7`

columns starting at `(3,-4)`

and a
`rank_two_regular_temperament`

with *a* of `1200`

and indicated
*b*.

syntonic_697 :: Tuning Source #

`mk_syntonic_tuning`

of `697`

.

divisions syntonic_697 == 17

let c = [0,79,194,273,309,388,467,503,582,697,776,812,891,970,1006,1085,1164] in cents_i syntonic_697 == c

syntonic_702 :: Tuning Source #

`mk_syntonic_tuning`

of `702`

.

divisions syntonic_702 == 17

let c = [0,24,114,204,294,318,408,498,522,612,702,792,816,906,996,1020,1110] in cents_i syntonic_702 == c