| Copyright | (c) Eric Bailey 2021-2025 |
|---|---|
| License | MIT |
| Maintainer | eric@ericb.me |
| Stability | experimental |
| Portability | POSIX |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.GIS
Description
David Lewin's Generalized Interval Systems (GIS).
Synopsis
- class Group (Interval space) => GIS space where
- type family IntervalOf space
- type PitchClassSpace space = (Bounded space, Finitary space, Finitary (IntervalOf space), Cardinality space ~ Cardinality (IntervalOf space), Group (IntervalOf space), Torsor (IntervalOf space) space)
- type PitchSpace space = (Bounded space, Finitary space, IntervalOf (Pitch space) ~ Sum Int)
Documentation
class Group (Interval space) => GIS space where Source #
A Generalized Interval System (GIS) is a triple (S, (G, ·),
whereint)
- \(S\) is a musical space (
space), - \(G\) is the group of intervals (
) for the GIS, andIntervalspace intis a function \(S \times S \to G\) (space -> space ->)Intervalspace
such that
- \(\forall r,s,t \in S, int(r,s) \cdot int(s,t) = int(r,t)\), and
- \(\forall s \in S, g \in G, \exists! t \in S, int(s,t) = g\).
Methods
A referential element in the musical space.
int :: space -> space -> Interval space Source #
The interval between two musical elements.
label :: space -> Interval space Source #
Uniquely map a musical element to an element of the group of intervals.
Instances
| PitchClassSpace space => GIS space Source # | For a pitch class space \(S\) ( |
| PitchSpace space => GIS (Pitch space) Source # | For a pitch space \(S\) ( |
type family IntervalOf space Source #
The type of intervals associated with a given musical space in a
Generalized Interval System (GIS).
Instances
| type IntervalOf PitchClass Source # | In chromatic pc-space, the twelve pitch classes can be
labeled by the elements of the cyclic group of order \(12\), |
Defined in Data.PitchClass.Chromatic | |
| 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\), |
Defined in Data.PitchClass.Diatonic | |
| type IntervalOf (Pitch PitchClass) Source # | In chromatic p-space, pitches can be labeled by the elements of the group of integers under addition, \((\mathbb{Z}, +)\). |
Defined in Data.PitchClass.Chromatic | |
| 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}, +)\). |
Defined in Data.PitchClass.Diatonic | |
type PitchClassSpace space = (Bounded space, Finitary space, Finitary (IntervalOf space), Cardinality space ~ Cardinality (IntervalOf space), Group (IntervalOf space), Torsor (IntervalOf space) space) Source #
A bounded pitch class space with the same Cardinality as a .Group
(IntervalOf space)
type PitchSpace space = (Bounded space, Finitary space, IntervalOf (Pitch space) ~ Sum Int) Source #
A bounded pitch class space can be used to create a pitch space where
intervals are representable in the group of integers under addition.