-- Copyright 2013 Evan Laforge
-- This program is distributed under the terms of the GNU General Public
-- License 3.0, see COPYING or http://www.gnu.org/licenses/gpl-3.0.txt

module User.Elaforge.Instrument.VslInst (
    module User.Elaforge.Instrument.VslInst, module Derive.Attrs
    -- User.Elaforge.Instrument.Vsl uses a lot of attributes, but it shouldn't
    -- have to know which ones are defined here and which are in Derive.Attrs.
) where
import qualified Prelude
import Prelude hiding (min, (.))
import qualified Data.Text as Text

import qualified Util.Num as Num
import qualified Util.ParseText as ParseText
import qualified Util.Lists as Lists

import qualified Midi.Key as Key
import qualified Midi.Midi as Midi
import qualified Derive.Attrs as Attrs
import Derive.Attrs

import qualified Perform.RealTime as RealTime
import Global
import Types


-- | Easier to type and looks good without spaces.
(.) :: Attributes -> Attributes -> Attributes
. :: Attributes -> Attributes -> Attributes
(.) = forall a. Semigroup a => a -> a -> a
(<>)

data Keys = Keys {
    -- | Base keyswitch for matrix x axis.
    Keys -> Key
key_x_axis :: Midi.Key
    -- | Base keyswitch for matrix y axis.
    , Keys -> Key
key_y_axis :: Midi.Key
    -- | First of the AB keyswitches.
    , Keys -> Key
key_ab :: Midi.Key
    -- | Base keyswitches for the presets.
    , Keys -> Key
key_matrix :: Midi.Key
    } deriving (Int -> Keys -> ShowS
[Keys] -> ShowS
Keys -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Keys] -> ShowS
$cshowList :: [Keys] -> ShowS
show :: Keys -> String
$cshow :: Keys -> String
showsPrec :: Int -> Keys -> ShowS
$cshowsPrec :: Int -> Keys -> ShowS
Show)

-- | (name, keyswitch configuration, attributes)
type Instrument = (Text, Keys, [[Attributes]])

-- | Instruments that start above a1 use this.
low_keys :: Keys
low_keys :: Keys
low_keys = Keys
    { key_x_axis :: Key
key_x_axis = Key
Key.d_1
    , key_y_axis :: Key
key_y_axis = Key
Key.d0
    , key_ab :: Key
key_ab = Key
Key.d1
    , key_matrix :: Key
key_matrix = Key
Key.e1
    }

-- | Instruments that go below a1 but don't go above d7 use this.
high_keys :: Keys
high_keys :: Keys
high_keys = Keys
    { key_x_axis :: Key
key_x_axis = Key
Key.d7
    , key_y_axis :: Key
key_y_axis = Key
Key.d8
    , key_ab :: Key
key_ab = Key
Key.d9
    , key_matrix :: Key
key_matrix = Key
Key.e9
    }

-- * strings

-- ** solo strings

solo_strings :: [Instrument]
solo_strings :: [Instrument]
solo_strings =
    [ (Text
"violin", Keys
low_keys, [[Attributes]]
violin)
    , (Text
"viola", Keys
low_keys, [[Attributes]]
viola)
    , (Text
"cello", Keys
low_keys, [[Attributes]]
cello)
    , (Text
"bass", Keys
high_keys, [[Attributes]]
bass)
    ]
solo_violin, solo_viola, solo_cello, solo_bass :: Instrument
solo_violin :: Instrument
solo_violin = (Text
"violin", Keys
low_keys, [[Attributes]]
violin)
solo_viola :: Instrument
solo_viola = (Text
"viola", Keys
low_keys, [[Attributes]]
viola)
solo_cello :: Instrument
solo_cello = (Text
"cello", Keys
low_keys, [[Attributes]]
cello)
solo_bass :: Instrument
solo_bass = (Text
"bass", Keys
high_keys, [[Attributes]]
bass)

violin :: [[Attributes]]
violin =
    [ [Attributes]
violin_short_long_notes, [Attributes]
violin_dynamics
    , [Attributes]
violin_tremolo_trills, [Attributes]
violin_pizz_legno
    , [Attributes]
violin_harmonics, [Attributes]
violin_ponticello
    , [Attributes]
violin_tasto, [Attributes]
violin_perf_interval
    , [Attributes]
violin_perf_interval_fast, [Attributes]
violin_perf_trill
    , [Attributes]
violin_perf_repetition, [Attributes]
violin_fast_repetition
    , [Attributes]
violin_grace_notes, [Attributes]
violin_glissandi, [Attributes]
violin_scale_runs
    ]
violin_short_long_notes :: [Attributes]
violin_short_long_notes =
    [ Attributes
staccato, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
espr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib_down, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
violin_dynamics :: [Attributes]
violin_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib
    ]
violin_tremolo_trills :: [Attributes]
violin_tremolo_trills =
    [ Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
violin_pizz_legno :: [Attributes]
violin_pizz_legno = [Attributes
pizz, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
secco, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
snap, Attributes
legno]
violin_harmonics :: [Attributes]
violin_harmonics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
harm.)
    [ Attributes
artAttributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
glissAttributes -> Attributes -> Attributes
.Attributes
updown
    , Attributes
natAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
glissAttributes -> Attributes -> Attributes
.Attributes
updown
    ]
violin_ponticello :: [Attributes]
violin_ponticello = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
pont.)
    [ Attributes
staccato, Attributes
detache, Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
sfz, Attributes
sffz, Attributes
trem, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
repAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
repAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
legato
    ]
violin_tasto :: [Attributes]
violin_tasto = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
tasto.)
    [ Attributes
staccato, Attributes
detache, Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
sfz, Attributes
trem, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    ]
violin_perf_interval :: [Attributes]
violin_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [ Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sul, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
zigane
    , Attributes
porta, Attributes
detache, Attributes
marcato, Attributes
spiccato
    ]
violin_perf_interval_fast :: [Attributes]
violin_perf_interval_fast = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
fa.)
    [Attributes
legato, Attributes
marcato, Attributes
spiccato, Attributes
harsh]
violin_perf_trill :: [Attributes]
violin_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
legato]
violin_perf_repetition :: [Attributes]
violin_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccato, Attributes
spiccato, Attributes
harsh
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
spiccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
harsh
    ]
violin_fast_repetition :: [Attributes]
violin_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
20]), (Attributes
dyn, [Int
15..Int
20])]
    forall a. [a] -> [a] -> [a]
++ forall a b. (a -> b) -> [a] -> [b]
map (Attributes
ricochet.) (forall a b. (a -> b) -> [a] -> [b]
map Int -> Attributes
bpm [Int
150, Int
160, Int
170, Int
180, Int
190, Int
210])
    forall a. [a] -> [a] -> [a]
++ [Attributes
ricochetAttributes -> Attributes -> Attributes
.Int -> Attributes
notes Int
3, Attributes
ricochetAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
ricochetAttributes -> Attributes -> Attributes
.Attributes
rit]
violin_grace_notes :: [Attributes]
violin_grace_notes = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown.)
    [ Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third
    ]
violin_glissandi :: [Attributes]
violin_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [ Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"g", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"d", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"a", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"e"
    , Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
octAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
octAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
violin_scale_runs :: [Attributes]
violin_scale_runs = [Attributes] -> [Attributes]
run_scales
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole
    , Attributes
spiccatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
spiccatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
spiccatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
spiccatoAttributes -> Attributes -> Attributes
.Attributes
whole
    ]

viola :: [[Attributes]]
viola =
    [ [Attributes]
viola_short_long_notes, [Attributes]
viola_dynamics
    , [Attributes]
violin_tremolo_trills, [Attributes]
viola_pizz_legno
    , [Attributes]
viola_harmonics, [Attributes]
violin_ponticello
    , [Attributes]
violin_tasto, [Attributes]
viola_perf_interval
    , [Attributes]
violin_perf_interval_fast, [Attributes]
violin_perf_trill
    , [Attributes]
viola_perf_repetition, [Attributes]
viola_fast_repetition
    , [Attributes]
viola_grace_notes, [Attributes]
viola_glissandi
    ]
viola_short_long_notes :: [Attributes]
viola_short_long_notes =
    [ Attributes
staccato, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
espr
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib_down, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
viola_dynamics :: [Attributes]
viola_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
3]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
1.5, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
3])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
4])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib]
viola_pizz_legno :: [Attributes]
viola_pizz_legno = [Attributes
pizz, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
snap, Attributes
legno]
viola_harmonics :: [Attributes]
viola_harmonics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
harm.)
    [ Attributes
artAttributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep
    , Attributes
natAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
gliss
    ]
viola_perf_interval :: [Attributes]
viola_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [ Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sul, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
zigane
    , Attributes
porta, Attributes
marcato, Attributes
spiccato
    ]
viola_perf_repetition :: [Attributes]
viola_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portato, Attributes
staccato, Attributes
spiccato, Attributes
harsh
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
spiccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
harsh
    ]
viola_fast_repetition :: [Attributes]
viola_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
19]), (Attributes
dyn, [Int
15..Int
19])]
    forall a. [a] -> [a] -> [a]
++ forall a b. (a -> b) -> [a] -> [b]
map (Attributes
ricochet.) (forall a b. (a -> b) -> [a] -> [b]
map Int -> Attributes
bpm [Int
150, Int
160, Int
170, Int
180, Int
190, Int
210])
    forall a. [a] -> [a] -> [a]
++ [Attributes
ricochetAttributes -> Attributes -> Attributes
.Int -> Attributes
notes Int
3, Attributes
ricochetAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
ricochetAttributes -> Attributes -> Attributes
.Attributes
rit]
viola_grace_notes :: [Attributes]
viola_grace_notes = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown.)
    [ Attributes
half, Attributes
whole, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
whole
    , Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third
    ]
viola_glissandi :: [Attributes]
viola_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"c", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"g", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"d", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"a", Attributes
octAttributes -> Attributes -> Attributes
.Attributes
updown]

cello :: [[Attributes]]
cello =
    [ [Attributes]
cello_short_long_notes, [Attributes]
cello_dynamics, [Attributes]
cello_tremolo_trills
    , [Attributes]
cello_pizz_legno, [Attributes]
cello_harmonics, [Attributes]
cello_ponticello, [Attributes]
cello_tasto
    , [Attributes]
cello_perf_interval, [Attributes]
cello_perf_interval_fast, [Attributes]
cello_trill
    , [Attributes]
cello_perf_repetition, [Attributes]
cello_fast_repetition, [Attributes]
cello_grace_notes
    , [Attributes]
cello_glissandi
    ]
cello_short_long_notes :: [Attributes]
cello_short_long_notes =
    [ Attributes
staccato, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
espr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib_down, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
cello_dynamics :: [Attributes]
cello_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
1.5, RealTime
3]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
1.5, RealTime
3, RealTime
4])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
3])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
4])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib]
cello_tremolo_trills :: [Attributes]
cello_tremolo_trills =
    [ Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
cello_pizz_legno :: [Attributes]
cello_pizz_legno = [Attributes
pizz, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
secco, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
snap, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
legno]
cello_harmonics :: [Attributes]
cello_harmonics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
harm.)
    [Attributes
artAttributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
gliss]
cello_ponticello :: [Attributes]
cello_ponticello = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
pont.)
    [ Attributes
staccato, Attributes
detache, Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto, Attributes
sfz, Attributes
sffz
    , Attributes
trem, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto, Attributes
repAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
repAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
legato
    ]
cello_tasto :: [Attributes]
cello_tasto = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
tasto.)
    [ Attributes
staccato, Attributes
detache, Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto, Attributes
sfz
    , Attributes
trem, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    ]
cello_perf_interval :: [Attributes]
cello_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [ Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sul, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
zigane, Attributes
porta
    , Attributes
marcato, Attributes
spiccato
    ]
cello_perf_interval_fast :: [Attributes]
cello_perf_interval_fast = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
fast.) [Attributes
legato, Attributes
marcato, Attributes
spiccato, Attributes
harsh]
cello_trill :: [Attributes]
cello_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
legato]
cello_perf_repetition :: [Attributes]
cello_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
bow, Attributes
portato, Attributes
staccato, Attributes
spiccato, Attributes
harsh
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
bow
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
spiccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
harsh
    ]
cello_fast_repetition :: [Attributes]
cello_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
18]), (Attributes
dyn, [Int
14..Int
18])]
    forall a. [a] -> [a] -> [a]
++ forall a b. (a -> b) -> [a] -> [b]
map (Attributes
ricochet.) (forall a b. (a -> b) -> [a] -> [b]
map Int -> Attributes
bpm [Int
150, Int
160, Int
170, Int
180, Int
190, Int
210])
    forall a. [a] -> [a] -> [a]
++ [Attributes
ricochetAttributes -> Attributes -> Attributes
.Int -> Attributes
notes Int
3, Attributes
ricochetAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
ricochetAttributes -> Attributes -> Attributes
.Attributes
rit]
cello_grace_notes :: [Attributes]
cello_grace_notes = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown.)
    [Attributes
half, Attributes
whole, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
ziganeAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third]
cello_glissandi :: [Attributes]
cello_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [ Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"c", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"g", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"d", Attributes
perfAttributes -> Attributes -> Attributes
.Text -> Attributes
attr Text
"a"
    , Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
octAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
octAttributes -> Attributes -> Attributes
.Attributes
fast
    ]

-- *** solo bass

bass :: [[Attributes]]
bass =
    [ [Attributes]
bass_short_long_notes, [Attributes]
bass_dynamics
    , [Attributes]
bass_tremolo_trills, [Attributes]
bass_pizz_legno
    , [Attributes]
bass_harmonics, [Attributes]
violin_ponticello
    , [Attributes]
violin_tasto, [Attributes]
bass_perf_interval
    , [Attributes]
violin_perf_interval_fast, [Attributes]
violin_perf_trill
    , [Attributes]
bass_perf_repetition, [Attributes]
bass_glissandi
    ]

bass_short_long_notes :: [Attributes]
bass_short_long_notes =
    [ Attributes
staccato, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib_down, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
bass_dynamics :: [Attributes]
bass_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib
    ]
bass_tremolo_trills :: [Attributes]
bass_tremolo_trills =
    [ Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
bass_pizz_legno :: [Attributes]
bass_pizz_legno = [Attributes
pizz, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
snap, Attributes
legno]
bass_harmonics :: [Attributes]
bass_harmonics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
harm.)
    [ Attributes
artAttributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
artAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
rep, Attributes
natAttributes -> Attributes -> Attributes
.Attributes
gliss]
bass_perf_interval :: [Attributes]
bass_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.) [Attributes
legato, Attributes
porta, Attributes
marcato, Attributes
spiccato]
bass_perf_repetition :: [Attributes]
bass_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portato, Attributes
staccato, Attributes
spiccato, Attributes
harsh
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
spiccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
harsh
    ]
bass_glissandi :: [Attributes]
bass_glissandi = [Attributes
gliss, Attributes
octAttributes -> Attributes -> Attributes
.Attributes
glissAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
octAttributes -> Attributes -> Attributes
.Attributes
glissAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
fast]

-- ** string sections

strings :: [Instrument]
strings :: [Instrument]
strings =
    [ (Text
"strings", Keys
            { key_x_axis :: Key
key_x_axis = Key
Key.d_1
            , key_y_axis :: Key
key_y_axis = Key
Key.d8
            , key_ab :: Key
key_ab = Key
Key.d9
            , key_matrix :: Key
key_matrix = Key
Key.e9
            },
        [[Attributes]
strings_orchestra])
    , (Text
"violins", Keys
low_keys, [[Attributes]]
violins)
    , (Text
"violas", Keys
low_keys, [[Attributes]]
violas)
    , (Text
"cellos", Keys
low_keys, [[Attributes]]
cellos)
    , (Text
"basses", Keys
high_keys, [[Attributes]]
basses)
    ]

strings_orchestra :: [Attributes]
strings_orchestra =
    [ Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
long, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fp, Attributes
sfz, Attributes
trem, Attributes
pizz
    ]

violins :: [[Attributes]]
violins = String -> [[Attributes]]
string_section String
"gdae"
violas :: [[Attributes]]
violas = String -> [[Attributes]]
string_section String
"cgda"
cellos :: [[Attributes]]
cellos = String -> [[Attributes]]
string_section String
"cgda"

string_section :: String -> [[Attributes]]
string_section String
strings =
    [ [Attributes]
strings_short_long_notes, [Attributes]
strings_dynamics
    , [Attributes]
strings_tremolo_trills, [Attributes]
strings_pizz_legno
    , [Attributes]
strings_harmonics, [Attributes]
strings_ponticello
    , [Attributes]
strings_con_sordino_basic, [Attributes]
strings_perf_interval
    , [Attributes]
strings_perf_interval_fast, [Attributes]
strings_perf_trill
    , [Attributes]
strings_perf_repetition, [Attributes]
strings_perf_upbeat_repetition
    , [Attributes]
strings_fast_repetition, [Attributes]
strings_grace_notes
    , String -> [Attributes]
strings_glissandi String
strings, [Attributes]
strings_scale_runs
    ]

strings_short_long_notes :: [Attributes]
strings_short_long_notes =
    [ Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
long, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
flaut, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
flautAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
flautAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    ]
strings_dynamics :: [Attributes]
strings_dynamics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
dyn.)
    [ Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
strings_tremolo_trills :: [Attributes]
strings_tremolo_trills =
    [ Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
maj
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
pfp, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
pfp
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
whole
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
strings_pizz_legno :: [Attributes]
strings_pizz_legno =
    [ Attributes
pizz, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
snap, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
repAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
pizzAttributes -> Attributes -> Attributes
.Attributes
repAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
legno, Attributes
legnoAttributes -> Attributes -> Attributes
.Attributes
slow
    ]
strings_harmonics :: [Attributes]
strings_harmonics =
    [ Attributes
harmAttributes -> Attributes -> Attributes
.Attributes
artAttributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
harmAttributes -> Attributes -> Attributes
.Attributes
artAttributes -> Attributes -> Attributes
.Attributes
sus
    , Attributes
harmAttributes -> Attributes -> Attributes
.Attributes
artAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
harmAttributes -> Attributes -> Attributes
.Attributes
artAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto, Attributes
harmAttributes -> Attributes -> Attributes
.Attributes
artAttributes -> Attributes -> Attributes
.Attributes
rep
    ]
strings_ponticello :: [Attributes]
strings_ponticello = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
pont.)
    [ Attributes
staccato, Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
sfz, Attributes
trem, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    ]
strings_con_sordino_basic :: [Attributes]
strings_con_sordino_basic = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
mute.)
    [ Attributes
staccato, Attributes
detache, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
fp, Attributes
sfz, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
pizz
    ]
strings_perf_interval :: [Attributes]
strings_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [ Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
v4 -- 4 velocity layers
    , Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sul, Attributes
porta, Attributes
trem
    , Attributes
muteAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
muteAttributes -> Attributes -> Attributes
.Attributes
porta
    ]
strings_perf_interval_fast :: [Attributes]
strings_perf_interval_fast = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
fast.) [Attributes
legato, Attributes
marcato, Attributes
spiccato]
strings_perf_trill :: [Attributes]
strings_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
legato]
strings_perf_repetition :: [Attributes]
strings_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccato, Attributes
spiccato, Attributes
harsh
    , Attributes
muteAttributes -> Attributes -> Attributes
.Attributes
harsh, Attributes
muteAttributes -> Attributes -> Attributes
.Attributes
portato, Attributes
muteAttributes -> Attributes -> Attributes
.Attributes
staccato
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
bowAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
spiccato
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
harsh, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    ]
strings_perf_upbeat_repetition :: [Attributes]
strings_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
repAttributes -> Attributes -> Attributes
.Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
strings_fast_repetition :: [Attributes]
strings_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
19]), (Attributes
dyn, [Int
15..Int
19])]
strings_grace_notes :: [Attributes]
strings_grace_notes = [Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
whole]
strings_glissandi :: String -> [Attributes]
strings_glissandi String
strings =
    [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
glissAttributes -> Attributes -> Attributes
.Text -> Attributes
attr (Char -> Text
Text.singleton Char
s) | Char
s <- String
strings] forall a. [a] -> [a] -> [a]
++ [Attributes
glissAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
oct]
strings_scale_runs :: [Attributes]
strings_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
spiccatoAttributes -> Attributes -> Attributes
.Attributes
maj]

-- *** basses

basses :: [[Attributes]]
basses =
    [ [Attributes]
strings_short_long_notes
    , [Attributes]
basses_dynamics
    , [Attributes]
basses_tremolo_trills
    , [Attributes]
strings_pizz_legno
    , [Attributes]
strings_harmonics
    , [Attributes]
basses_ponticello
    , [Attributes]
basses_perf_interval
    , [Attributes]
strings_perf_interval_fast
    , [Attributes]
strings_perf_trill
    , [Attributes]
basses_perf_repetition
    , [Attributes]
basses_scale_runs
    ]

basses_dynamics :: [Attributes]
basses_dynamics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
dyn.)
    [ Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
basses_tremolo_trills :: [Attributes]
basses_tremolo_trills =
    [ Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
basses_ponticello :: [Attributes]
basses_ponticello = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
pont.)
    [ Attributes
staccato, Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
sfz, Attributes
trem, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
fa, Attributes
tremAttributes -> Attributes -> Attributes
.Attributes
faAttributes -> Attributes -> Attributes
.Attributes
auto
    ]
basses_perf_interval :: [Attributes]
basses_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.) [Attributes
legato, Attributes
porta]
basses_perf_repetition :: [Attributes]
basses_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccato, Attributes
spiccato, Attributes
harsh
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
spiccato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
harsh
    ]
basses_scale_runs :: [Attributes]
basses_scale_runs = [Attributes] -> [Attributes]
run_scales
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom
    , Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
detacheAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
fast
    ]

-- ** harps

harps :: [Instrument]
harps :: [Instrument]
harps =
    [ (Text
"harp1", Keys
low_keys, [[Attributes]]
harp1)
    , (Text
"harp2", Keys
low_keys, [[Attributes]]
harp2)
    ]
harp1 :: [[Attributes]]
harp1 =
    [ [Attributes]
harp1_single_notes, [Attributes]
harp1_glissandi
    , [Attributes]
harp1_arpeggios_a3, [Attributes]
harp1_arpeggios_a4
    ]

harp1_single_notes :: [Attributes]
harp1_single_notes = [Attributes
norm, Attributes
mute, Attributes
table, Attributes
harm, Attributes
bisbig, Attributes
normAttributes -> Attributes -> Attributes
.Attributes
rsAttributes -> Attributes -> Attributes
.Attributes
highlow]
harp1_glissandi :: [Attributes]
harp1_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.) forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
    [ [Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speedAttributes -> Attributes -> Attributes
.Attributes
pitch | Attributes
mode <- [Attributes
maj, Attributes
min], Attributes
speed <- [Attributes]
speeds3, Attributes
pitch <- [Attributes]
scale]
    , [Int -> Attributes
notes Int
4Attributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speedAttributes -> Attributes -> Attributes
.Attributes
ver | Attributes
mode <- [Attributes
maj, Attributes
min], Attributes
speed <- [Attributes]
speeds3,
        Attributes
ver <- Int -> [Attributes]
versions Int
5]
    , [Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
speedAttributes -> Attributes -> Attributes
.Attributes
pitch | Attributes
speed <- [Attributes]
speeds3, Attributes
pitch <- forall a b. (a -> b) -> [a] -> [b]
map Text -> Attributes
attr [Text
"c", Text
"cs", Text
"d"]]
    , [Attributes
pentAttributes -> Attributes -> Attributes
.Attributes
speedAttributes -> Attributes -> Attributes
.Attributes
ver | Attributes
speed <- [Attributes]
speeds3, Attributes
ver <- Int -> [Attributes]
versions Int
3]
    , [Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
speedAttributes -> Attributes -> Attributes
.Attributes
pitch | Attributes
speed <- [Attributes]
speeds3, Attributes
pitch <- forall a b. (a -> b) -> [a] -> [b]
map Text -> Attributes
attr [Text
"c", Text
"cs"]]
    ]
    where
    -- Actually, each glissando starts on a different note.  I can update this
    -- later if I need to.
    versions :: Int -> [Attributes]
versions Int
v = forall a b. (a -> b) -> [a] -> [b]
map Int -> Attributes
version [Int
1..Int
v]
    speeds3 :: [Attributes]
speeds3 = [Attributes
slow, Attributes
med, Attributes
fast]
harp1_arpeggios_a3 :: [Attributes]
harp1_arpeggios_a3 = forall a b. (a -> b) -> [a] -> [b]
map (Int -> Attributes
notes Int
3 .) [Attributes]
harp1_arpeggios
harp1_arpeggios_a4 :: [Attributes]
harp1_arpeggios_a4 = forall a b. (a -> b) -> [a] -> [b]
map (Int -> Attributes
notes Int
4 .) [Attributes]
harp1_arpeggios
harp1_arpeggios :: [Attributes]
harp1_arpeggios = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
arpup.) forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
    [ [Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speedAttributes -> Attributes -> Attributes
.Attributes
pitch | Attributes
mode <- [Attributes
maj, Attributes
min], Attributes
speed <- [Attributes]
speeds, Attributes
pitch <- [Attributes]
scale]
    , [Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
aug], Attributes
speed <- [Attributes]
speeds]
    ]
    where speeds :: [Attributes]
speeds = [Attributes
slow, Attributes
fast, Attributes
straight]

harp2 :: [[Attributes]]
harp2 = [[Attributes]
harp2_basic_articulations]

harp2_basic_articulations :: [Attributes]
harp2_basic_articulations =
    [ Attributes
norm, Attributes
mute, Attributes
damp, Attributes
table, Attributes
nail, Attributes
harm, Attributes
pedalAttributes -> Attributes -> Attributes
.Attributes
gliss
    , Attributes
bisbig, Attributes
normAttributes -> Attributes -> Attributes
.Attributes
rs, Attributes
normAttributes -> Attributes -> Attributes
.Attributes
rsAttributes -> Attributes -> Attributes
.Attributes
pedalAttributes -> Attributes -> Attributes
.Attributes
gliss
    ]


-- * woodwinds

-- ** woodwinds 1

woodwinds1 :: [Instrument]
woodwinds1 :: [Instrument]
woodwinds1 =
    [ (Text
"flute1", Keys
low_keys, [[Attributes]]
flute1)
    , (Text
"oboe2", Keys
low_keys, [[Attributes]]
oboe2)
    , (Text
"clarinet-bb", Keys
low_keys, [[Attributes]]
clarinet_bb)
    , (Text
"bassoon", Keys
low_keys, [[Attributes]]
bassoon)
    , (Text
"flutes", Keys
low_keys, [[Attributes]]
flutes)
    , (Text
"oboes", Keys
low_keys, [[Attributes]]
woodwinds)
    , (Text
"clarinets", Keys
low_keys, [[Attributes]]
woodwinds)
    , (Text
"bassoons", Keys
low_keys, [[Attributes]]
woodwinds)
    ]

-- *** flute1

flute1 :: [[Attributes]]
flute1 =
    [ [Attributes]
flute1_short_long_notes, [Attributes]
flute1_dynamics, [Attributes]
flute1_flutter_trills
    , [Attributes]
flute1_perf_interval, [Attributes]
flute1_perf_interval_fast
    , [Attributes]
flute1_perf_trill, [Attributes]
flute1_perf_repetition
    , [Attributes]
flute1_perf_upbeat_repetition, [Attributes]
flute1_fast_repetition
    , [Attributes]
flute1_grace_notes, [Attributes]
flute1_scale_runs, [Attributes]
flute1_arpeggios, [Attributes]
flute1_mordents
    ]

flute1_short_long_notes :: [Attributes]
flute1_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
long, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fx
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
flute1_dynamics :: [Attributes]
flute1_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
9
    , Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
9
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
flute1_flutter_trills :: [Attributes]
flute1_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
flute1_perf_interval :: [Attributes]
flute1_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.) [Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
flute1_perf_interval_fast :: [Attributes]
flute1_perf_interval_fast = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
fast.) [Attributes
legato, Attributes
marcato]
flute1_perf_trill :: [Attributes]
flute1_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
flute1_perf_repetition :: [Attributes]
flute1_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
tripleAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    ]
flute1_perf_upbeat_repetition :: [Attributes]
flute1_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
repAttributes -> Attributes -> Attributes
.Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
flute1_fast_repetition :: [Attributes]
flute1_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
17..Int
21]), (Attributes
triple, [Int
14..Int
18])]
flute1_grace_notes :: [Attributes]
flute1_grace_notes = [Attributes]
grace_intervals
flute1_scale_runs :: [Attributes]
flute1_scale_runs = [Attributes] -> [Attributes]
run_scales
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chromAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
flute1_arpeggios :: [Attributes]
flute1_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [ Attributes
articulationAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed
    | Attributes
articulation <- [Attributes
staccato, Attributes
legato], Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min]
    , Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]
    ]
flute1_mordents :: [Attributes]
flute1_mordents = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
mord.) forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
    [ forall a b. (a -> b) -> [a] -> [b]
map (Attributes
legato.) [Attributes]
variants
    , forall a b. (a -> b) -> [a] -> [b]
map (Attributes
staccato.) [Attributes]
variants
    ] where variants :: [Attributes]
variants = [Attributes
v1, Attributes
v2, Attributes
v3, Attributes
v4, Attributes
v5, Attributes
v6]

-- *** oboe2

oboe2 :: [[Attributes]]
oboe2 =
    [ [Attributes]
oboe2_short_long_notes, [Attributes]
oboe2_dynamics, [Attributes]
oboe2_flutter_trills
    , [Attributes]
oboe2_perf_interval, [Attributes]
oboe2_perf_interval_fast
    , [Attributes]
oboe2_perf_trill, [Attributes]
oboe2_perf_repetition
    , [Attributes]
oboe2_grace_notes, [Attributes]
oboe2_scale_runs
    ]
oboe2_short_long_notes :: [Attributes]
oboe2_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
ha, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
sa
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
oboe2_dynamics :: [Attributes]
oboe2_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
oboe2_flutter_trills :: [Attributes]
oboe2_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
oboe2_perf_interval :: [Attributes]
oboe2_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.) [Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
marcato]
oboe2_perf_interval_fast :: [Attributes]
oboe2_perf_interval_fast = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
fast.) [Attributes
legato, Attributes
marcato]
oboe2_perf_trill :: [Attributes]
oboe2_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
oboe2_perf_repetition :: [Attributes]
oboe2_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
oboe2_grace_notes :: [Attributes]
oboe2_grace_notes = [Attributes]
grace_intervals
oboe2_scale_runs :: [Attributes]
oboe2_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]

-- *** clarinet bb

clarinet_bb :: [[Attributes]]
clarinet_bb =
    [ [Attributes]
clarinet_bb_short_long_notes, [Attributes]
clarinet_bb_dynamics
    , [Attributes]
clarinet_bb_flutter_trills, [Attributes]
clarinet_bb_perf_interval
    , [Attributes]
clarinet_bb_perf_interval_fast, [Attributes]
clarinet_bb_perf_trill
    , [Attributes]
clarinet_bb_perf_repitition, [Attributes]
clarinet_bb_perf_upbeat_repetition
    , [Attributes]
clarinet_bb_fast_repetition, [Attributes]
clarinet_bb_grace_notes
    , [Attributes]
clarinet_bb_glissandi, [Attributes]
clarinet_bb_scale_runs, [Attributes]
clarinet_bb_arpeggios
    ]
clarinet_bb_short_long_notes :: [Attributes]
clarinet_bb_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
na, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
ha, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
sa
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
clarinet_bb_dynamics :: [Attributes]
clarinet_bb_dynamics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
dyn.)
    [ Attributes
liAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
liAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
liAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
liAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    ] forall a. [a] -> [a] -> [a]
++
    [ Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
10
    , Attributes
fpfAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
fpfAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
clarinet_bb_flutter_trills :: [Attributes]
clarinet_bb_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
clarinet_bb_perf_interval :: [Attributes]
clarinet_bb_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
clarinet_bb_perf_interval_fast :: [Attributes]
clarinet_bb_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
clarinet_bb_perf_trill :: [Attributes]
clarinet_bb_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
clarinet_bb_perf_repitition :: [Attributes]
clarinet_bb_perf_repitition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
clarinet_bb_perf_upbeat_repetition :: [Attributes]
clarinet_bb_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
repAttributes -> Attributes -> Attributes
.Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
clarinet_bb_fast_repetition :: [Attributes]
clarinet_bb_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
17]), (Attributes
dyn, [Int
14..Int
17])]
clarinet_bb_grace_notes :: [Attributes]
clarinet_bb_grace_notes = [Attributes]
grace_intervals
clarinet_bb_glissandi :: [Attributes]
clarinet_bb_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.) forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
    [ [ Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
fast ]
    , forall a b. (a -> b) -> [a] -> [b]
map (Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
updown.) [Attributes]
intervals_to_oct
    , forall a b. (a -> b) -> [a] -> [b]
map (Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
updown.) [Attributes]
intervals_to_oct
    ]
clarinet_bb_scale_runs :: [Attributes]
clarinet_bb_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]
clarinet_bb_arpeggios :: [Attributes]
clarinet_bb_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [ Attributes
articulationAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed
    | Attributes
articulation <- [Attributes
staccato, Attributes
legato], Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min]
    , Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]
    ]

-- *** bassoon

bassoon :: [[Attributes]]
bassoon =
    [ [Attributes]
bassoon_short_long_notes, [Attributes]
bassoon_dynamics
    , [Attributes]
bassoon_flutter_trills, [Attributes]
bassoon_perf_interval
    , [Attributes]
bassoon_perf_interval_fast, [Attributes]
bassoon_perf_trill
    , [Attributes]
bassoon_perf_repetition, [Attributes]
bassoon_perf_upbeat_repetition
    , [Attributes]
bassoon_fast_repetition, [Attributes]
bassoon_grace_notes
    , [Attributes]
bassoon_scale_runs
    ]
bassoon_short_long_notes :: [Attributes]
bassoon_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
str, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
marcato
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
bassoon_dynamics :: [Attributes]
bassoon_dynamics = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
dyn.)
    [ Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    ] forall a. [a] -> [a] -> [a]
++
    [ Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
10
    , Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
bassoon_flutter_trills :: [Attributes]
bassoon_flutter_trills =
    [Attributes
flutter, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn]
bassoon_perf_interval :: [Attributes]
bassoon_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
bassoon_perf_interval_fast :: [Attributes]
bassoon_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
bassoon_perf_trill :: [Attributes]
bassoon_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
bassoon_perf_repetition :: [Attributes]
bassoon_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
staccato
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    ]
bassoon_perf_upbeat_repetition :: [Attributes]
bassoon_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
repAttributes -> Attributes -> Attributes
.Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
bassoon_fast_repetition :: [Attributes]
bassoon_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
18]), (Attributes
dyn, [Int
14..Int
18])]
bassoon_grace_notes :: [Attributes]
bassoon_grace_notes = [Attributes]
grace_intervals
bassoon_scale_runs :: [Attributes]
bassoon_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]

-- *** flutes

flutes :: [[Attributes]]
flutes =
    [ [Attributes]
flutes_short_long_notes, [Attributes]
flutes_dynamics
    , [Attributes]
flutes_cluster_trills, [Attributes]
flutes_perf_interval
    , [Attributes]
flutes_perf_interval_fast, [Attributes]
flutes_perf_trill
    , [Attributes]
flutes_repetition, [Attributes]
flutes_scale_runs
    ]
flutes_short_long_notes :: [Attributes]
flutes_short_long_notes = [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib]
flutes_dynamics :: [Attributes]
flutes_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib
    ]
flutes_cluster_trills :: [Attributes]
flutes_cluster_trills =
    [ Attributes
cluster, Attributes
clusterAttributes -> Attributes -> Attributes
.Attributes
sfz
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
flutes_perf_interval :: [Attributes]
flutes_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
flutes_perf_interval_fast :: [Attributes]
flutes_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
flutes_perf_trill :: [Attributes]
flutes_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
flutes_repetition :: [Attributes]
flutes_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legato, Attributes
portato, Attributes
staccato
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    ]
flutes_scale_runs :: [Attributes]
flutes_scale_runs = [Attributes] -> [Attributes]
run_scales [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]

-- *** woodwinds

-- | Flutes, oboes, and bassoons all have the same articulations.
woodwinds :: [[Attributes]]
woodwinds =
    [ [Attributes]
woodwinds_short_long_notes, [Attributes]
woodwinds_dynamics
    , [Attributes]
woodwinds_cluster_trills, [Attributes]
woodwinds_perf_interval
    , [Attributes]
woodwinds_perf_interval_fast, [Attributes]
woodwinds_trill, [Attributes]
woodwinds_perf_repetition
    ]
woodwinds_short_long_notes :: [Attributes]
woodwinds_short_long_notes = [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
sus]
woodwinds_dynamics :: [Attributes]
woodwinds_dynamics =
    [Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5, Attributes
fp, Attributes
sfz, Attributes
sffz]
woodwinds_cluster_trills :: [Attributes]
woodwinds_cluster_trills =
    [ Attributes
cluster, Attributes
clusterAttributes -> Attributes -> Attributes
.Attributes
sfz
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
woodwinds_perf_interval :: [Attributes]
woodwinds_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
woodwinds_perf_interval_fast :: [Attributes]
woodwinds_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
woodwinds_trill :: [Attributes]
woodwinds_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
woodwinds_perf_repetition :: [Attributes]
woodwinds_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]

-- ** woodwinds 2

woodwinds2 :: [Instrument]
woodwinds2 :: [Instrument]
woodwinds2 =
    [ (Text
"piccolo", Keys
low_keys, [[Attributes]]
piccolo)
    , (Text
"flute2", Keys
low_keys, [[Attributes]]
flute2)
    , (Text
"alto-flute", Keys
low_keys, [[Attributes]]
alto_flute)
    , (Text
"oboe1", Keys
low_keys, [[Attributes]]
oboe1)
    , (Text
"english-horn1", Keys
low_keys, [[Attributes]]
english_horn1)
    , (Text
"english-horn2", Keys
low_keys, [[Attributes]]
english_horn2)
    , (Text
"clarinet-eb", Keys
low_keys, [[Attributes]]
clarinet_eb)
    , (Text
"bass-clarinet", Keys
low_keys, [[Attributes]]
bass_clarinet)
    , (Text
"contra-bassoon", Keys
high_keys, [[Attributes]]
contra_bassoon)
    ]

-- *** piccolo

piccolo :: [[Attributes]]
piccolo =
    [ [Attributes]
piccolo_short_long_notes, [Attributes]
piccolo_dynamics
    , [Attributes]
piccolo_flutter_trills, [Attributes]
piccolo_perf_interval
    , [Attributes]
piccolo_perf_interval_fast, [Attributes]
piccolo_perf_trill
    , [Attributes]
piccolo_perf_repetition, [Attributes]
piccolo_fast_repetition
    , [Attributes]
piccolo_grace_notes, [Attributes]
piccolo_scale_runs
    , [Attributes]
piccolo_arpeggios, [Attributes]
piccolo_mordent
    ]
piccolo_short_long_notes :: [Attributes]
piccolo_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v1, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v2, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr
    ]
piccolo_dynamics :: [Attributes]
piccolo_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v1, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v2, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v3
    ]
piccolo_flutter_trills :: [Attributes]
piccolo_flutter_trills =
    [ Attributes
flutter
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
fourth
    ]
piccolo_perf_interval :: [Attributes]
piccolo_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.) [Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
lyric, Attributes
marcato]
piccolo_perf_interval_fast :: [Attributes]
piccolo_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
piccolo_perf_trill :: [Attributes]
piccolo_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
piccolo_perf_repetition :: [Attributes]
piccolo_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccato
    ]
piccolo_fast_repetition :: [Attributes]
piccolo_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
20] forall a. [a] -> [a] -> [a]
++ [Int
22])]
piccolo_grace_notes :: [Attributes]
piccolo_grace_notes = [Attributes]
grace_intervals
piccolo_scale_runs :: [Attributes]
piccolo_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]
piccolo_arpeggios :: [Attributes]
piccolo_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [ Attributes
articulationAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed
    | Attributes
articulation <- [Attributes
staccato, Attributes
legato], Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min]
    , Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]
    ]
piccolo_mordent :: [Attributes]
piccolo_mordent = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
mord.) [Attributes
v1, Attributes
v2, Attributes
v3, Attributes
v4, Attributes
v5, Attributes
v6]

-- *** flute2

flute2 :: [[Attributes]]
flute2 =
    [ [Attributes]
flute2_short_long_notes, [Attributes]
flute2_dynamics
    , [Attributes]
flute2_flutter_trills, [Attributes]
flute2_perf_interval
    , [Attributes]
flute2_perf_interval_fast, [Attributes]
flute2_perf_trill
    , [Attributes]
flute2_perf_repetition, [Attributes]
flute2_fast_repetition
    , [Attributes]
flute2_grace_notes, [Attributes]
flute2_scale_runs, [Attributes]
flute2_arpeggios
    ]
flute2_short_long_notes :: [Attributes]
flute2_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
flute2_dynamics :: [Attributes]
flute2_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
flute2_flutter_trills :: [Attributes]
flute2_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
fourth
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
flute2_perf_interval :: [Attributes]
flute2_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.) [Attributes
legato, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
marcato]
flute2_perf_interval_fast :: [Attributes]
flute2_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
flute2_perf_trill :: [Attributes]
flute2_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
flute2_perf_repetition :: [Attributes]
flute2_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portato, Attributes
staccato
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
flute2_fast_repetition :: [Attributes]
flute2_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
16..Int
21]), (Attributes
triple, [Int
13..Int
16])]
flute2_grace_notes :: [Attributes]
flute2_grace_notes = [Attributes]
grace_intervals
flute2_scale_runs :: [Attributes]
flute2_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]
flute2_arpeggios :: [Attributes]
flute2_arpeggios = [Attributes] -> [Attributes]
arp_scales forall a b. (a -> b) -> a -> b
$ forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat
    [ [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
fast | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min]]
    , [Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]
    ]

-- *** alto flute

alto_flute :: [[Attributes]]
alto_flute =
    [ [Attributes]
alto_flute_short_long_notes, [Attributes]
alto_flute_dynamics
    , [Attributes]
alto_flute_flutter, [Attributes]
alto_flute_perf_interval
    , [Attributes]
alto_flute_perf_interval_fast, [Attributes]
alto_flute_perf_trill
    , [Attributes]
alto_flute_perf_repetition, [Attributes]
alto_flute_grace_notes
    ]
alto_flute_short_long_notes :: [Attributes]
alto_flute_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
alto_flute_dynamics :: [Attributes]
alto_flute_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib
    ]
alto_flute_flutter :: [Attributes]
alto_flute_flutter =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
alto_flute_perf_interval :: [Attributes]
alto_flute_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
alto_flute_perf_interval_fast :: [Attributes]
alto_flute_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
alto_flute_perf_trill :: [Attributes]
alto_flute_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
alto_flute_perf_repetition :: [Attributes]
alto_flute_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
alto_flute_grace_notes :: [Attributes]
alto_flute_grace_notes = [Attributes]
grace_intervals

-- *** oboe1

oboe1 :: [[Attributes]]
oboe1 =
    [ [Attributes]
oboe1_short_long_notes, [Attributes]
oboe1_dynamics
    , [Attributes]
oboe1_flutter_trills, [Attributes]
oboe1_perf_interval
    , [Attributes]
oboe1_perf_interval_fast, [Attributes]
oboe1_perf_trill
    , [Attributes]
oboe1_perf_repetition, [Attributes]
oboe1_perf_upbeat_repetition
    , [Attributes]
oboe1_grace_notes, [Attributes]
oboe1_scale_runs
    , [Attributes]
oboe1_arpeggios, [Attributes]
oboe1_mordents
    ]
oboe1_short_long_notes :: [Attributes]
oboe1_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
naAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
saAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
oboe1_dynamics :: [Attributes]
oboe1_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
oboe1_flutter_trills :: [Attributes]
oboe1_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
thirdAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
oboe1_perf_interval :: [Attributes]
oboe1_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
marcato]
oboe1_perf_interval_fast :: [Attributes]
oboe1_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
oboe1_perf_trill :: [Attributes]
oboe1_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
oboe1_perf_repetition :: [Attributes]
oboe1_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
oboe1_perf_upbeat_repetition :: [Attributes]
oboe1_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
oboe1_grace_notes :: [Attributes]
oboe1_grace_notes = [Attributes]
grace_intervals
oboe1_scale_runs :: [Attributes]
oboe1_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]
oboe1_arpeggios :: [Attributes]
oboe1_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]
oboe1_mordents :: [Attributes]
oboe1_mordents = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
mord.) [Attributes
v1, Attributes
v2, Attributes
v3, Attributes
v4, Attributes
v5, Attributes
v6]

-- *** english horn 1

english_horn1 :: [[Attributes]]
english_horn1 =
    [ [Attributes]
english_horn1_short_long_notes, [Attributes]
english_horn1_dynamics
    , [Attributes]
english_horn1_flutter_trills, [Attributes]
english_horn1_perf_interval
    , [Attributes]
english_horn1_perf_interval_fast, [Attributes]
english_horn1_perf_trill
    , [Attributes]
english_horn1_perf_repetition, [Attributes]
english_horn1_grace_notes
    , [Attributes]
english_horn1_scale_runs
    ]
english_horn1_short_long_notes :: [Attributes]
english_horn1_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
haAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
saAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
english_horn1_dynamics :: [Attributes]
english_horn1_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
10
    , Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
fpfAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
english_horn1_flutter_trills :: [Attributes]
english_horn1_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
english_horn1_perf_interval :: [Attributes]
english_horn1_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
grace, Attributes
marcato]
english_horn1_perf_interval_fast :: [Attributes]
english_horn1_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
english_horn1_perf_trill :: [Attributes]
english_horn1_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
english_horn1_perf_repetition :: [Attributes]
english_horn1_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
english_horn1_grace_notes :: [Attributes]
english_horn1_grace_notes = [Attributes]
grace_intervals
english_horn1_scale_runs :: [Attributes]
english_horn1_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]

-- *** english horn 2

english_horn2 :: [[Attributes]]
english_horn2 =
    [ [Attributes]
english_horn2_short_long_notes, [Attributes]
english_horn2_dynmics
    , [Attributes]
english_horn2_flutter_trills, [Attributes]
english_horn2_perf_interval
    , [Attributes]
english_horn2_perf_interval_fast, [Attributes]
english_horn2_perf_trill
    , [Attributes]
english_horn2_perf_repetition, [Attributes]
english_horn2_grace_notes
    ]
english_horn2_short_long_notes :: [Attributes]
english_horn2_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
naAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
naAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
paAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr
    ]
english_horn2_dynmics :: [Attributes]
english_horn2_dynmics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
english_horn2_flutter_trills :: [Attributes]
english_horn2_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
english_horn2_perf_interval :: [Attributes]
english_horn2_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
english_horn2_perf_interval_fast :: [Attributes]
english_horn2_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
english_horn2_perf_trill :: [Attributes]
english_horn2_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
english_horn2_perf_repetition :: [Attributes]
english_horn2_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
english_horn2_grace_notes :: [Attributes]
english_horn2_grace_notes = [Attributes]
grace_intervals

-- *** clarinet eb

clarinet_eb :: [[Attributes]]
clarinet_eb =
    [ [Attributes]
clarinet_eb_short_long_notes, [Attributes]
clarinet_eb_dynamics
    , [Attributes]
clarinet_eb_flutter_trills, [Attributes]
clarinet_eb_perf_interval
    , [Attributes]
clarinet_eb_perf_interval_fast, [Attributes]
clarinet_eb_perf_trill
    , [Attributes]
clarinet_eb_perf_repetition, [Attributes]
clarinet_eb_fast_repetition
    , [Attributes]
clarinet_eb_grace_notes
    ]
clarinet_eb_short_long_notes :: [Attributes]
clarinet_eb_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
na, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
ha, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
sa, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
clarinet_eb_dynamics :: [Attributes]
clarinet_eb_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
clarinet_eb_flutter_trills :: [Attributes]
clarinet_eb_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
acc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
clarinet_eb_perf_interval :: [Attributes]
clarinet_eb_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
clarinet_eb_perf_interval_fast :: [Attributes]
clarinet_eb_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
clarinet_eb_perf_trill :: [Attributes]
clarinet_eb_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
clarinet_eb_perf_repetition :: [Attributes]
clarinet_eb_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
clarinet_eb_fast_repetition :: [Attributes]
clarinet_eb_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
18]), (Attributes
dyn, [Int
14..Int
18])]
clarinet_eb_grace_notes :: [Attributes]
clarinet_eb_grace_notes = [Attributes]
grace_intervals

-- *** bass clarinet

bass_clarinet :: [[Attributes]]
bass_clarinet =
    [ [Attributes]
bass_clarinet_short_long_notes, [Attributes]
bass_clarinet_dynamics
    , [Attributes]
bass_clarinet_flutter_trill, [Attributes]
bass_clarinet_perf_interval
    , [Attributes]
bass_clarinet_perf_interval_fast, [Attributes]
bass_clarinet_perf_trill
    , [Attributes]
bass_clarinet_perf_repetition, [Attributes]
bass_clarinet_scale_runs
    ]
bass_clarinet_short_long_notes :: [Attributes]
bass_clarinet_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
bass_clarinet_dynamics :: [Attributes]
bass_clarinet_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
10
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
bass_clarinet_flutter_trill :: [Attributes]
bass_clarinet_flutter_trill =
    [Attributes
flutter, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn]
bass_clarinet_perf_interval :: [Attributes]
bass_clarinet_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
bass_clarinet_perf_interval_fast :: [Attributes]
bass_clarinet_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
bass_clarinet_perf_trill :: [Attributes]
bass_clarinet_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
bass_clarinet_perf_repetition :: [Attributes]
bass_clarinet_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legato, Attributes
portato, Attributes
staccato
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato
    ]
bass_clarinet_scale_runs :: [Attributes]
bass_clarinet_scale_runs = [Attributes] -> [Attributes]
run_scales
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]


-- *** contra bassoon

contra_bassoon :: [[Attributes]]
contra_bassoon =
    [ [Attributes]
contra_bassoon_short_long_notes, [Attributes]
contra_bassoon_dynamics
    , [Attributes]
contra_bassoon_flutter, [Attributes]
contra_bassoon_perf_interval
    , [Attributes]
contra_bassoon_perf_interval_fast, [Attributes]
contra_bassoon_perf_trill
    , [Attributes]
contra_bassoon_perf_repetition, [Attributes]
contra_bassoon_grace_notes
    ]
contra_bassoon_short_long_notes :: [Attributes]
contra_bassoon_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
fxAttributes -> Attributes -> Attributes
.Attributes
crescdim
    ]
contra_bassoon_dynamics :: [Attributes]
contra_bassoon_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
5
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
contra_bassoon_flutter :: [Attributes]
contra_bassoon_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
contra_bassoon_perf_interval :: [Attributes]
contra_bassoon_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
grace, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
contra_bassoon_perf_interval_fast :: [Attributes]
contra_bassoon_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
contra_bassoon_perf_trill :: [Attributes]
contra_bassoon_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
contra_bassoon_perf_repetition :: [Attributes]
contra_bassoon_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
contra_bassoon_grace_notes :: [Attributes]
contra_bassoon_grace_notes = [Attributes]
grace_intervals

-- ** special woodwinds

special_woodwinds :: [Instrument]
special_woodwinds :: [Instrument]
special_woodwinds =
    [ (Text
"bass-flute", Keys
high_keys, [[Attributes]]
bass_flute)
    , (Text
"oboe-damore", Keys
low_keys, [[Attributes]]
oboe_damore)
    , (Text
"heckelphone", Keys
low_keys, [[Attributes]]
heckelphone)
    , (Text
"contrabass-clarinet", Keys
high_keys, [[Attributes]]
contrabass_clarinet)
    , (Text
"basset-horn", Keys
high_keys, [[Attributes]]
basset_horn)
    ]

bass_flute :: [[Attributes]]
bass_flute =
    [ [Attributes]
bass_flute_short_long_notes, [Attributes]
bass_flute_dynamics
    , [Attributes]
bass_flute_flutter, [Attributes]
bass_flute_perf_interval
    , [Attributes]
bass_flute_perf_interval_fast, [Attributes]
bass_flute_perf_trill
    , [Attributes]
bass_flute_perf_repetition, [Attributes]
bass_flute_fast_repetition
    ]
bass_flute_short_long_notes :: [Attributes]
bass_flute_short_long_notes =
    [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv]
bass_flute_dynamics :: [Attributes]
bass_flute_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
8
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
bass_flute_flutter :: [Attributes]
bass_flute_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
bass_flute_perf_interval :: [Attributes]
bass_flute_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
bass_flute_perf_interval_fast :: [Attributes]
bass_flute_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
bass_flute_perf_trill :: [Attributes]
bass_flute_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
bass_flute_perf_repetition :: [Attributes]
bass_flute_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
bass_flute_fast_repetition :: [Attributes]
bass_flute_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
12..Int
18]), (Attributes
dyn, [Int
12..Int
18])]

oboe_damore :: [[Attributes]]
oboe_damore =
    [ [Attributes]
oboe_damore_short_long_notes, [Attributes]
oboe_damore_dynamics
    , [Attributes]
oboe_damore_flutter, [Attributes]
oboe_damore_perf_interval
    , [Attributes]
oboe_damore_perf_interval_fast, [Attributes]
oboe_damore_perf_trill
    , [Attributes]
oboe_damore_perf_repetition, [Attributes]
oboe_damore_fast_repetition
    ]
oboe_damore_short_long_notes :: [Attributes]
oboe_damore_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
saAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
saAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
oboe_damore_dynamics :: [Attributes]
oboe_damore_dynamics =
    [ Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
10
    , Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
oboe_damore_flutter :: [Attributes]
oboe_damore_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
oboe_damore_perf_interval :: [Attributes]
oboe_damore_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato]
oboe_damore_perf_interval_fast :: [Attributes]
oboe_damore_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
oboe_damore_perf_trill :: [Attributes]
oboe_damore_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
oboe_damore_perf_repetition :: [Attributes]
oboe_damore_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
oboe_damore_fast_repetition :: [Attributes]
oboe_damore_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
12..Int
18]), (Attributes
dyn, [Int
12..Int
18])]

heckelphone :: [[Attributes]]
heckelphone =
    [ [Attributes]
heckelphone_short_long_notes, [Attributes]
heckelphone_dynamics
    , [Attributes]
heckelphone_flutter, [Attributes]
heckelphone_perf_interval
    , [Attributes]
heckelphone_perf_interval_fast, [Attributes]
heckelphone_trill
    , [Attributes]
heckelphone_perf_repetition
    ]
heckelphone_short_long_notes :: [Attributes]
heckelphone_short_long_notes =
    [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv]
heckelphone_dynamics :: [Attributes]
heckelphone_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
5])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
3, RealTime
5, RealTime
8])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib]
heckelphone_flutter :: [Attributes]
heckelphone_flutter = [Attributes
flutter]
heckelphone_perf_interval :: [Attributes]
heckelphone_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
heckelphone_perf_interval_fast :: [Attributes]
heckelphone_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
heckelphone_trill :: [Attributes]
heckelphone_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
heckelphone_perf_repetition :: [Attributes]
heckelphone_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]

contrabass_clarinet :: [[Attributes]]
contrabass_clarinet =
    [ [Attributes]
contrabass_clarinet_short_long_notes, [Attributes]
contrabass_clarinet_dynamics
    , [Attributes]
contrabass_clarinet_perf_interval, [Attributes]
contrabass_clarinet_perf_interval_fast
    , [Attributes]
contrabass_clarinet_perf_trill, [Attributes]
contrabass_clarinet_perf_repetition
    ]
contrabass_clarinet_short_long_notes :: [Attributes]
contrabass_clarinet_short_long_notes = [Attributes
staccato, Attributes
portato, Attributes
sus]
contrabass_clarinet_dynamics :: [Attributes]
contrabass_clarinet_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
pfp, [RealTime
2, RealTime
3, RealTime
4, RealTime
6, RealTime
8]) ]
    forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
contrabass_clarinet_perf_interval :: [Attributes]
contrabass_clarinet_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
contrabass_clarinet_perf_interval_fast :: [Attributes]
contrabass_clarinet_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
contrabass_clarinet_perf_trill :: [Attributes]
contrabass_clarinet_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
contrabass_clarinet_perf_repetition :: [Attributes]
contrabass_clarinet_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]

basset_horn :: [[Attributes]]
basset_horn =
    [ [Attributes]
basset_horn_short_long_notes, [Attributes]
basset_horn_dynamics
    , [Attributes]
basset_horn_flutter, [Attributes]
basset_horn_perf_interval
    , [Attributes]
basset_horn_perf_interval_fast, [Attributes]
basset_horn_perf_trill
    , [Attributes]
basset_horn_perf_repetition, [Attributes]
basset_horn_fast_repetition
    ]
basset_horn_short_long_notes :: [Attributes]
basset_horn_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
sa, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
ha
    , Attributes
sus
    ]
basset_horn_dynamics :: [Attributes]
basset_horn_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfp, [RealTime
2, RealTime
3, RealTime
4, RealTime
6, RealTime
8])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
basset_horn_flutter :: [Attributes]
basset_horn_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
basset_horn_perf_interval :: [Attributes]
basset_horn_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
basset_horn_perf_interval_fast :: [Attributes]
basset_horn_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
basset_horn_perf_trill :: [Attributes]
basset_horn_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
basset_horn_perf_repetition :: [Attributes]
basset_horn_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
basset_horn_fast_repetition :: [Attributes]
basset_horn_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
12..Int
18]), (Attributes
dyn, [Int
12..Int
18])]

-- * brass

-- ** brass1

brass1 :: [Instrument]
brass1 :: [Instrument]
brass1 =
    [ (Text
"trumpet-c", Keys
low_keys, [[Attributes]]
trumpet_c)
    , (Text
"trumpet-c-mute", Keys
low_keys, [[Attributes]]
trumpet_c_mute)
    , (Text
"horn-vienna", Keys
low_keys, [[Attributes]]
horn_vienna)
    , (Text
"tenor-trombone", Keys
low_keys, [[Attributes]]
tenor_trombone)
    , (Text
"tenor-trombone-mute-a", Keys
low_keys, [[Attributes]]
tenor_trombone_mute_a)
    , (Text
"tenor-trombone-mute-b", Keys
low_keys, [[Attributes]]
tenor_trombone_mute_b)
    , (Text
"tuba", Keys
high_keys, [[Attributes]]
tuba)
    , (Text
"trumpets-a3", Keys
low_keys, [[Attributes]]
trumpets_a3)
    , (Text
"trumpets-a3-mute", Keys
low_keys, [[Attributes]]
trumpets_a3_mute)
    , (Text
"horns-a4", Keys
low_keys, [[Attributes]]
horns_a4)
    , (Text
"horns-a4-stopped", Keys
low_keys, [[Attributes]]
horns_a4_stopped)
    , (Text
"trombones-a3", Keys
low_keys, [[Attributes]]
trombones_a3)
    , (Text
"trombones-a3-mute", Keys
low_keys, [[Attributes]]
trombones_a3_mute)
    ]

trumpet_c :: [[Attributes]]
trumpet_c =
    [ [Attributes]
trumpet_c_short_long_notes, [Attributes]
trumpet_c_dynamics
    , [Attributes]
trumpet_c_flutter_trills, [Attributes]
trumpet_c_perf_interval
    , [Attributes]
trumpet_c_perf_interval_fast, [Attributes]
trumpet_c_perf_trill
    , [Attributes]
trumpet_c_perf_repetition, [Attributes]
trumpet_c_fast_repetition
    , [Attributes]
trumpet_c_upbeat_repetition, [Attributes]
trumpet_c_grace_notes
    , [Attributes]
trumpet_c_scale_runs, [Attributes]
trumpet_c_arpeggios, [Attributes]
trumpet_c_mordents
    ]
trumpet_c_short_long_notes :: [Attributes]
trumpet_c_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
soft
    -- long-norm, long-marcato, long-soft
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
normAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
normAttributes -> Attributes -> Attributes
.Attributes
vib_str, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
vib_str
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
normAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
softAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib_str, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
trumpet_c_dynamics :: [Attributes]
trumpet_c_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
3, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
4, RealTime
8]), (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
4, RealTime
6, RealTime
8])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
trumpet_c_flutter_trills :: [Attributes]
trumpet_c_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
whole
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
accAttributes -> Attributes -> Attributes
.Attributes
whole
    ]
trumpet_c_perf_interval :: [Attributes]
trumpet_c_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
sus -- TODO what's this?
    , Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
marcato
    ]
trumpet_c_perf_interval_fast :: [Attributes]
trumpet_c_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
trumpet_c_perf_trill :: [Attributes]
trumpet_c_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
trumpet_c_perf_repetition :: [Attributes]
trumpet_c_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portato, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
trumpet_c_fast_repetition :: [Attributes]
trumpet_c_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm
    [(forall a. Monoid a => a
mempty, [Int
14, Int
16, Int
17, Int
19, Int
21]), (Attributes
dyn, [Int
14, Int
15, Int
16, Int
17, Int
19, Int
21])]
trumpet_c_upbeat_repetition :: [Attributes]
trumpet_c_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [ (Attributes
n1, [Int
10, Int
11, Int
12, Int
13, Int
14, Int
16, Int
18])
    , (Attributes
n2, [Int
10, Int
11, Int
12, Int
13, Int
14, Int
16, Int
18, Int
20])
    , (Attributes
n3, [Int
10, Int
11, Int
12, Int
13, Int
14, Int
16, Int
18, Int
20])
    ]
trumpet_c_grace_notes :: [Attributes]
trumpet_c_grace_notes = [Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
whole]
trumpet_c_scale_runs :: [Attributes]
trumpet_c_scale_runs = [Attributes] -> [Attributes]
run_scales [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj]
trumpet_c_arpeggios :: [Attributes]
trumpet_c_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]
trumpet_c_mordents :: [Attributes]
trumpet_c_mordents = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
mordAttributes -> Attributes -> Attributes
.Attributes
legato.) [Attributes
v1, Attributes
v2, Attributes
v3, Attributes
v4, Attributes
v5, Attributes
v6]

trumpet_c_mute :: [[Attributes]]
trumpet_c_mute =
    [ [Attributes]
trumpet_c_mute_short_long_notes, [Attributes]
trumpet_c_mute_dynamics
    , [Attributes]
trumpet_c_mute_flutter_trills, [Attributes]
trumpet_c_mute_perf_interval
    , [Attributes]
trumpet_c_mute_perf_interval_fast, [Attributes]
trumpet_c_mute_perf_trill
    , [Attributes]
trumpet_c_mute_perf_repetition, [Attributes]
trumpet_c_mute_fast_repetition
    , [Attributes]
trumpet_c_mute_upbeat_repetition
    ]
trumpet_c_mute_short_long_notes :: [Attributes]
trumpet_c_mute_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
trumpet_c_mute_dynamics :: [Attributes]
trumpet_c_mute_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
5, RealTime
9]), (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
5])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
fpAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sfzAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
sffzAttributes -> Attributes -> Attributes
.Attributes
nv]
trumpet_c_mute_flutter_trills :: [Attributes]
trumpet_c_mute_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
trumpet_c_mute_perf_interval :: [Attributes]
trumpet_c_mute_perf_interval =
    [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
nv]
trumpet_c_mute_perf_interval_fast :: [Attributes]
trumpet_c_mute_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
trumpet_c_mute_perf_trill :: [Attributes]
trumpet_c_mute_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
trumpet_c_mute_perf_repetition :: [Attributes]
trumpet_c_mute_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
trumpet_c_mute_fast_repetition :: [Attributes]
trumpet_c_mute_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm
    [(forall a. Monoid a => a
mempty, [Int
14, Int
15, Int
16, Int
17, Int
19]), (Attributes
dyn, [Int
14, Int
15, Int
16, Int
17, Int
19])]
trumpet_c_mute_upbeat_repetition :: [Attributes]
trumpet_c_mute_upbeat_repetition =
    [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm [(Attributes
n1, [Int]
bpms), (Attributes
n2, [Int]
bpms), (Attributes
n3, [Int]
bpms)]
    where bpms :: [Int]
bpms = [Int
9, Int
10, Int
11, Int
12, Int
13, Int
14, Int
16, Int
18, Int
20]

horn_vienna :: [[Attributes]]
horn_vienna =
    [ [Attributes]
horn_vienna_short_long_notes, [Attributes]
horn_vienna_dynamics
    , [Attributes]
horn_vienna_flutter_trills, [Attributes]
horn_vienna_stopped
    , [Attributes]
horn_vienna_perf_interval, [Attributes]
horn_vienna_perf_interval_fast
    , [Attributes]
horn_vienna_perf_trill, [Attributes]
horn_vienna_perf_repetition
    , [Attributes]
horn_vienna_fast_repetition, [Attributes]
horn_vienna_upbeat_repetition
    , [Attributes]
horn_vienna_grace_notes, [Attributes]
horn_vienna_glissandi
    ]
horn_vienna_short_long_notes :: [Attributes]
horn_vienna_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
shortAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
blare
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
blare
    ]
horn_vienna_dynamics :: [Attributes]
horn_vienna_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1, RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
4, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1, RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
v1, [RealTime
6]), (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
v2, [RealTime
6]), (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
8])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
horn_vienna_flutter_trills :: [Attributes]
horn_vienna_flutter_trills =
    [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
lip]
horn_vienna_stopped :: [Attributes]
horn_vienna_stopped = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
stop.)
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
long, Attributes
sus
    , Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
6
    , Attributes
fp, Attributes
sfz, Attributes
sffz
    ]
horn_vienna_perf_interval :: [Attributes]
horn_vienna_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
marcato]
horn_vienna_perf_interval_fast :: [Attributes]
horn_vienna_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
horn_vienna_perf_trill :: [Attributes]
horn_vienna_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
horn_vienna_perf_repetition :: [Attributes]
horn_vienna_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portato
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn6Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn6Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn6Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
horn_vienna_fast_repetition :: [Attributes]
horn_vienna_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
19]), (Attributes
dyn, [Int
15..Int
19])]
horn_vienna_upbeat_repetition :: [Attributes]
horn_vienna_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [ (Attributes
n1, [Int
9, Int
10, Int
11, Int
12, Int
13, Int
14, Int
16, Int
18])
    , (Attributes
n2, [Int]
bpms), (Attributes
n3, [Int]
bpms)
    ]
    where bpms :: [Int]
bpms = [Int
9, Int
10, Int
11, Int
12, Int
13, Int
14, Int
16, Int
18, Int
20]
horn_vienna_grace_notes :: [Attributes]
horn_vienna_grace_notes = [Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updownAttributes -> Attributes -> Attributes
.Attributes
whole]
horn_vienna_glissandi :: [Attributes]
horn_vienna_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [ Attributes
fast, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
up, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
fourth, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
fifth, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
fifth, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
sixth
    , Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
sixth, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
oct
    , Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
fourth, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
fifth, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
sixth, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
sixth
    , Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
upAttributes -> Attributes -> Attributes
.Attributes
oct
    ]

tenor_trombone :: [[Attributes]]
tenor_trombone =
    [ [Attributes]
tenor_trombone_short_long_notes, [Attributes]
tenor_trombone_dynamics
    , [Attributes]
tenor_trombone_flutter, [Attributes]
tenor_trombone_perf_interval
    , [Attributes]
tenor_trombone_perf_interval_fast, [Attributes]
tenor_trombone_perf_trill
    , [Attributes]
tenor_trombone_perf_repetition, [Attributes]
tenor_trombone_fast_repetition
    , [Attributes]
tenor_trombone_upbeat_repetition, [Attributes]
tenor_trombone_grace_notes
    , [Attributes]
tenor_trombone_glissandi, [Attributes]
tenor_trombone_arpeggios
    ]
tenor_trombone_short_long_notes :: [Attributes]
tenor_trombone_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
shortAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
mediumAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
marcato
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib_str, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
tenor_trombone_dynamics :: [Attributes]
tenor_trombone_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1, RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
6])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
tenor_trombone_flutter :: [Attributes]
tenor_trombone_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
tenor_trombone_perf_interval :: [Attributes]
tenor_trombone_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
marcato]
tenor_trombone_perf_interval_fast :: [Attributes]
tenor_trombone_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
tenor_trombone_perf_trill :: [Attributes]
tenor_trombone_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
tenor_trombone_perf_repetition :: [Attributes]
tenor_trombone_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legato, Attributes
portato, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn6Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
tenor_trombone_fast_repetition :: [Attributes]
tenor_trombone_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
19]), (Attributes
dyn, [Int
15..Int
19])]
tenor_trombone_upbeat_repetition :: [Attributes]
tenor_trombone_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [(Attributes
n1, [Int]
bpms), (Attributes
n2, [Int]
bpms), (Attributes
n3, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18])]
    where bpms :: [Int]
bpms = [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18, Int
20, Int
22]
tenor_trombone_grace_notes :: [Attributes]
tenor_trombone_grace_notes = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown.) [Attributes
half, Attributes
whole]
tenor_trombone_glissandi :: [Attributes]
tenor_trombone_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [ Attributes
fast, Attributes
slow, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third
    , Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
fourth, Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
fifth
    , Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
fourth, Attributes
slowAttributes -> Attributes -> Attributes
.Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
fifth
    ]
tenor_trombone_arpeggios :: [Attributes]
tenor_trombone_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]

tenor_trombone_mute_a :: [[Attributes]]
tenor_trombone_mute_a =
    [ [Attributes]
tenor_trombone_mute_a_short_long_notes, [Attributes]
tenor_trombone_mute_a_dynamics
    , [Attributes]
tenor_trombone_mute_a_flutter, [Attributes]
tenor_trombone_mute_a_perf_interval
    , [Attributes]
tenor_trombone_mute_a_perf_repetition
    , [Attributes]
tenor_trombone_mute_a_fast_repetition
    , [Attributes]
tenor_trombone_mute_a_upbeat_repetition
    ]
tenor_trombone_mute_a_short_long_notes :: [Attributes]
tenor_trombone_mute_a_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
tenor_trombone_mute_a_dynamics :: [Attributes]
tenor_trombone_mute_a_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
tenor_trombone_mute_a_flutter :: [Attributes]
tenor_trombone_mute_a_flutter = [Attributes
flutter]
tenor_trombone_mute_a_perf_interval :: [Attributes]
tenor_trombone_mute_a_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
tenor_trombone_mute_a_perf_repetition :: [Attributes]
tenor_trombone_mute_a_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
tenor_trombone_mute_a_fast_repetition :: [Attributes]
tenor_trombone_mute_a_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
19]), (Attributes
dyn, [Int
14..Int
19])]
tenor_trombone_mute_a_upbeat_repetition :: [Attributes]
tenor_trombone_mute_a_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [(Attributes
n1, [Int
9..Int
14]), (Attributes
n2, [Int
9..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18]), (Attributes
n2, [Int
9..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18])]

tenor_trombone_mute_b :: [[Attributes]]
tenor_trombone_mute_b =
    [ [Attributes]
tenor_trombone_mute_b_short_long_notes, [Attributes]
tenor_trombone_mute_b_dynamics
    , [Attributes]
tenor_trombone_mute_b_flutter, [Attributes]
tenor_trombone_mute_b_perf_interval
    , [Attributes]
tenor_trombone_mute_b_perf_repetition
    , [Attributes]
tenor_trombone_mute_b_fast_repetition
    , [Attributes]
tenor_trombone_mute_b_upbeat_repetition
    ]
tenor_trombone_mute_b_short_long_notes :: [Attributes]
tenor_trombone_mute_b_short_long_notes =
    [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
progr, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv]
tenor_trombone_mute_b_dynamics :: [Attributes]
tenor_trombone_mute_b_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
tenor_trombone_mute_b_flutter :: [Attributes]
tenor_trombone_mute_b_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
tenor_trombone_mute_b_perf_interval :: [Attributes]
tenor_trombone_mute_b_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
tenor_trombone_mute_b_perf_repetition :: [Attributes]
tenor_trombone_mute_b_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
tenor_trombone_mute_b_fast_repetition :: [Attributes]
tenor_trombone_mute_b_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
19]), (Attributes
dyn, [Int
14..Int
19])]
tenor_trombone_mute_b_upbeat_repetition :: [Attributes]
tenor_trombone_mute_b_upbeat_repetition =
    [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm [(Attributes
n1, [Int]
bpms), (Attributes
n2, [Int]
bpms), (Attributes
n3, [Int]
bpms)]
    where bpms :: [Int]
bpms = [Int
9..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18]

tuba :: [[Attributes]]
tuba =
    [ [Attributes]
tuba_short_long_notes, [Attributes]
tuba_dynamics, [Attributes]
tuba_flutter_trills
    , [Attributes]
tuba_mute_basic, [Attributes]
tuba_perf_interval, [Attributes]
tuba_perf_interval_fast
    , [Attributes]
tuba_perf_repetition, [Attributes]
tuba_fast_repetition, [Attributes]
tuba_upbeat_repetition
    , [Attributes]
tuba_grace_notes
    ]
tuba_short_long_notes :: [Attributes]
tuba_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
hard
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
vib_str
    , Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
soft, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
longAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
hard
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v1, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
v2, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv
    ]
tuba_dynamics :: [Attributes]
tuba_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
liAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
1, RealTime
1.5, RealTime
2, RealTime
3, RealTime
4]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
vib, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
medAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
strAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfpAttributes -> Attributes -> Attributes
.Attributes
nv, [RealTime
4])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
tuba_flutter_trills :: [Attributes]
tuba_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
cresc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
cresc
    ]
tuba_mute_basic :: [Attributes]
tuba_mute_basic = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
mute.)
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
long, Attributes
sus
    , Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
2, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
3, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4
    , Attributes
sfz, Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc
    ]
tuba_perf_interval :: [Attributes]
tuba_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato.) [Attributes
nv, Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
vibAttributes -> Attributes -> Attributes
.Attributes
sus]
tuba_perf_interval_fast :: [Attributes]
tuba_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast]
tuba_perf_repetition :: [Attributes]
tuba_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn6Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
cresc9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
cresc9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
cresc9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
cresc9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
tuba_fast_repetition :: [Attributes]
tuba_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
19]), (Attributes
cresc, [Int
15..Int
19])]
tuba_upbeat_repetition :: [Attributes]
tuba_upbeat_repetition =
    [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm [(Attributes
n1, [Int
8..Int
14]), (Attributes
n2, [Int
8..Int
14]), (Attributes
n3, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16])]
tuba_grace_notes :: [Attributes]
tuba_grace_notes = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown.) [Attributes
half, Attributes
whole]

trumpets_a3 :: [[Attributes]]
trumpets_a3 =
    [ [Attributes]
trumpets_a3_short_long_notes, [Attributes]
trumpets_a3_dynamics
    , [Attributes]
trumpets_a3_flutter_trills, [Attributes]
trumpets_a3_perf_interval
    , [Attributes]
trumpets_a3_perf_interval_fast, [Attributes]
trumpets_a3_perf_trill
    , [Attributes]
trumpets_a3_perf_repetition, [Attributes]
trumpets_a3_perf_upbeat_repetition
    , [Attributes]
trumpets_a3_fast_repetition, [Attributes]
trumpets_a3_upbeat_repetition
    , [Attributes]
trumpets_a3_scale_runs, [Attributes]
trumpets_a3_arpeggios
    , [Attributes]
trumpets_a3_fall_release
    ]
trumpets_a3_short_long_notes :: [Attributes]
trumpets_a3_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
tune, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
rip, Attributes
fall, Attributes
fallAttributes -> Attributes -> Attributes
.Attributes
fa
    ]
trumpets_a3_dynamics :: [Attributes]
trumpets_a3_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfp, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
trumpets_a3_flutter_trills :: [Attributes]
trumpets_a3_flutter_trills =
    [ Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
half, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
whole
    , Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
halfAttributes -> Attributes -> Attributes
.Attributes
dyn, Attributes
trillAttributes -> Attributes -> Attributes
.Attributes
wholeAttributes -> Attributes -> Attributes
.Attributes
dyn
    ]
trumpets_a3_perf_interval :: [Attributes]
trumpets_a3_perf_interval = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perf.)
    [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nvAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
tune, Attributes
marcato]
trumpets_a3_perf_interval_fast :: [Attributes]
trumpets_a3_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
trumpets_a3_perf_trill :: [Attributes]
trumpets_a3_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
trumpets_a3_perf_repetition :: [Attributes]
trumpets_a3_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
trumpets_a3_perf_upbeat_repetition :: [Attributes]
trumpets_a3_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
repAttributes -> Attributes -> Attributes
.Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
med, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
med, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
trumpets_a3_fast_repetition :: [Attributes]
trumpets_a3_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
19]), (Attributes
dyn, [Int
15..Int
19])]
trumpets_a3_upbeat_repetition :: [Attributes]
trumpets_a3_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [(Attributes
n1, [Int
8..Int
14]), (Attributes
n2, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18]), (Attributes
n3, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18])]
trumpets_a3_scale_runs :: [Attributes]
trumpets_a3_scale_runs =
    [Attributes] -> [Attributes]
run_scales [Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
maj, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
min, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
chrom, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
whole]
trumpets_a3_arpeggios :: [Attributes]
trumpets_a3_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]
trumpets_a3_fall_release :: [Attributes]
trumpets_a3_fall_release = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
fall.)
    [ Attributes
susAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
tune, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
rip
    , Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
nv, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
vib, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
tune, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato
    ]

trumpets_a3_mute :: [[Attributes]]
trumpets_a3_mute =
    [ [Attributes]
trumpets_a3_mute_short_long_notes, [Attributes]
trumpets_a3_mute_dynamics
    , [Attributes]
trumpets_a3_mute_flutter, [Attributes]
trumpets_a3_mute_perf_interval
    , [Attributes]
trumpets_a3_mute_perf_repetition, [Attributes]
trumpets_a3_mute_fast_repetition
    , [Attributes]
trumpets_a3_mute_upbeat_repetitions
    ]
trumpets_a3_mute_short_long_notes :: [Attributes]
trumpets_a3_mute_short_long_notes = [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
sus]
trumpets_a3_mute_dynamics :: [Attributes]
trumpets_a3_mute_dynamics =
    [(Attributes, [RealTime])] -> [Attributes]
seconds [(Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
pfp, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])]
    forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
trumpets_a3_mute_flutter :: [Attributes]
trumpets_a3_mute_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
trumpets_a3_mute_perf_interval :: [Attributes]
trumpets_a3_mute_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
trumpets_a3_mute_perf_repetition :: [Attributes]
trumpets_a3_mute_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
rep.)
    [ Attributes
legato, Attributes
portato, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
trumpets_a3_mute_fast_repetition :: [Attributes]
trumpets_a3_mute_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
19]), (Attributes
dyn, [Int
14..Int
19])]
trumpets_a3_mute_upbeat_repetitions :: [Attributes]
trumpets_a3_mute_upbeat_repetitions =
    [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm [(Attributes
n1, [Int]
bpms), (Attributes
n2, [Int]
bpms), (Attributes
n3, [Int]
bpms)]
    where bpms :: [Int]
bpms = [Int
9..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18, Int
20]

horns_a4 :: [[Attributes]]
horns_a4 =
    [ [Attributes]
horns_a4_short_long_notes, [Attributes]
horns_a4_dynamics
    , [Attributes]
horns_a4_flutter, [Attributes]
horns_a4_perf_interval
    , [Attributes]
horns_a4_perf_interval_fast, [Attributes]
horns_a4_perf_trill
    , [Attributes]
horns_a4_perf_repetition, [Attributes]
horns_a4_perf_upbeat_repetition
    , [Attributes]
horns_a4_fast_repetition, [Attributes]
horns_a4_upbeat_repetition
    , [Attributes]
horns_a4_arpeggios, [Attributes]
horns_a4_glissandi
    ]
horns_a4_short_long_notes :: [Attributes]
horns_a4_short_long_notes =
    [ Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
marcato, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
blare
    ]
horns_a4_dynamics :: [Attributes]
horns_a4_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
3, RealTime
4, RealTime
6]), (Attributes
pfp, [RealTime
4, RealTime
6])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
horns_a4_flutter :: [Attributes]
horns_a4_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
horns_a4_perf_interval :: [Attributes]
horns_a4_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
horns_a4_perf_interval_fast :: [Attributes]
horns_a4_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
horns_a4_perf_trill :: [Attributes]
horns_a4_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
horns_a4_perf_repetition :: [Attributes]
horns_a4_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
horns_a4_perf_upbeat_repetition :: [Attributes]
horns_a4_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
horns_a4_fast_repetition :: [Attributes]
horns_a4_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
15..Int
19]), (Attributes
dyn, [Int
15..Int
19])]
horns_a4_upbeat_repetition :: [Attributes]
horns_a4_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [(Attributes
n1, [Int
8..Int
13]), (Attributes
n2, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18]), (Attributes
n3, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18])]
horns_a4_arpeggios :: [Attributes]
horns_a4_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]
horns_a4_glissandi :: [Attributes]
horns_a4_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [ Attributes
perf, Attributes
fourth, Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
fifth, Attributes
fifth, Attributes
minAttributes -> Attributes -> Attributes
.Attributes
sixth, Attributes
majAttributes -> Attributes -> Attributes
.Attributes
sixth, Attributes
minAttributes -> Attributes -> Attributes
.Attributes
seventh
    , Attributes
majAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
oct
    ]

horns_a4_stopped :: [[Attributes]]
horns_a4_stopped =
    [ [Attributes]
horns_a4_stopped_short_long_notes, [Attributes]
horns_a4_stopped_dynamics
    , [Attributes]
horns_a4_stopped_perf_interval, [Attributes]
horns_a4_stopped_perf_repetition
    , [Attributes]
horns_a4_stopped_fast_repetition, [Attributes]
horns_a4_stopped_upbeat_repetition
    ]
horns_a4_stopped_short_long_notes :: [Attributes]
horns_a4_stopped_short_long_notes = [Attributes
staccato, Attributes
sus]
horns_a4_stopped_dynamics :: [Attributes]
horns_a4_stopped_dynamics =
    [(Attributes, [RealTime])] -> [Attributes]
seconds [(Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4])] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
horns_a4_stopped_perf_interval :: [Attributes]
horns_a4_stopped_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sus]
horns_a4_stopped_perf_repetition :: [Attributes]
horns_a4_stopped_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [Attributes
legato, Attributes
portato, Attributes
staccato, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccato]
horns_a4_stopped_fast_repetition :: [Attributes]
horns_a4_stopped_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
19]), (Attributes
dyn, [Int
14..Int
19])]
horns_a4_stopped_upbeat_repetition :: [Attributes]
horns_a4_stopped_upbeat_repetition =
    [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm [(Attributes
n1, [Int
9..Int
14]), (Attributes
n2, [Int
9..Int
14]), (Attributes
n3, [Int
9..Int
14])]

trombones_a3 :: [[Attributes]]
trombones_a3 =
    [ [Attributes]
trombones_a3_short_long_notes, [Attributes]
trombones_a3_dynamics
    , [Attributes]
trombones_a3_flutter, [Attributes]
trombones_a3_cluster
    , [Attributes]
trombones_a3_perf_interval, [Attributes]
trombones_a3_perf_interval_fast
    , [Attributes]
trombones_a3_perf_trill, [Attributes]
trombones_a3_perf_repetition
    , [Attributes]
trombones_a3_perf_upbeat_repetition, [Attributes]
trombones_a3_fast_repetition
    , [Attributes]
trombones_a3_upbeat_repetition, [Attributes]
trombones_a3_arpeggios
    , [Attributes]
trombones_a3_glissandi
    ]
trombones_a3_short_long_notes :: [Attributes]
trombones_a3_short_long_notes =
    [ Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
long
    , Attributes
sus, Attributes
susAttributes -> Attributes -> Attributes
.Attributes
marcato
    ]
trombones_a3_dynamics :: [Attributes]
trombones_a3_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [ (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
med, [RealTime
1.5, RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
2, RealTime
3, RealTime
4, RealTime
6])
    , (Attributes
pfp, [RealTime
4, RealTime
6, RealTime
8, RealTime
10])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
trombones_a3_flutter :: [Attributes]
trombones_a3_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
trombones_a3_cluster :: [Attributes]
trombones_a3_cluster = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
cluster.)
    [ Attributes
staccato, Attributes
sus, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
1.5, Attributes
dynAttributes -> Attributes -> Attributes
.RealTime -> Attributes
sec RealTime
4, Attributes
sfz
    , Attributes
repAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
repAttributes -> Attributes -> Attributes
.Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato
    ]
trombones_a3_perf_interval :: [Attributes]
trombones_a3_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
sus, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
trombones_a3_perf_interval_fast :: [Attributes]
trombones_a3_perf_interval_fast = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcatoAttributes -> Attributes -> Attributes
.Attributes
fast]
trombones_a3_perf_trill :: [Attributes]
trombones_a3_perf_trill = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
trill]
trombones_a3_perf_repetition :: [Attributes]
trombones_a3_perf_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
trombones_a3_perf_upbeat_repetition :: [Attributes]
trombones_a3_perf_upbeat_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
upbeat.)
    [ Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
med, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
med, Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
med, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
med
    , Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n1Attributes -> Attributes -> Attributes
.Attributes
fast, Attributes
dyn4Attributes -> Attributes -> Attributes
.Attributes
n2Attributes -> Attributes -> Attributes
.Attributes
fast
    ]
trombones_a3_fast_repetition :: [Attributes]
trombones_a3_fast_repetition =
    [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
18]), (Attributes
dyn, [Int
14..Int
18])]
trombones_a3_upbeat_repetition :: [Attributes]
trombones_a3_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [(Attributes
n1, [Int
8..Int
14]), (Attributes
n2, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18]), (Attributes
n3, [Int
8..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18])]
trombones_a3_arpeggios :: [Attributes]
trombones_a3_arpeggios = [Attributes] -> [Attributes]
arp_scales
    [Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
modeAttributes -> Attributes -> Attributes
.Attributes
speed | Attributes
mode <- [Attributes
dim, Attributes
maj, Attributes
min], Attributes
speed <- [forall a. Monoid a => a
mempty, Attributes
fast]]
trombones_a3_glissandi :: [Attributes]
trombones_a3_glissandi = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
gliss.)
    [Attributes
perf, Attributes
half, Attributes
whole, Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
fourth, Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
fifth]

trombones_a3_mute :: [[Attributes]]
trombones_a3_mute =
    [ [Attributes]
trombones_a3_mute_short_long_notes, [Attributes]
trombones_a3_mute_dynamics
    , [Attributes]
trombones_a3_mute_flutter, [Attributes]
trombones_a3_mute_perf_interval
    , [Attributes]
trombones_a3_mute_repetition, [Attributes]
trombones_a3_mute_fast_repetition
    , [Attributes]
trombones_a3_mute_upbeat_repetition
    ]
trombones_a3_mute_short_long_notes :: [Attributes]
trombones_a3_mute_short_long_notes =
    [Attributes
staccato, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
short, Attributes
portatoAttributes -> Attributes -> Attributes
.Attributes
med, Attributes
sus]
trombones_a3_mute_dynamics :: [Attributes]
trombones_a3_mute_dynamics = [(Attributes, [RealTime])] -> [Attributes]
seconds
    [(Attributes
dynAttributes -> Attributes -> Attributes
.Attributes
str, [RealTime
2, RealTime
3, RealTime
4, RealTime
6]), (Attributes
pfp, [RealTime
2, RealTime
3, RealTime
4, RealTime
7])
    ] forall a. [a] -> [a] -> [a]
++ [Attributes
fp, Attributes
sfz, Attributes
sffz]
trombones_a3_mute_flutter :: [Attributes]
trombones_a3_mute_flutter = [Attributes
flutter, Attributes
flutterAttributes -> Attributes -> Attributes
.Attributes
cresc]
trombones_a3_mute_perf_interval :: [Attributes]
trombones_a3_mute_perf_interval = [Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
legato, Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
marcato]
trombones_a3_mute_repetition :: [Attributes]
trombones_a3_mute_repetition = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
rep.)
    [ Attributes
legato, Attributes
portato, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    , Attributes
dyn5Attributes -> Attributes -> Attributes
.Attributes
legato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
portato, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
slow, Attributes
dyn9Attributes -> Attributes -> Attributes
.Attributes
staccatoAttributes -> Attributes -> Attributes
.Attributes
fast
    ]
trombones_a3_mute_fast_repetition :: [Attributes]
trombones_a3_mute_fast_repetition = [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(forall a. Monoid a => a
mempty, [Int
14..Int
19])]
trombones_a3_mute_upbeat_repetition :: [Attributes]
trombones_a3_mute_upbeat_repetition = [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm
    [(Attributes
n1, [Int
9..Int
15]), (Attributes
n2, [Int
9..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18]), (Attributes
n3, [Int
9..Int
14] forall a. [a] -> [a] -> [a]
++ [Int
16, Int
18])]


-- * util

run_scales :: [Attributes] -> [Attributes]
run_scales :: [Attributes] -> [Attributes]
run_scales [Attributes]
attrs = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
run.) ([Attributes] -> [Attributes]
with_scale [Attributes]
attrs)

arp_scales :: [Attributes] -> [Attributes]
arp_scales :: [Attributes] -> [Attributes]
arp_scales [Attributes]
attrs = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
arp.) ([Attributes] -> [Attributes]
with_scale [Attributes]
attrs)

-- | Add an attr for each pitch, if it has 'maj' or 'min'.
with_scale :: [Attributes] -> [Attributes]
with_scale :: [Attributes] -> [Attributes]
with_scale = forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap Attributes -> [Attributes]
make
    where
    make :: Attributes -> [Attributes]
make Attributes
attr
        | forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any (Attributes -> Attributes -> Bool
Attrs.contain Attributes
attr) [Attributes
maj, Attributes
min] = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
attr.) [Attributes]
scale
        | Bool
otherwise = [Attributes
attr]

scale :: [Attributes]
scale :: [Attributes]
scale = forall a b. (a -> b) -> [a] -> [b]
map Text -> Attributes
attr
    [Text
"c", Text
"cs", Text
"d", Text
"ds", Text
"e", Text
"f", Text
"fs", Text
"g", Text
"gs", Text
"a", Text
"as", Text
"b"]

grace_intervals :: [Attributes]
grace_intervals :: [Attributes]
grace_intervals = forall a b. (a -> b) -> [a] -> [b]
map (Attributes
graceAttributes -> Attributes -> Attributes
.Attributes
updown.) [Attributes]
intervals_to_oct

-- | Intervals from half note to the octave.
intervals_to_oct :: [Attributes]
intervals_to_oct :: [Attributes]
intervals_to_oct =
    [ Attributes
half, Attributes
whole, Attributes
minAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
majAttributes -> Attributes -> Attributes
.Attributes
third, Attributes
fourth, Attributes
dimAttributes -> Attributes -> Attributes
.Attributes
fifth, Attributes
fifth
    , Attributes
minAttributes -> Attributes -> Attributes
.Attributes
sixth, Attributes
majAttributes -> Attributes -> Attributes
.Attributes
sixth, Attributes
minAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
majAttributes -> Attributes -> Attributes
.Attributes
seventh, Attributes
oct
    ]

fast_rep_bpm :: [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm :: [(Attributes, [Int])] -> [Attributes]
fast_rep_bpm [(Attributes, [Int])]
attrs =
    forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [forall a b. (a -> b) -> [a] -> [b]
map (Attributes
attrAttributes -> Attributes -> Attributes
.Attributes
fastAttributes -> Attributes -> Attributes
.Attributes
rep.) (forall a b. (a -> b) -> [a] -> [b]
map Int -> Attributes
bpm (forall a b. (a -> b) -> [a] -> [b]
map (Int
10*) [Int]
bpms))
        | (Attributes
attr, [Int]
bpms) <- [(Attributes, [Int])]
attrs]

upbeat_rep_bpm :: [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm :: [(Attributes, [Int])] -> [Attributes]
upbeat_rep_bpm [(Attributes, [Int])]
attrs =
    forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [forall a b. (a -> b) -> [a] -> [b]
map (Attributes
attrAttributes -> Attributes -> Attributes
.Attributes
perfAttributes -> Attributes -> Attributes
.Attributes
upbeatAttributes -> Attributes -> Attributes
.Attributes
rep.) (forall a b. (a -> b) -> [a] -> [b]
map Int -> Attributes
bpm (forall a b. (a -> b) -> [a] -> [b]
map (Int
10*) [Int]
bpms))
        | (Attributes
attr, [Int]
bpms) <- [(Attributes, [Int])]
attrs]

seconds :: [(Attributes, [RealTime])] -> [Attributes]
seconds :: [(Attributes, [RealTime])] -> [Attributes]
seconds [(Attributes, [RealTime])]
attrs_secs =
    [(Attributes, [Attributes])] -> [Attributes]
prefix_attrs [(Attributes
prefix, forall a b. (a -> b) -> [a] -> [b]
map RealTime -> Attributes
sec [RealTime]
secs) | (Attributes
prefix, [RealTime]
secs) <- [(Attributes, [RealTime])]
attrs_secs]

-- | Add a prefix to each list of attributes.
prefix_attrs :: [(Attributes, [Attributes])] -> [Attributes]
prefix_attrs :: [(Attributes, [Attributes])] -> [Attributes]
prefix_attrs [(Attributes, [Attributes])]
attrs = forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [forall a b. (a -> b) -> [a] -> [b]
map (Attributes
prefix.) [Attributes]
attrs | (Attributes
prefix, [Attributes]
attrs) <- [(Attributes, [Attributes])]
attrs]

-- * attrs

sec :: RealTime -> Attributes
sec :: RealTime -> Attributes
sec RealTime
n = Text -> Attributes
attr forall a b. (a -> b) -> a -> b
$ Text
"sec"
    forall a. Semigroup a => a -> a -> a
<> HasCallStack => Text -> Text -> Text -> Text
Text.replace Text
"." Text
"-" (forall a. RealFloat a => Maybe Int -> a -> Text
Num.showFloat0 forall a. Maybe a
Nothing (RealTime -> Double
RealTime.to_seconds RealTime
n))

parse_sec :: Attributes -> Maybe (RealTime, Attributes)
parse_sec :: Attributes -> Maybe (RealTime, Attributes)
parse_sec Attributes
attrs = case forall a b. (a -> Maybe b) -> [a] -> ([b], [a])
Lists.partitionOn Text -> Maybe RealTime
has_sec (Attributes -> [Text]
Attrs.to_list Attributes
attrs) of
    ([RealTime
secs], [Text]
rest) -> forall a. a -> Maybe a
Just (RealTime
secs, [Text] -> Attributes
Attrs.attrs [Text]
rest)
    ([RealTime], [Text])
_ -> forall a. Maybe a
Nothing
    where
    . :: (b -> c) -> (a -> b) -> a -> c
(.) = forall b c a. (b -> c) -> (a -> b) -> a -> c
(Prelude..)
    has_sec :: Text -> Maybe RealTime
has_sec = Text -> Maybe RealTime
parse forall b c a. (b -> c) -> (a -> b) -> a -> c
. HasCallStack => Text -> Text -> Text -> Text
Text.replace Text
"-" Text
"." forall (m :: * -> *) b c a.
Monad m =>
(b -> m c) -> (a -> m b) -> a -> m c
<=< Text -> Text -> Maybe Text
Text.stripPrefix Text
"sec"
    parse :: Text -> Maybe RealTime
parse Text
t = case forall a. Parser a -> Text -> Either Text a
ParseText.parse1 Parser Double
ParseText.p_unsigned_float Text
t of
        Left Text
_ -> forall a. Maybe a
Nothing
        Right Double
val -> forall a. a -> Maybe a
Just forall a b. (a -> b) -> a -> b
$ Double -> RealTime
RealTime.seconds Double
val

bpm :: Int -> Attributes
bpm :: Int -> Attributes
bpm Int
n = Text -> Attributes
attr (Text
"bpm" forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> Text
showt Int
n)

-- | General-purpose version, for when I don't have a better way to describe
-- the difference.
version :: Int -> Attributes
version :: Int -> Attributes
version Int
n = Text -> Attributes
attr (Text
"v" forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> Text
showt Int
n)

-- | Number of notes.
notes :: Int -> Attributes
notes :: Int -> Attributes
notes Int
n = Text -> Attributes
attr (Text
"n" forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> Text
showt Int
n)

n1 :: Attributes
n1 = Int -> Attributes
notes Int
1
n2 :: Attributes
n2 = Int -> Attributes
notes Int
2
n3 :: Attributes
n3 = Int -> Attributes
notes Int
3

-- TODO make sure this is used consistently.  What does it mean really?
perf :: Attributes
perf = Text -> Attributes
attr Text
"perf" -- interval performances

sus :: Attributes
sus = Text -> Attributes
attr Text
"sus"
norm :: Attributes
norm = Text -> Attributes
attr Text
"norm"
-- | An \"arpeggio\" variant where the notes are simultaneous.
straight :: Attributes
straight = Text -> Attributes
attr Text
"straight"

acc :: Attributes
acc = Text -> Attributes
attr Text
"acc" -- accelerando
rit :: Attributes
rit = Text -> Attributes
attr Text
"rit" -- ritardando
secco :: Attributes
secco = Text -> Attributes
attr Text
"secco"
harsh :: Attributes
harsh = Text -> Attributes
attr Text
"harsh"
art :: Attributes
art = Attributes
Attrs.artificial -- artificial harmonics
nat :: Attributes
nat = Attributes
Attrs.natural -- natural harmonics
rep :: Attributes
rep = Text -> Attributes
attr Text
"rep" -- repetitions
sul :: Attributes
sul = Text -> Attributes
attr Text
"sul" -- sul, on the same string
zigane :: Attributes
zigane = Text -> Attributes
attr Text
"zigane" -- "gipsy style" portamento
bow :: Attributes
bow = Text -> Attributes
attr Text
"bow" -- bow vibrato
ricochet :: Attributes
ricochet = Text -> Attributes
attr Text
"ricochet"

table :: Attributes
table = Text -> Attributes
attr Text
"table" -- pres-de-la-table, TODO aka secco
nail :: Attributes
nail = Text -> Attributes
attrText
" nail"

hard :: Attributes
hard = Text -> Attributes
attr Text
"hard"

-- ** brass

blare :: Attributes
blare = Text -> Attributes
attr Text
"blare"
lip :: Attributes
lip = Text -> Attributes
attr Text
"lip"
stop :: Attributes
stop = Text -> Attributes
attr Text
"stop" -- stopped
rip :: Attributes
rip = Text -> Attributes
attr Text
"rip"
fall :: Attributes
fall = Text -> Attributes
attr Text
"fall"
tune :: Attributes
tune = Text -> Attributes
attr Text
"tune"

fx :: Attributes
fx = Text -> Attributes
attr Text
"fx"

-- ** dynamics

auto :: Attributes
auto = Text -> Attributes
attr Text
"auto" -- attack automation, guesses fast attack or normal attack
fa :: Attributes
fa = Text -> Attributes
attr Text
"fa" -- fast attack
ha :: Attributes
ha = Text -> Attributes
attr Text
"ha" -- hard attack
na :: Attributes
na = Text -> Attributes
attr Text
"na" -- normal attack
sa :: Attributes
sa = Text -> Attributes
attr Text
"sa" -- soft attack
pa :: Attributes
pa = Text -> Attributes
attr Text
"pa" -- pressed attack
progr :: Attributes
progr = Text -> Attributes
attr Text
"progr" -- progressive vibrato
vib_str :: Attributes
vib_str = Text -> Attributes
attr Text
"vib-str" -- strong vibrato
vib_down :: Attributes
vib_down = Text -> Attributes
attr Text
"vib-down" -- decreasing vibrato

lyric :: Attributes
lyric = Text -> Attributes
attr Text
"lyric"

rs :: Attributes
rs = Text -> Attributes
attr Text
"rs" -- release samples

li :: Attributes
li = Text -> Attributes
attr Text
"li" -- light
med :: Attributes
med = Text -> Attributes
attr Text
"med" -- medium
str :: Attributes
str = Text -> Attributes
attr Text
"str" -- strong

-- ** intervals

min :: Attributes
min = Text -> Attributes
attr Text
"min"
maj :: Attributes
maj = Text -> Attributes
attr Text
"maj"
aug :: Attributes
aug = Text -> Attributes
attr Text
"aug"
chrom :: Attributes
chrom = Text -> Attributes
attr Text
"chrom"
pent :: Attributes
pent = Text -> Attributes
attr Text
"pent"
oct :: Attributes
oct = Text -> Attributes
attr Text
"oct"

-- ** rhythm

upbeat :: Attributes
upbeat = Text -> Attributes
attr Text
"upbeat"
triple :: Attributes
triple = Text -> Attributes
attr Text
"triple"

cluster :: Attributes
cluster = Text -> Attributes
attr Text
"cluster" -- cluster of tones

-- repetitions
dyn4 :: Attributes
dyn4 = Attributes
dyn Attributes -> Attributes -> Attributes
. Int -> Attributes
notes Int
4 Attributes -> Attributes -> Attributes
. Attributes
crescdim
dyn5 :: Attributes
dyn5 = Attributes
dyn Attributes -> Attributes -> Attributes
. Int -> Attributes
notes Int
5 Attributes -> Attributes -> Attributes
. Attributes
crescdim
dyn6 :: Attributes
dyn6 = Attributes
dyn Attributes -> Attributes -> Attributes
. Int -> Attributes
notes Int
6 Attributes -> Attributes -> Attributes
. Attributes
crescdim
dyn9 :: Attributes
dyn9 = Attributes
dyn Attributes -> Attributes -> Attributes
. Int -> Attributes
notes Int
9 Attributes -> Attributes -> Attributes
. Attributes
crescdim
cresc9 :: Attributes
cresc9 = Int -> Attributes
notes Int
9 Attributes -> Attributes -> Attributes
. Attributes
cresc

-- ** a/b variants

dyn :: Attributes
dyn = Text -> Attributes
attr Text
"dyn" Attributes -> Attributes -> Attributes
. Attributes
crescdim
grace :: Attributes
grace = Text -> Attributes
attr Text
"grace"
run :: Attributes
run = Text -> Attributes
attr Text
"run" Attributes -> Attributes -> Attributes
. Attributes
updown
arp :: Attributes
arp = Text -> Attributes
attr Text
"arp" Attributes -> Attributes -> Attributes
. Attributes
updown
arpup :: Attributes
arpup = Text -> Attributes
attr Text
"arp" -- no updown
mord :: Attributes
mord = Text -> Attributes
attr Text
"mord" Attributes -> Attributes -> Attributes
. Attributes
updown -- mordent

updown :: Attributes
updown = Text -> Attributes
attr Text
"updown" -- split into up and down versions, mapped to a/b
crescdim :: Attributes
crescdim = Text -> Attributes
attr Text
"crescdim" -- split into cresc and dim versions, mapped to a/b
highlow :: Attributes
highlow = Text -> Attributes
attr Text
"highlow" -- split into high and low versions