synthesizer-llvm-1.1.0.1: Efficient signal processing using runtime compilation

Safe HaskellNone
LanguageHaskell98

Synthesizer.LLVM.Server.CausalPacked.Instrument

Description

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

Documentation

ping :: IO (Instrument Real Chunk) Source #

pingRelease :: IO (Real -> Real -> Instrument Real Chunk) 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 #

sampledSoundMono :: IO (T -> SampleRate Real -> Real -> Real -> T (T GateChunk BendModControl) Chunk) Source #

mainly for testing purposes

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 #

zipEnvelope :: (Arrow arrow, Transform a, Transform b) => arrow EnvelopeControl a -> arrow (WithEnvelopeControl b) (T a b) Source #