Safe Haskell | None |
---|
- pingRelease :: IO (Real -> Real -> ChunkSize -> Instrument Real Vector)
- pingStereoRelease :: IO (Real -> Real -> ChunkSize -> Instrument Real (T Vector))
- pingStereoReleaseFM :: IO (Real -> Real -> T Real -> T Real -> Real -> Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- squareStereoReleaseFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- bellStereoFM :: IO (Real -> Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- bellNoiseStereoFM :: IO (Real -> Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- tine :: IO (Real -> Real -> ChunkSize -> Instrument Real Vector)
- tineStereo :: IO (Real -> Real -> ChunkSize -> Instrument Real (T Vector))
- softString :: IO (Instrument Real (T Vector))
- softStringFM :: IO (T (T Real) -> Instrument Real (T Vector))
- tineStereoFM :: IO (Real -> Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- tineControlledFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- fenderFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- tineModulatorBankFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- tineBankFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- resonantFMSynth :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- softStringDetuneFM :: IO (Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- softStringShapeFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- cosineStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- arcSineStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- arcTriangleStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- arcSquareStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- arcSawStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- fmStringStereoFM :: IO (Real -> T Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- wind :: IO (Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- windPhaser :: IO (Real -> T Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))
- filterSawStereoFM :: IO (Real -> Real -> T Real -> Real -> Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- brass :: IO (Real -> Real -> Real -> Real -> Real -> Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))
- sampledSound :: IO (T -> T (T Real) -> Instrument Real (T Vector))
- stereoNoise :: SigP p (T VectorValue)
- frequencyFromBendModulation :: Param p Real -> Param p (T (T Real)) -> SigP p VectorValue
- modulation :: (p -> (T (T Real), Real)) -> Param p (T (T Real))
- piecewiseConstantVector :: T p (T Real) -> T p VectorValue
- pingReleaseEnvelope :: IO (Real -> Real -> ChunkSize -> SampleRate Real -> Real -> LazyTime -> T Vector)
- adsr :: IO (Real -> Real -> Real -> Real -> Real -> ChunkSize -> SampleRate Real -> Real -> LazyTime -> T Vector)
Documentation
pingRelease :: IO (Real -> Real -> ChunkSize -> Instrument Real Vector)Source
pingStereoRelease :: IO (Real -> Real -> ChunkSize -> Instrument Real (T Vector))Source
pingStereoReleaseFM :: IO (Real -> Real -> T Real -> T Real -> Real -> Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
squareStereoReleaseFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
Square like wave constructed as difference of two phase shifted sawtooth like oscillations.
bellStereoFM :: IO (Real -> Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
bellNoiseStereoFM :: IO (Real -> Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
tineStereo :: IO (Real -> Real -> ChunkSize -> Instrument Real (T Vector))Source
softString :: IO (Instrument Real (T Vector))Source
softStringFM :: IO (T (T Real) -> Instrument Real (T Vector))Source
tineControlledFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
fenderFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
tineModulatorBankFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
tineBankFM :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
resonantFMSynth :: IO (Real -> Real -> T Real -> T Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
softStringShapeFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
cosineStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
arcSineStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
arcTriangleStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
arcSquareStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
arcSawStringStereoFM :: IO (Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
fmStringStereoFM :: IO (Real -> T Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
windPhaser :: IO (Real -> T Real -> T Real -> T Real -> T (T Real) -> Instrument Real (T Vector))Source
filterSawStereoFM :: IO (Real -> Real -> T Real -> Real -> Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
brass :: IO (Real -> Real -> Real -> Real -> Real -> Real -> T Real -> T Real -> ChunkSize -> T (T Real) -> Instrument Real (T Vector))Source
helper functions
stereoNoise :: SigP p (T VectorValue)Source
frequencyFromBendModulation :: Param p Real -> Param p (T (T Real)) -> SigP p VectorValueSource
piecewiseConstantVector :: T p (T Real) -> T p VectorValueSource
for testing
pingReleaseEnvelope :: IO (Real -> Real -> ChunkSize -> SampleRate Real -> Real -> LazyTime -> T Vector)Source
adsr :: IO (Real -> Real -> Real -> Real -> Real -> ChunkSize -> SampleRate Real -> Real -> LazyTime -> T Vector)Source
The ADSR curve is composed from three parts: Attack, Decay(+Sustain), Release. Attack starts when the key is pressed and lasts attackTime seconds where it reaches height attackPeak*amplitudeOfVelocity. It should be attackPeak>1 because in the following phase we want to approach 1 from above. Say the curve would approach the limit value L if it would continue after the end of the attack phase, the slope is determined by the halfLife with respect to this upper bound. That is, attackHalfLife is the time in seconds where the attack curve reaches or would reach L/2. After Attack the Decay part starts at the same level and decays to amplitudeOfVelocity. The slope is again a halfLife, that is, decayHalfLife is the time where the curve drops from attackPeak*amplitudeOfVelocity to (attackPeak+1)/2*amplitudeOfVelocity. This phase lasts as long as the key is pressed. If the key is released the curve decays with half life releaseHalfLife.