Copyright | (c) Hans Hoglund 2012-2014 |
---|---|
License | BSD-style |
Maintainer | hans@hanshoglund.se |
Stability | experimental |
Portability | non-portable (TF,GNTD) |
Safe Haskell | None |
Language | Haskell2010 |
Provides functions for manipulating articulation.
- type family Articulation s :: *
- type family SetArticulation b s :: *
- type family Accentuation a :: *
- type family Separation a :: *
- class (Fractional (Accentuation a), Fractional (Separation a), AffineSpace (Accentuation a), AffineSpace (Separation a)) => Articulated a where
- accentuation :: Lens' a (Accentuation a)
- separation :: Lens' a (Separation a)
- class (Transformable (Articulation s), Transformable (Articulation t), ArticulationLensLaws s t) => HasArticulations s t where
- articulations :: Traversal s t (Articulation s) (Articulation t)
- class HasArticulations s t => HasArticulation s t where
- articulation :: Lens s t (Articulation s) (Articulation t)
- type HasArticulations' a = HasArticulations a a
- type HasArticulation' a = HasArticulation a a
- articulation' :: (HasArticulation s t, s ~ t) => Lens' s (Articulation s)
- articulations' :: (HasArticulations s t, s ~ t) => Traversal' s (Articulation s)
- accent :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s
- marcato :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s
- accentLast :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s
- marcatoLast :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s
- accentAll :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- marcatoAll :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- staccatissimo :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- staccato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- separated :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- portato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- legato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- legatissimo :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- tenuto :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- spiccato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s
- newtype ArticulationT n a = ArticulationT {
- getArticulationT :: (n, a)
- varticulation :: (HasArticulation a (SetArticulation a1 a), HasArticulation a a, Functor f, (~) * (Articulation (SetArticulation a1 a)) a1) => (Voice (Articulation a) -> f (Voice a1)) -> Voice a -> f (Voice (SetArticulation a1 a))
- addArtCon :: (HasPhrases s t a b, HasArticulation' a, HasArticulation a b, Articulation a ~ d, Articulation b ~ Ctxt d) => s -> t
Articulation type functions
type family Articulation s :: * Source
Articulations type.
type family SetArticulation b s :: * Source
Articulation type.
type family Accentuation a :: * Source
type Accentuation () = () | |
type Accentuation (a, b) = a |
type family Separation a :: * Source
type Separation () = () | |
type Separation (a, b) = b |
class (Fractional (Accentuation a), Fractional (Separation a), AffineSpace (Accentuation a), AffineSpace (Separation a)) => Articulated a where Source
Class of types that can be transposed, inverted and so on.
accentuation :: Lens' a (Accentuation a) Source
separation :: Lens' a (Separation a) Source
(AffineSpace a, AffineSpace b, Fractional a, Fractional b) => Articulated (a, b) |
Accessing articulation
class (Transformable (Articulation s), Transformable (Articulation t), ArticulationLensLaws s t) => HasArticulations s t where Source
Class of types that provide a articulation traversal.
articulations :: Traversal s t (Articulation s) (Articulation t) Source
Articulation type.
class HasArticulations s t => HasArticulation s t where Source
Class of types that provide a single articulation.
articulation :: Lens s t (Articulation s) (Articulation t) Source
Articulation type.
type HasArticulations' a = HasArticulations a a Source
type HasArticulation' a = HasArticulation a a Source
articulation' :: (HasArticulation s t, s ~ t) => Lens' s (Articulation s) Source
Articulation type.
articulations' :: (HasArticulations s t, s ~ t) => Traversal' s (Articulation s) Source
Articulation type.
Manipulating articulation
Accents
accent :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s Source
marcato :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s Source
accentLast :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s Source
marcatoLast :: (HasPhrases' s b, HasArticulations' b, Articulation b ~ a, Articulated a) => s -> s Source
accentAll :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
marcatoAll :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
Phrasing and separation
staccatissimo :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
staccato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
separated :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
portato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
legato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
legatissimo :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
tenuto :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
spiccato :: (HasArticulations' s, Articulation s ~ a, Articulated a) => s -> s Source
Articulation transformer
newtype ArticulationT n a Source
ArticulationT | |
|
Context
varticulation :: (HasArticulation a (SetArticulation a1 a), HasArticulation a a, Functor f, (~) * (Articulation (SetArticulation a1 a)) a1) => (Voice (Articulation a) -> f (Voice a1)) -> Voice a -> f (Voice (SetArticulation a1 a)) Source
addArtCon :: (HasPhrases s t a b, HasArticulation' a, HasArticulation a b, Articulation a ~ d, Articulation b ~ Ctxt d) => s -> t Source