Copyright | (c) Henning Thielemann 2006 |
---|---|
License | GPL |
Maintainer | synthesizer@henning-thielemann.de |
Stability | provisional |
Portability | requires multi-parameter type classes |
Safe Haskell | None |
Language | Haskell2010 |
Avoid importing this module. Better use functions from Synthesizer.Plain.Oscillator and Synthesizer.Basic.Wave
Input data is interpreted as samples of data on a cylinder in the following form:
|* | | * | | * | | * | | * | | * | | * | | *| | * | | * | | * |
----------- * * * * * * * * * * * -----------
We have to interpolate in the parallelograms.
- type Cell y = T (T y)
- interpolateCell :: T a y -> T b y -> (a, b) -> Cell y -> y
- data Prototype t y
- makePrototype :: C t => Margin -> Margin -> Int -> t -> T y -> Prototype t y
- sampledToneCell :: C t => Prototype t y -> t -> T t -> ((t, t), Cell y)
- oscillatorCells :: C t => Margin -> Margin -> Int -> t -> T y -> (t, T t) -> (T t, T t) -> T ((t, t), Cell y)
- seekCell :: C t => Int -> t -> ((t, T t), Cell y) -> ((t, t), Cell y)
- oscillatorSuffixes :: C t => Margin -> Margin -> Int -> t -> T y -> (t, T t) -> (T t, T t) -> T ((t, T t), Cell y)
- freqsToPhases :: C a => T a -> T a -> T (T a)
- dropFrac :: C i => i -> T a -> (Int, i, T a)
- dropRem :: Int -> T a -> (Int, T a)
- propDropFrac :: (C i, Eq a) => i -> T a -> Bool
- propDropRem :: Eq a => Int -> T a -> Bool
- oscillatorCoords :: C t => Int -> t -> (t, T t) -> (T t, T t) -> T (Coords t)
- integrateFractional :: C t => t -> (t, T t) -> (T t, T t) -> T (Skip t)
- limitRelativeShapes :: (C t, Ord t) => Margin -> Margin -> Int -> T y -> (t, T t) -> (t, T t)
- limitMinRelativeValues :: (C a, Ord a) => a -> a -> T a -> (a, T a)
- limitMaxRelativeValues :: (C a, Ord a) => a -> a -> T a -> (a, T a)
- limitMaxRelativeValuesNonNeg :: (C a, Ord a) => a -> a -> T a -> (a, T a)
Documentation
oscillatorCells :: C t => Margin -> Margin -> Int -> t -> T y -> (t, T t) -> (T t, T t) -> T ((t, t), Cell y) Source #
oscillatorSuffixes :: C t => Margin -> Margin -> Int -> t -> T y -> (t, T t) -> (T t, T t) -> T ((t, T t), Cell y) Source #
freqsToPhases :: C a => T a -> T a -> T (T a) Source #
Convert a list of phase steps into a list of momentum phases phase is a number in the interval [0,1) freq contains the phase steps