|
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 |