packages feed

uku-0.0.1.0: src/Uku/GeneralTypes.hs

module Uku.GeneralTypes (
  MidiNote (..),
  Interval (..),
)
where

import Protolude (Eq, Ord, Show)


-- | A type representing a MIDI note.
data MidiNote
  = M00
  | M01
  | M02
  | M03
  | M04
  | M05
  | M06
  | M07
  | M08
  | M09
  | M0X
  | M0E
  | M10
  | M11
  | M12
  | M13
  | M14
  | M15
  | M16
  | M17
  | M18
  | M19
  | M1X
  | M1E
  | M20
  | M21
  | M22
  | M23
  | M24
  | M25
  | M26
  | M27
  | M28
  | M29
  | M2X
  | M2E
  | M30
  | M31
  | M32
  | M33
  | M34
  | M35
  | M36
  | M37
  | M38
  | M39
  | M3X
  | M3E
  | M40
  | M41
  | M42
  | M43
  | M44
  | M45
  | M46
  | M47
  | M48
  | M49
  | M4X
  | M4E
  | M50
  | M51
  | M52
  | M53
  | M54
  | M55
  | M56
  | M57
  | M58
  | M59
  | M5X
  | M5E
  | M60
  | M61
  | M62
  | M63
  | M64
  | M65
  | M66
  | M67
  | M68
  | M69
  | M6X
  | M6E
  | M70
  | M71
  | M72
  | M73
  | M74
  | M75
  | M76
  | M77
  | M78
  | M79
  | M7X
  | M7E
  | M80
  | M81
  | M82
  | M83
  | M84
  | M85
  | M86
  | M87
  | M88
  | M89
  | M8X
  | M8E
  | M90
  | M91
  | M92
  | M93
  | M94
  | M95
  | M96
  | M97
  | M98
  | M99
  | M9X
  | M9E
  | MX0
  | MX1
  | MX2
  | MX3
  | MX4
  | MX5
  | MX6
  | MX7
  deriving (Eq, Ord, Show)


data Interval
  = I00
  | I01
  | I02
  | I03
  | I04
  | I05
  | I06
  | I07
  | I08
  | I09
  | I0X
  | I0E
  | I10
  | I11
  | I12
  | I13
  | I14
  | I15
  | I16
  | I17
  | I18
  | I19
  | I1X
  | I1E
  | I20
  | I21
  | I22
  | I23
  | I24
  | I25
  | I26
  | I27
  | I28
  | I29
  | I2X
  | I2E
  | I30
  | I31
  | I32
  | I33
  | I34
  | I35
  | I36
  | I37
  | I38
  | I39
  | I3X
  | I3E
  | I40
  | I41
  | I42
  | I43
  | I44
  | I45
  | I46
  | I47
  | I48
  | I49
  | I4X
  | I4E
  | I50
  | I51
  | I52
  | I53
  | I54
  | I55
  | I56
  | I57
  | I58
  | I59
  | I5X
  | I5E
  | I60
  | I61
  | I62
  | I63
  | I64
  | I65
  | I66
  | I67
  | I68
  | I69
  | I6X
  | I6E
  | I70
  | I71
  | I72
  | I73
  | I74
  | I75
  | I76
  | I77
  | I78
  | I79
  | I7X
  | I7E
  | I80
  | I81
  | I82
  | I83
  | I84
  | I85
  | I86
  | I87
  | I88
  | I89
  | I8X
  | I8E
  | I90
  | I91
  | I92
  | I93
  | I94
  | I95
  | I96
  | I97
  | I98
  | I99
  | I9X
  | I9E
  | IX0
  | IX1
  | IX2
  | IX3
  | IX4
  | IX5
  | IX6
  | IX7
  deriving (Eq, Ord, Show)