mezzo-0.1.0.0: Typesafe music composition

Copyright(c) Dima Szamozvancev
LicenseMIT
Maintainerds709@cam.ac.uk
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Mezzo.Model.Harmony.Motion

Contents

Description

Classes modelling consonance, dissonance and harmonic motion.

Synopsis

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

class ObliqueMotion i1 i2 Source #

Ensures that oblique motion is permitted between the two intervals.

Instances