Safe Haskell | None |
---|---|
Language | Haskell98 |
This module contains some instruments with Causal arrow interface. The interface is a bit low-level since you have to write the transformations of the Haskell-side separately from the computations on the LLVM side. A nicer integration is used in Synthesizer.LLVM.Server.CausalPacked.InstrumentPlug. However, we preserve this module in order to show how things work internally.
Synopsis
- ping :: IO (Instrument Real Chunk)
- pingRelease :: IO (Real -> Real -> Instrument Real Chunk)
- helixSound :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk (T (Control Real) DetuneBendModControl)) StereoChunk)
- pingStereoReleaseFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Time)) (T (T (Control Real) (Control Time)) DetuneBendModControl))) StereoChunk)
- filterSawStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Frequency) (Control Time)) DetuneBendModControl)) StereoChunk)
- tineStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Real)) DetuneBendModControl)) StereoChunk)
- bellNoiseStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Real)) DetuneBendModControl)) StereoChunk)
- wind :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl DetuneBendModControl) StereoChunk)
- windPhaser :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (Control Real) (T (Control Frequency) DetuneBendModControl))) StereoChunk)
- softStringShapeFM :: IO StringInstrument
- cosineStringStereoFM :: IO StringInstrument
- arcSawStringStereoFM :: IO StringInstrument
- arcSineStringStereoFM :: IO StringInstrument
- arcSquareStringStereoFM :: IO StringInstrument
- arcTriangleStringStereoFM :: IO StringInstrument
- fmStringStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Real)) DetuneBendModControl)) StereoChunk)
- sampledSound :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk DetuneBendModControl) StereoChunk)
- sampledSoundMono :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk BendModControl) Chunk)
- type Control = T ShortStrictTime
- type DetuneBendModControl = T (Control Real) (Control (T Real))
- type WithEnvelopeControl remainder = T GateChunk (T (T (Control Time) (Control Time)) remainder)
- type StereoChunk = Vector (T Vector)
- type Frequency = Frequency Real
- type Time = Time Real
- pingControlledEnvelope :: Maybe Real -> IO (SampleRate Real -> Real -> T EnvelopeControl Chunk)
- stringControlledEnvelope :: IO (SampleRate Real -> Real -> T EnvelopeControl Chunk)
- reorderEnvelopeControl :: (Arrow arrow, Read remainder) => arrow (WithEnvelopeControl remainder) (T EnvelopeControl remainder)
- frequencyControl :: Functor f => SampleRate Real -> f Frequency -> f Real
- zipEnvelope :: (Arrow arrow, Transform a, Transform b) => arrow EnvelopeControl a -> arrow (WithEnvelopeControl b) (T a b)
Documentation
helixSound :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk (T (Control Real) DetuneBendModControl)) StereoChunk) Source #
pingStereoReleaseFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Time)) (T (T (Control Real) (Control Time)) DetuneBendModControl))) StereoChunk) Source #
filterSawStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Frequency) (Control Time)) DetuneBendModControl)) StereoChunk) Source #
tineStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Real)) DetuneBendModControl)) StereoChunk) Source #
bellNoiseStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Real)) DetuneBendModControl)) StereoChunk) Source #
wind :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl DetuneBendModControl) StereoChunk) Source #
windPhaser :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (Control Real) (T (Control Frequency) DetuneBendModControl))) StereoChunk) Source #
softStringShapeFM :: IO StringInstrument Source #
cosineStringStereoFM :: IO StringInstrument Source #
arcSawStringStereoFM :: IO StringInstrument Source #
arcSineStringStereoFM :: IO StringInstrument Source #
arcSquareStringStereoFM :: IO StringInstrument Source #
arcTriangleStringStereoFM :: IO StringInstrument Source #
fmStringStereoFM :: IO (SampleRate Real -> Real -> Real -> T (WithEnvelopeControl (T (T (Control Real) (Control Real)) DetuneBendModControl)) StereoChunk) Source #
sampledSound :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk DetuneBendModControl) StereoChunk) Source #
sampledSoundMono :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk BendModControl) Chunk) Source #
mainly for testing purposes
type Control = T ShortStrictTime Source #
type WithEnvelopeControl remainder = T GateChunk (T (T (Control Time) (Control Time)) remainder) Source #
pingControlledEnvelope :: Maybe Real -> IO (SampleRate Real -> Real -> T EnvelopeControl Chunk) Source #
stringControlledEnvelope :: IO (SampleRate Real -> Real -> T EnvelopeControl Chunk) Source #
reorderEnvelopeControl :: (Arrow arrow, Read remainder) => arrow (WithEnvelopeControl remainder) (T EnvelopeControl remainder) Source #
frequencyControl :: Functor f => SampleRate Real -> f Frequency -> f Real Source #
zipEnvelope :: (Arrow arrow, Transform a, Transform b) => arrow EnvelopeControl a -> arrow (WithEnvelopeControl b) (T a b) Source #