Copyright | (c) Dima Szamozvancev |
---|---|
License | MIT |
Maintainer | ds709@cam.ac.uk |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
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.
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.
ContraryMotion i1 i2 Source # | |
class ObliqueMotion i1 i2 Source #
Ensures that oblique motion is permitted between the two intervals.
ObliqueMotion i1 i2 Source # | |