Copyright | (c) OleksandrZhabenko 2020-2021 |
---|---|

License | MIT |

Maintainer | olexandr543@yahoo.com |

Stability | Experimental |

Safe Haskell | None |

Language | Haskell2010 |

Extensions | Cpp |

Helps to create experimental music. This module contains different representations for the data. Is rewritten from the dobutokO4 package.

## Synopsis

- data SoundI
- data SoundFN
- data SoundT
- data Timity = Time Float Float Float
- data Timity1 a = Time1 Float Float a
- data IntervalTim
- = Empty
- | I Float Float
- | UniversalI

- data IntervalTimI
- = Empty2
- | II Float Float
- | UniversalII

- data IntervalG a b = IG a b
- data IntervalMG a
- = IMG a a
- | UniversalG

# Sound repesentations

An `Int`

parameter is an index of the `SoundI`

sound file in the sorted in the ascending order `Vector`

of them (the corresponding files or their
names) representing the whole composition.

An `FilePath`

parameter is a name of the sound file in the current directory with the filetype (supported by SoX) being given by `String`

representing
the whole composition.

The first `Float`

parameter is a time moment (starting from 0) of the playing the sound being represented by `OvertonesO`

, the second one is its
duration. The third one is its maximum amplitude by an absolute value. The fourth one is the minimum duration that can provide a needed human
feeling of perception (some impression) for the sound. The further one(s) is(are) some adjustment(s) parameter(s).

# Sound time intervals representations

The first `Float`

parameter is a time moment (starting from 0) of the playing the sound, the second one is its duration in seconds (with a negative
values corresponding to the pause duration --- the silent "sound"), the third one is the minimum duration that can provide a needed human
feeling of perception (some impression) for the sound.

The first `Float`

parameter is a time moment (starting from 0) of the playing the sound, the second one is its duration in seconds (with a negative
values corresponding to the pause duration --- the silent "sound"), the third one is a parameter to specify more complex behaviour for the sound.

#### Instances

Functor Timity1 Source # | |

Eq a => Eq (Timity1 a) Source # | |

Ord a => Ord (Timity1 a) Source # | |

Defined in Composition.Sound.Presentation | |

Show a => Show (Timity1 a) Source # | |

Semigroup a => Semigroup (Timity1 a) Source # | Since base-4.9.0.0. Idempotent semigroup (band) (x <> x == x) if |

data IntervalTim Source #

`Float`

interval representation with no order of the arguments preserved.

#### Instances

data IntervalTimI Source #

Another `Float`

interval representation with no order of the arguments preserved. Since base-4.9.0.0 has different instance of `Semigroup`

than `IntervalTim`

.

#### Instances

Generalized interval representation.

IG a b |

#### Instances

Bifunctor IntervalG Source # | Since base-4.8.0.0. |

Functor (IntervalG a) Source # | |

(Eq a, Eq b) => Eq (IntervalG a b) Source # | |

(Ord a, Ord b) => Ord (IntervalG a b) Source # | |

Defined in Composition.Sound.Presentation compare :: IntervalG a b -> IntervalG a b -> Ordering # (<) :: IntervalG a b -> IntervalG a b -> Bool # (<=) :: IntervalG a b -> IntervalG a b -> Bool # (>) :: IntervalG a b -> IntervalG a b -> Bool # (>=) :: IntervalG a b -> IntervalG a b -> Bool # | |

(Show a, Show b) => Show (IntervalG a b) Source # | |

Semigroup (IntervalG a b) Source # | Since base-4.9.0.0. Idempotent semigroup (x <> x == x) and rectangular band (x <> y <> z == x <> z) For more information, please, refer to: https://en.wikipedia.org/wiki/Band_(mathematics) |

data IntervalMG a Source #

Generalized interval representation which is a Monoid instance.

IMG a a | |

UniversalG |