GIS-0.0.7.6: An implementation of David Lewin's Generalized Interval Systems
Copyright(c) Eric Bailey 2021-2025
LicenseMIT
Maintainereric@ericb.me
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Data.PitchClass.Diatonic

Description

Diatonic pc-space and p-space.

Synopsis

Documentation

data PitchClass Source #

The seven diatonic pitch classes.

Constructors

C 
D 
E 
F 
G 
A 
B 

Instances

Instances details
Bounded PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Enum PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Generic PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Associated Types

type Rep PitchClass 
Instance details

Defined in Data.PitchClass.Diatonic

type Rep PitchClass = D1 ('MetaData "PitchClass" "Data.PitchClass.Diatonic" "GIS-0.0.7.6-CaSSpC8zQ1530uQnkUunXS" 'False) ((C1 ('MetaCons "C" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "E" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "F" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "G" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "B" 'PrefixI 'False) (U1 :: Type -> Type))))
Num PitchClass Source #

Modular arithmetic. Only the fromInteger function is supposed to be useful.

Instance details

Defined in Data.PitchClass.Diatonic

Show PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Finitary PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Associated Types

type Cardinality PitchClass 
Instance details

Defined in Data.PitchClass.Diatonic

type Cardinality PitchClass = GCardinality (Rep PitchClass)
Eq PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Ord PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

Act C₇ PitchClass Source #

C₇ acts on PitchClass

Instance details

Defined in Data.PitchClass.Diatonic

Torsor C₇ PitchClass Source #

The C₇-torsor where the action determines the interval (int)

Instance details

Defined in Data.PitchClass.Diatonic

type IntervalOf PitchClass Source #

In diatonic pc-space, the seven pitch classes can be labeled by the elements of the cyclic group of order \(7\), C₇.

Instance details

Defined in Data.PitchClass.Diatonic

type Rep PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

type Rep PitchClass = D1 ('MetaData "PitchClass" "Data.PitchClass.Diatonic" "GIS-0.0.7.6-CaSSpC8zQ1530uQnkUunXS" 'False) ((C1 ('MetaCons "C" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "D" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "E" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "F" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "G" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "A" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "B" 'PrefixI 'False) (U1 :: Type -> Type))))
type Cardinality PitchClass Source # 
Instance details

Defined in Data.PitchClass.Diatonic

type Cardinality PitchClass = GCardinality (Rep PitchClass)
type IntervalOf (Pitch PitchClass) Source #

In diatonic p-space, pitches can be labeled by the elements of the group of integers under addition, \((\mathbb{Z}, +)\).

Instance details

Defined in Data.PitchClass.Diatonic

Diatonic pc-space

type C₇ = Sum (Finite 7) Source #

The cyclic group of order \(7\), denoted \(C_{7}\) or \(\mathbb{Z}_{7}\).

Diatonic p-space

Pattern synonyms are defined for C0 through B10.

pattern B10 :: Pitch PitchClass Source #

B10 = Pitch (B, 10)

pattern A10 :: Pitch PitchClass Source #

A10 = Pitch (A, 10)

pattern G10 :: Pitch PitchClass Source #

G10 = Pitch (G, 10)

pattern F10 :: Pitch PitchClass Source #

F10 = Pitch (F, 10)

pattern E10 :: Pitch PitchClass Source #

E10 = Pitch (E, 10)

pattern D10 :: Pitch PitchClass Source #

D10 = Pitch (D, 10)

pattern C10 :: Pitch PitchClass Source #

C10 = Pitch (C, 10)

pattern B9 :: Pitch PitchClass Source #

B9 = Pitch (B, 9)

pattern A9 :: Pitch PitchClass Source #

A9 = Pitch (A, 9)

pattern G9 :: Pitch PitchClass Source #

G9 = Pitch (G, 9)

pattern F9 :: Pitch PitchClass Source #

F9 = Pitch (F, 9)

pattern E9 :: Pitch PitchClass Source #

E9 = Pitch (E, 9)

pattern D9 :: Pitch PitchClass Source #

D9 = Pitch (D, 9)

pattern C9 :: Pitch PitchClass Source #

C9 = Pitch (C, 9)

pattern B8 :: Pitch PitchClass Source #

B8 = Pitch (B, 8)

pattern A8 :: Pitch PitchClass Source #

A8 = Pitch (A, 8)

pattern G8 :: Pitch PitchClass Source #

G8 = Pitch (G, 8)

pattern F8 :: Pitch PitchClass Source #

F8 = Pitch (F, 8)

pattern E8 :: Pitch PitchClass Source #

E8 = Pitch (E, 8)

pattern D8 :: Pitch PitchClass Source #

D8 = Pitch (D, 8)

pattern C8 :: Pitch PitchClass Source #

C8 = Pitch (C, 8)

pattern B7 :: Pitch PitchClass Source #

B7 = Pitch (B, 7)

pattern A7 :: Pitch PitchClass Source #

A7 = Pitch (A, 7)

pattern G7 :: Pitch PitchClass Source #

G7 = Pitch (G, 7)

pattern F7 :: Pitch PitchClass Source #

F7 = Pitch (F, 7)

pattern E7 :: Pitch PitchClass Source #

E7 = Pitch (E, 7)

pattern D7 :: Pitch PitchClass Source #

D7 = Pitch (D, 7)

pattern C7 :: Pitch PitchClass Source #

C7 = Pitch (C, 7)

pattern B6 :: Pitch PitchClass Source #

B6 = Pitch (B, 6)

pattern A6 :: Pitch PitchClass Source #

A6 = Pitch (A, 6)

pattern G6 :: Pitch PitchClass Source #

G6 = Pitch (G, 6)

pattern F6 :: Pitch PitchClass Source #

F6 = Pitch (F, 6)

pattern E6 :: Pitch PitchClass Source #

E6 = Pitch (E, 6)

pattern D6 :: Pitch PitchClass Source #

D6 = Pitch (D, 6)

pattern C6 :: Pitch PitchClass Source #

C6 = Pitch (C, 6)

pattern B5 :: Pitch PitchClass Source #

B5 = Pitch (B, 5)

pattern A5 :: Pitch PitchClass Source #

A5 = Pitch (A, 5)

pattern G5 :: Pitch PitchClass Source #

G5 = Pitch (G, 5)

pattern F5 :: Pitch PitchClass Source #

F5 = Pitch (F, 5)

pattern E5 :: Pitch PitchClass Source #

E5 = Pitch (E, 5)

pattern D5 :: Pitch PitchClass Source #

D5 = Pitch (D, 5)

pattern C5 :: Pitch PitchClass Source #

C5 = Pitch (C, 5)

pattern B4 :: Pitch PitchClass Source #

B4 = Pitch (B, 4)

pattern A4 :: Pitch PitchClass Source #

A4 = Pitch (A, 4)

pattern G4 :: Pitch PitchClass Source #

G4 = Pitch (G, 4)

pattern F4 :: Pitch PitchClass Source #

F4 = Pitch (F, 4)

pattern E4 :: Pitch PitchClass Source #

E4 = Pitch (E, 4)

pattern D4 :: Pitch PitchClass Source #

D4 = Pitch (D, 4)

pattern C4 :: Pitch PitchClass Source #

C4 = Pitch (C, 4)

pattern B3 :: Pitch PitchClass Source #

B3 = Pitch (B, 3)

pattern A3 :: Pitch PitchClass Source #

A3 = Pitch (A, 3)

pattern G3 :: Pitch PitchClass Source #

G3 = Pitch (G, 3)

pattern F3 :: Pitch PitchClass Source #

F3 = Pitch (F, 3)

pattern E3 :: Pitch PitchClass Source #

E3 = Pitch (E, 3)

pattern D3 :: Pitch PitchClass Source #

D3 = Pitch (D, 3)

pattern C3 :: Pitch PitchClass Source #

C3 = Pitch (C, 3)

pattern B2 :: Pitch PitchClass Source #

B2 = Pitch (B, 2)

pattern A2 :: Pitch PitchClass Source #

A2 = Pitch (A, 2)

pattern G2 :: Pitch PitchClass Source #

G2 = Pitch (G, 2)

pattern F2 :: Pitch PitchClass Source #

F2 = Pitch (F, 2)

pattern E2 :: Pitch PitchClass Source #

E2 = Pitch (E, 2)

pattern D2 :: Pitch PitchClass Source #

D2 = Pitch (D, 2)

pattern C2 :: Pitch PitchClass Source #

C2 = Pitch (C, 2)

pattern B1 :: Pitch PitchClass Source #

B1 = Pitch (B, 1)

pattern A1 :: Pitch PitchClass Source #

A1 = Pitch (A, 1)

pattern G1 :: Pitch PitchClass Source #

G1 = Pitch (G, 1)

pattern F1 :: Pitch PitchClass Source #

F1 = Pitch (F, 1)

pattern E1 :: Pitch PitchClass Source #

E1 = Pitch (E, 1)

pattern D1 :: Pitch PitchClass Source #

D1 = Pitch (D, 1)

pattern C1 :: Pitch PitchClass Source #

C1 = Pitch (C, 1)

pattern B0 :: Pitch PitchClass Source #

B0 = Pitch (B, 0)

pattern A0 :: Pitch PitchClass Source #

A0 = Pitch (A, 0)

pattern G0 :: Pitch PitchClass Source #

G0 = Pitch (G, 0)

pattern F0 :: Pitch PitchClass Source #

F0 = Pitch (F, 0)

pattern E0 :: Pitch PitchClass Source #

E0 = Pitch (E, 0)

pattern D0 :: Pitch PitchClass Source #

D0 = Pitch (D, 0)

pattern C0 :: Pitch PitchClass Source #

C0 = Pitch (C, 0)