-- | Western twelve-tone scale.
module Temporal.Music.Western.P12(
module Temporal.Music.Western,
tone,
-- * Steps
-- | Step defines a value of type score (hence @Track@), so we can
-- transform them on the fly:
--
-- > qn $ line [forte c, d, e, low b, forte $ bn d]
c, d, e, f, g, a, b,
cs, ds, es, fs, gs, as, bs,
cf, df, ef, ff, gf, af, bf,
-- * Scales
eqt, pyth,
hind, hindFs, hindGb
-- * Examples
-- | Little example of usage:
--
-- > import Temporal.Music.Western.P12
-- >
-- > res :: Score ()
-- > res = stretch 0.2 $ chord [
-- > qn $ line [c, c, bn g, e, dbn f],
-- > low $ line [c, c, d, low a]]
)
where
import Data.Default
import Temporal.Music(Score, temp, note, Step)
import Temporal.Music.Scales(eqt, pyth, hind, hindFs, hindGb)
import Temporal.Music.Western
-- | Constructs 'Score' with one note. 'Scale' is set to equal
-- tempered scale (from 'c1').
tone :: Default a => Step -> Score (Note a)
tone = note
c, d, e, f, g, a, b,
cs, ds, es, fs, gs, as, bs,
cf, df, ef, ff, gf, af, bf :: Default a => Score (Note a)
c = tone 0
cs = tone 1
d = tone 2
ds = tone 3
e = tone 4
f = tone 5
fs = tone 6
g = tone 7
gs = tone 8
a = tone 9
as = tone 10
b = tone 11
bs = c
es = f
cf = b
df = cs
ef = ds
ff = e
gf = fs
af = gs
bf = as