| Copyright | (c) Dima Szamozvancev |
|---|---|
| License | MIT |
| Maintainer | ds709@cam.ac.uk |
| Stability | experimental |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Mezzo.Model.Harmony.Motion
Description
Classes modelling consonance, dissonance and harmonic motion.
- class PerfConsonantInterval i
- class ImperfConsonantInterval i
- class DissonantInterval i
- class DirectMotion i1 i2
- class ContraryMotion i1 i2
- class ObliqueMotion i1 i2
Consonant and dissonant intervals
class PerfConsonantInterval i Source #
Classifies perfect consonant intervals:
- Perfect unisons
- Perfect fifths
- Perfect octaves
class ImperfConsonantInterval i Source #
Classifies imperfect consonant intervals:
- Major and minor thirds
- Major and minor sixths
class DissonantInterval i Source #
Classifies dissonant intervals:
- Perfect fourth (by common practice convention)
- Augmented and diminished intervals
- Second and seventh intervals
Harmonic motion
class DirectMotion i1 i2 Source #
Ensures that direct motion is permitted between the two intervals.
Instances
| DirectMotion i1 i2 Source # | |
| TypeError Constraint (Text "Direct motion into a perfect octave is forbidden.") => DirectMotion i1 (Interval Perf Octave) Source # | |
| TypeError Constraint (Text "Direct motion into a perfect fifth is forbidden.") => DirectMotion i1 (Interval Perf Fifth) Source # | |
| TypeError Constraint (Text "Direct motion into a perfect unison is forbidden.") => DirectMotion i1 (Interval Perf Unison) Source # | |
class ContraryMotion i1 i2 Source #
Ensures that contrary motion is permitted between the two intervals.
Instances
| ContraryMotion i1 i2 Source # | |
class ObliqueMotion i1 i2 Source #
Ensures that oblique motion is permitted between the two intervals.
Instances
| ObliqueMotion i1 i2 Source # | |