deriveModality :: String -> [Int]
-- key is major
deriveModality a | isUpper (head a) = [(0 + offset) `mod` 12, (2 + offset) `mod` 12, (4 + offset) `mod` 12, (5 + offset) `mod` 12, (7 + offset) `mod` 12, (9 + offset) `mod` 12, (11 + offset) `mod` 12] where offset = deriveOffset a
-- key is minor
deriveModality :: String -> [Int]
deriveModality a | isUpper (head a) = [(0 + offset) `mod` 12, (2 + offset) `mod` 12, (4 + offset) `mod` 12, (5 + offset) `mod` 12, (7 + offset) `mod` 12, (9 + offset) `mod` 12, (11 + offset) `mod` 12] where offset = deriveOffset a
-- key is minor
deriveModality a | isUpper (head a) = [(0 + offset) `mod` 12, (2 + offset) `mod` 12, (4 + offset) `mod` 12, (5 + offset) `mod` 12, (7 + offset) `mod` 12, (9 + offset) `mod` 12, (11 + offset) `mod` 12] where offset = deriveOffset a
-- key is minor