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

Safe HaskellNone

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

type Instrument a sig = SampleRate a -> Instrument a sigSource

type PIOId a = T a aSource

fanoutShorten :: (Transform a, Transform b, Transform c) => T a b -> T a c -> T a (T b c)Source

type WithEnvelopeControl remainder = T GateChunk (T (T (Control Time) (Control Time)) remainder)Source

reorderEnvelopeControl :: (Arrow arrow, Read remainder) => arrow (WithEnvelopeControl remainder) (T EnvelopeControl remainder)Source

phaserOsci :: (T p Real -> T p Real -> T p a VectorValue) -> T p a (T VectorValue)Source

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

mainly for testing purposes