-
Notifications
You must be signed in to change notification settings - Fork 0
/
Scale.hs
113 lines (107 loc) · 3.05 KB
/
Scale.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
module Scale where
import qualified Data.Map as M
data Step
= Whole
| Half
| AugSec
deriving (Show, Eq)
type ScaleName = String
type Scale = [Step]
type ScaleMap = M.Map ScaleName Scale
scalez :: ScaleMap
scalez = M.fromList
[
(
"major",
[Whole, Whole, Half, Whole, Whole, Whole, Half]
),
(
"minor",
[Whole, Half, Whole, Whole, Half, Whole, Whole]
),
(
"harmonic-minor",
[Whole, Half, Whole, Whole, Half, AugSec, Half]
),
(
"melodic-minor",
[Whole, Half, Whole, Whole, Whole, Whole, Half]
),
(
"romanian-minor",
[Whole, Half, AugSec, Half, Whole, Half, Whole]
),
-- | Named after the Dorian Greeks.
(
"dorian-mode",
[Whole, Half, Whole, Whole, Whole, Half, Whole]
),
-- | Ancient Greek Scale attributed to Sappho, the 7th-century-B.C. poet and musician.
(
"mixolydian-mode",
[Whole, Whole, Half, Whole, Whole, Half, Whole]
),
-- | Named after the anciant kingdom of Phrygia in Anatolia.
(
"phrygian-mode",
[Half, Whole, Whole, Whole, Half, Whole, Whole]
),
-- | Named after the anciant kingdom of Lydia in Anatolia.
(
"lydian-mode",
[Whole, Whole, Whole, Half, Whole, Whole, Half]
),
-- | Locrian is the word used to describe the inhabitants of the ancient Greek regions of Locris.
(
"locrian-mode",
[Half, Whole, Whole, Half, Whole, Whole, Whole]
),
-- | Based on the 'Mystic Chord'
(
"prometheus",
[Whole, Whole, Whole, AugSec, Half, Whole]
),
(
"spanish-gypsy",
[Half, AugSec, Half, Whole, Half, Whole, Whole]
),
(
"blues",
[AugSec, Whole, Half, Half, AugSec, Whole]
),
(
"super-locrian",
[Half, Whole, Half, Whole, Whole, Whole, Whole]
),
-- | Still in minor, despite it's name
(
"neopolitan-major",
[Half, Whole, Whole, Whole, Whole, Whole, Half]
),
(
"neopolitan-minor",
[Half, Whole, Whole, Whole, Half, Whole, Whole]
),
-- | originally published in a Milan journal as a musical challenge,
-- | with an invitation to harmonize it in some way.
(
"enigmatic",
[Half, AugSec, Whole, Whole, Whole, Half, Half]
),
(
"pentatonic-neutral",
[Whole, AugSec, Whole, AugSec]
),
(
"pentatonic-major",
[Whole, AugSec ,Whole, Whole, AugSec]
),
(
"pentatonic-minor",
[AugSec, Whole, Whole, AugSec, Whole]
),
(
"pentatonic-blues",
[AugSec, Whole, Half, Half, AugSec]
)
]