hsc3-lang-0.8: Help/Pattern/Step/pdegreeToKey.help.lhs
pdegreeToKey :: (RealFrac a) => P a -> P [a] -> P a -> P a
degree - scale degree (zero based)
scale - list of divisions (ie. [0, 2, 4, 5, 7, 9, 11])
stepsPerOctave - division of octave (ie. 12)
Derive notes from an index into a scale.
> import Sound.SC3.Lang.Pattern.Step
> let { p = pseq [0, 1, 2, 3, 4, 3, 2, 1, 0, 2, 4, 7, 4, 2] 2
> ; q = prepeat [0, 2, 4, 5, 7, 9, 11]
> ; r = prepeat 12 }
> in evalP (pdegreeToKey p q r)
> let { p = pseq [0, 1, 2, 3, 4, 3, 2, 1, 0, 2, 4, 7, 4, 2] 2
> ; q = pseq [return [0, 2, 4, 5, 7, 9, 11]
> ,return [0, 2, 3, 5, 7, 8, 11]] 1
> ; r = prepeat 12 }
> in evalP (pdegreeToKey p (pstutter 14 q) r)
The degree_to_key function is also given.
> import Sound.SC3.Lang.Math
> map (\n -> degree_to_key n [0,2,4,5,7,9,11] 12) [0,2,4,7,4,2,0]