mezzo-0.3.1.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 e i1 i2 Source #

Ensures that direct motion is permitted between the two intervals.

Instances

DirectMotion e i1 i2 Source # 
MotionError Constraint "Direct motion into a perfect octave is forbidden: " e => DirectMotion e i1 (Interval Perf Octave) Source # 
MotionError Constraint "Direct motion into a perfect fifth is forbidden: " e => DirectMotion e i1 (Interval Perf Fifth) Source # 
MotionError Constraint "Direct motion into a perfect unison is forbidden: " e => DirectMotion e i1 (Interval Perf Unison) Source # 
MotionError Constraint "Parallel octaves are forbidden: " e => DirectMotion e (Interval Perf Octave) (Interval Perf Octave) Source # 
MotionError Constraint "Parallel fifths are forbidden: " e => DirectMotion e (Interval Perf Fifth) (Interval Perf Fifth) Source # 
MotionError Constraint "Parallel unisons are forbidden: " e => DirectMotion e (Interval Perf Unison) (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