|
| Synthesizer.Plain.ToneModulation | | Portability | requires multi-parameter type classes | | Stability | provisional | | Maintainer | synthesizer@henning-thielemann.de |
|
|
|
|
|
| Description |
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.
|
|
| Synopsis |
|
| type Cell y = T (T y) | | | interpolateCell :: T a y -> T b y -> (a, b) -> Cell y -> y | | | data Prototype t y = Prototype {} | | | 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) | | | dropFrac :: C i => i -> T a -> (Int, i, T a) | | | dropFrac' :: C i => i -> T a -> (Int, i, T a) | | | propDropFrac :: (C i, Eq a) => i -> T a -> Bool | | | dropRem :: Int -> T a -> (Int, T a) | | | dropRem' :: Int -> T a -> (Int, T a) | | | 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) | | | freqsToPhases :: C a => T a -> T a -> T (T a) | | | 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) | | | safeSub :: (C a, Ord a) => a -> a -> (Bool, a) |
|
|
|
| general helpers
|
|
|
|
| interpolateCell :: T a y -> T b y -> (a, b) -> Cell y -> y | Source |
|
|
| array based shape variable wave
|
|
|
| Constructors | | Prototype | | | protoMarginLeap :: Margin | | | protoMarginStep :: Margin | | | protoIpOffset :: Int | | | protoPeriod :: t | | | protoPeriodInt :: Int | | | protoShapeLimits :: (t, t) | | | protoArray :: Array Int y | |
|
|
|
|
|
|
|
|
| lazy oscillator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| integrateFractional :: C t => t -> (t, T t) -> (T t, T t) -> T (Skip t) | 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
|
|
|
|
| limitMinRelativeValues :: (C a, Ord a) => a -> a -> T a -> (a, T a) | Source |
|
|
| limitMaxRelativeValues :: (C a, Ord a) => a -> a -> T a -> (a, T a) | Source |
|
|
| limitMaxRelativeValuesNonNeg :: (C a, Ord a) => a -> a -> T a -> (a, T a) | Source |
|
| Avoids negative numbers and thus can be used with Chunky numbers.
|
|
|
|
| Produced by Haddock version 2.4.2 |