Safe Haskell | None |
---|---|
Language | Haskell2010 |
A friendly family of effects. These functions are kindly provided by Iain McCurdy (designed in Csound).
Synopsis
- adele :: Sigs a => Balance -> DelayTime -> Feedback -> ToneSig -> a -> a
- pongy :: Sig2s a => Balance -> DelayTime -> Feedback -> ToneSig -> WidthSig -> a -> a
- tort :: Sigs a => DriveSig -> ToneSig -> a -> a
- fowler :: Sigs a => SensitivitySig -> BaseCps -> Resonance -> a -> a
- revsy :: Sigs a => TimeSig -> a -> a
- flan :: Sigs a => RateSig -> DepthSig -> DelayTime -> Feedback -> a -> a
- phasy :: Sigs a => RateSig -> DepthSig -> BaseCps -> Feedback -> a -> a
- crusher :: Sigs a => BitsReductionSig -> FoldoverSig -> a -> a
- chory :: RateSig -> DepthSig -> WidthSig -> Sig2 -> Sig2
- pany :: TremWaveSig -> DepthSig -> RateSig -> Sig2 -> Sig2
- oscPany :: DepthSig -> RateSig -> Sig2 -> Sig2
- triPany :: DepthSig -> RateSig -> Sig2 -> Sig2
- sqrPany :: DepthSig -> RateSig -> Sig2 -> Sig2
- tremy :: Sigs a => TremWaveSig -> DepthSig -> RateSig -> a -> a
- oscTremy :: Sigs a => DepthSig -> RateSig -> a -> a
- triTremy :: Sigs a => DepthSig -> RateSig -> a -> a
- sqrTremy :: Sigs a => DepthSig -> RateSig -> a -> a
- ringo :: Sigs a => Balance -> RateSig -> EnvelopeModSig -> a -> a
- type EnvelopeModSig = Sig
- magnus :: Sigs a => D -> DelayTime -> Feedback -> EchoGain -> ToneSig -> RandomSpreadSig -> a -> a
- adele1 :: Sigs a => Balance -> DelayTime -> a -> a
- adele2 :: Sigs a => Balance -> DelayTime -> a -> a
- adele3 :: Sigs a => Balance -> DelayTime -> a -> a
- adele4 :: Sigs a => Balance -> DelayTime -> a -> a
- adele5 :: Sigs a => Balance -> DelayTime -> a -> a
- adele1b :: Sigs a => Balance -> DelayTime -> a -> a
- adele2b :: Sigs a => Balance -> DelayTime -> a -> a
- adele3b :: Sigs a => Balance -> DelayTime -> a -> a
- adele4b :: Sigs a => Balance -> DelayTime -> a -> a
- adele5b :: Sigs a => Balance -> DelayTime -> a -> a
- adele1m :: Sigs a => Balance -> DelayTime -> a -> a
- adele2m :: Sigs a => Balance -> DelayTime -> a -> a
- adele3m :: Sigs a => Balance -> DelayTime -> a -> a
- adele4m :: Sigs a => Balance -> DelayTime -> a -> a
- adele5m :: Sigs a => Balance -> DelayTime -> a -> a
- pongy1 :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy2 :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy3 :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy4 :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy5 :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy1b :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy2b :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy3b :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy4b :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy5b :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy1m :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy2m :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy3m :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy4m :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- pongy5m :: Sig2s a => Balance -> DelayTime -> WidthSig -> a -> a
- tort1 :: Sigs a => a -> a
- tort2 :: Sigs a => a -> a
- tort3 :: Sigs a => a -> a
- tort4 :: Sigs a => a -> a
- tort5 :: Sigs a => a -> a
- tort1b :: Sigs a => a -> a
- tort2b :: Sigs a => a -> a
- tort3b :: Sigs a => a -> a
- tort4b :: Sigs a => a -> a
- tort5b :: Sigs a => a -> a
- tort1m :: Sigs a => a -> a
- tort2m :: Sigs a => a -> a
- tort3m :: Sigs a => a -> a
- tort4m :: Sigs a => a -> a
- tort5m :: Sigs a => a -> a
- fowler' :: Sigs a => Sig -> a -> a
- fowler1 :: Sigs a => a -> a
- fowler2 :: Sigs a => a -> a
- fowler3 :: Sigs a => a -> a
- fowler4 :: Sigs a => a -> a
- fowler5 :: Sigs a => a -> a
- flan' :: Sigs a => Sig -> a -> a
- flan1 :: Sigs a => a -> a
- flan2 :: Sigs a => a -> a
- flan3 :: Sigs a => a -> a
- flan4 :: Sigs a => a -> a
- flan5 :: Sigs a => a -> a
- phasy' :: Sigs a => Sig -> a -> a
- phasy1 :: Sigs a => a -> a
- phasy2 :: Sigs a => a -> a
- phasy3 :: Sigs a => a -> a
- phasy4 :: Sigs a => a -> a
- phasy5 :: Sigs a => a -> a
- chory' :: Sig2s a => Sig -> a -> a
- chory1 :: Sig2s a => a -> a
- chory2 :: Sig2s a => a -> a
- chory3 :: Sig2s a => a -> a
- chory4 :: Sig2s a => a -> a
- chory5 :: Sig2s a => a -> a
- oscPany' :: Sig2s a => Sig -> a -> a
- oscPany1 :: Sig2s a => a -> a
- oscPany2 :: Sig2s a => a -> a
- oscPany3 :: Sig2s a => a -> a
- oscPany4 :: Sig2s a => a -> a
- oscPany5 :: Sig2s a => a -> a
- triPany' :: Sig2s a => Sig -> a -> a
- triPany1 :: Sig2s a => a -> a
- triPany2 :: Sig2s a => a -> a
- triPany3 :: Sig2s a => a -> a
- triPany4 :: Sig2s a => a -> a
- triPany5 :: Sig2s a => a -> a
- sqrPany' :: Sig2s a => Sig -> a -> a
- sqrPany1 :: Sig2s a => a -> a
- sqrPany2 :: Sig2s a => a -> a
- sqrPany3 :: Sig2s a => a -> a
- sqrPany4 :: Sig2s a => a -> a
- sqrPany5 :: Sig2s a => a -> a
- oscTremy' :: Sigs a => Sig -> a -> a
- oscTremy1 :: Sigs a => a -> a
- oscTremy2 :: Sigs a => a -> a
- oscTremy3 :: Sigs a => a -> a
- oscTremy4 :: Sigs a => a -> a
- oscTremy5 :: Sigs a => a -> a
- triTremy' :: Sigs a => Sig -> a -> a
- triTremy1 :: Sigs a => a -> a
- triTremy2 :: Sigs a => a -> a
- triTremy3 :: Sigs a => a -> a
- triTremy4 :: Sigs a => a -> a
- triTremy5 :: Sigs a => a -> a
- sqrTremy' :: Sigs a => Sig -> a -> a
- sqrTremy1 :: Sigs a => a -> a
- sqrTremy2 :: Sigs a => a -> a
- sqrTremy3 :: Sigs a => a -> a
- sqrTremy4 :: Sigs a => a -> a
- sqrTremy5 :: Sigs a => a -> a
- ringo' :: Sigs a => Sig -> a -> a
- ringo1 :: Sigs a => a -> a
- ringo2 :: Sigs a => a -> a
- ringo3 :: Sigs a => a -> a
- ringo4 :: Sigs a => a -> a
- ringo5 :: Sigs a => a -> a
- uiRoom :: Sig2s a => Double -> Source (Fx a)
- uiRoom1 :: Sig2s a => Source (Fx a)
- uiRoom2 :: Sig2s a => Source (Fx a)
- uiRoom3 :: Sig2s a => Source (Fx a)
- uiRoom4 :: Sig2s a => Source (Fx a)
- uiRoom5 :: Sig2s a => Source (Fx a)
- uiChamber :: Sig2s a => Double -> Source (Fx a)
- uiChamber1 :: Sig2s a => Source (Fx a)
- uiChamber2 :: Sig2s a => Source (Fx a)
- uiChamber3 :: Sig2s a => Source (Fx a)
- uiChamber4 :: Sig2s a => Source (Fx a)
- uiChamber5 :: Sig2s a => Source (Fx a)
- uiHall :: Sig2s a => Double -> Source (Fx a)
- uiHall1 :: Sig2s a => Source (Fx a)
- uiHall2 :: Sig2s a => Source (Fx a)
- uiHall3 :: Sig2s a => Source (Fx a)
- uiHall4 :: Sig2s a => Source (Fx a)
- uiHall5 :: Sig2s a => Source (Fx a)
- uiCave :: Sig2s a => Double -> Source (Fx a)
- uiCave1 :: Sig2s a => Source (Fx a)
- uiCave2 :: Sig2s a => Source (Fx a)
- uiCave3 :: Sig2s a => Source (Fx a)
- uiCave4 :: Sig2s a => Source (Fx a)
- uiCave5 :: Sig2s a => Source (Fx a)
- uiMonoRoom :: Double -> Source Fx1
- uiRoom1m :: Source Fx1
- uiRoom2m :: Source Fx1
- uiRoom3m :: Source Fx1
- uiRoom4m :: Source Fx1
- uiRoom5m :: Source Fx1
- uiMonoChamber :: Double -> Source Fx1
- uiChamber1m :: Source Fx1
- uiChamber2m :: Source Fx1
- uiChamber3m :: Source Fx1
- uiChamber4m :: Source Fx1
- uiChamber5m :: Source Fx1
- uiMonoHall :: Double -> Source Fx1
- uiHall1m :: Source Fx1
- uiHall2m :: Source Fx1
- uiHall3m :: Source Fx1
- uiHall4m :: Source Fx1
- uiHall5m :: Source Fx1
- uiMonoCave :: Double -> Source Fx1
- uiCave1m :: Source Fx1
- uiCave2m :: Source Fx1
- uiCave3m :: Source Fx1
- uiCave4m :: Source Fx1
- uiCave5m :: Source Fx1
- uiAdele1 :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele2 :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele3 :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele4 :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele5 :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele1b :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele2b :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele3b :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele4b :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele5b :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele1m :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele2m :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele3m :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele4m :: Sigs a => Double -> Double -> Source (Fx a)
- uiAdele5m :: Sigs a => Double -> Double -> Source (Fx a)
- uiMagnus :: Sigs a => Int -> Double -> Double -> Double -> Double -> Double -> Source (Fx a)
- uiPongy1 :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy2 :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy3 :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy4 :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy5 :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy1b :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy2b :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy3b :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy4b :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy5b :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy1m :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy2m :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy3m :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy4m :: Sigs a => Double -> Double -> Source (Fx a)
- uiPongy5m :: Sigs a => Double -> Double -> Source (Fx a)
- uiTort1 :: Sigs a => Source (Fx a)
- uiTort2 :: Sigs a => Source (Fx a)
- uiTort3 :: Sigs a => Source (Fx a)
- uiTort4 :: Sigs a => Source (Fx a)
- uiTort5 :: Sigs a => Source (Fx a)
- uiTort1b :: Sigs a => Source (Fx a)
- uiTort2b :: Sigs a => Source (Fx a)
- uiTort3b :: Sigs a => Source (Fx a)
- uiTort4b :: Sigs a => Source (Fx a)
- uiTort5b :: Sigs a => Source (Fx a)
- uiTort1m :: Sigs a => Source (Fx a)
- uiTort2m :: Sigs a => Source (Fx a)
- uiTort3m :: Sigs a => Source (Fx a)
- uiTort4m :: Sigs a => Source (Fx a)
- uiTort5m :: Sigs a => Source (Fx a)
- uiFowler' :: Sigs a => Source (Fx a)
- uiFowler1 :: Sigs a => Source (Fx a)
- uiFowler2 :: Sigs a => Source (Fx a)
- uiFowler3 :: Sigs a => Source (Fx a)
- uiFowler4 :: Sigs a => Source (Fx a)
- uiFowler5 :: Sigs a => Source (Fx a)
- uiFlan' :: Sigs a => Source (Fx a)
- uiFlan1 :: Sigs a => Source (Fx a)
- uiFlan2 :: Sigs a => Source (Fx a)
- uiFlan3 :: Sigs a => Source (Fx a)
- uiFlan4 :: Sigs a => Source (Fx a)
- uiFlan5 :: Sigs a => Source (Fx a)
- uiPhasy' :: Sigs a => Source (Fx a)
- uiPhasy1 :: Sigs a => Source (Fx a)
- uiPhasy2 :: Sigs a => Source (Fx a)
- uiPhasy3 :: Sigs a => Source (Fx a)
- uiPhasy4 :: Sigs a => Source (Fx a)
- uiPhasy5 :: Sigs a => Source (Fx a)
- uiChory' :: Sig2s a => Source (Fx a)
- uiChory1 :: Sig2s a => Source (Fx a)
- uiChory2 :: Sig2s a => Source (Fx a)
- uiChory3 :: Sig2s a => Source (Fx a)
- uiChory4 :: Sig2s a => Source (Fx a)
- uiChory5 :: Sig2s a => Source (Fx a)
- uiOscPany' :: Source Fx2
- uiTriPany' :: Source Fx2
- uiSqrPany' :: Source Fx2
- uiOscPany1 :: Source Fx2
- uiOscPany2 :: Source Fx2
- uiOscPany3 :: Source Fx2
- uiOscPany4 :: Source Fx2
- uiOscPany5 :: Source Fx2
- uiTriPany1 :: Source Fx2
- uiTriPany2 :: Source Fx2
- uiTriPany3 :: Source Fx2
- uiTriPany4 :: Source Fx2
- uiTriPany5 :: Source Fx2
- uiSqrPany1 :: Source Fx2
- uiSqrPany2 :: Source Fx2
- uiSqrPany3 :: Source Fx2
- uiSqrPany4 :: Source Fx2
- uiSqrPany5 :: Source Fx2
- uiOscTremy' :: Sigs a => Source (Fx a)
- uiTriTremy' :: Sigs a => Source (Fx a)
- uiSqrTremy' :: Sigs a => Source (Fx a)
- uiOscTremy1 :: Sigs a => Source (Fx a)
- uiOscTremy2 :: Sigs a => Source (Fx a)
- uiOscTremy3 :: Sigs a => Source (Fx a)
- uiOscTremy4 :: Sigs a => Source (Fx a)
- uiOscTremy5 :: Sigs a => Source (Fx a)
- uiTriTremy1 :: Sigs a => Source (Fx a)
- uiTriTremy2 :: Sigs a => Source (Fx a)
- uiTriTremy3 :: Sigs a => Source (Fx a)
- uiTriTremy4 :: Sigs a => Source (Fx a)
- uiTriTremy5 :: Sigs a => Source (Fx a)
- uiSqrTremy1 :: Sigs a => Source (Fx a)
- uiSqrTremy2 :: Sigs a => Source (Fx a)
- uiSqrTremy3 :: Sigs a => Source (Fx a)
- uiSqrTremy4 :: Sigs a => Source (Fx a)
- uiSqrTremy5 :: Sigs a => Source (Fx a)
- uiRevsy :: Sigs a => Double -> Source (Fx a)
- uiCrusher :: Sigs a => Double -> Double -> Source (Fx a)
- uiRingo' :: Sigs a => Source (Fx a)
- uiRingo1 :: Sigs a => Source (Fx a)
- uiRingo2 :: Sigs a => Source (Fx a)
- uiRingo3 :: Sigs a => Source (Fx a)
- uiRingo4 :: Sigs a => Source (Fx a)
- uiRingo5 :: Sigs a => Source (Fx a)
- ambiGuitar :: ThreshSig -> DelayTime -> Feedback -> ToneSig -> DriveSig -> Sig -> SE Sig
Documentation
adele :: Sigs a => Balance -> DelayTime -> Feedback -> ToneSig -> a -> a Source #
Analog Delay line with low-pass filter in the feedback chain. The filter adds natural decay to the echoes.
adele mixRatio delayTime feedback toneRatio ain
Note that the center frequency of the filter is measured in normalized units (form 0 to 1).
pongy :: Sig2s a => Balance -> DelayTime -> Feedback -> ToneSig -> WidthSig -> a -> a Source #
Ping-pong delay
pongy kmix delayTime feedback tone ain
tort :: Sigs a => DriveSig -> ToneSig -> a -> a Source #
Distortion unit with low-pass filter.
tort driveLevel toneRatio ain
Note that the center frequency of the filter is measured in normalized units (form 0 to 1).
fowler :: Sigs a => SensitivitySig -> BaseCps -> Resonance -> a -> a Source #
Envelope follower.
fowler sensitivity baseFrequencyRatio resonance ain
Arguments:
sensitivity
-- sensitivity of the envelope follower (suggested range: 0 to 1)baseFrequencyRatio
-- base frequency of the filter before modulation by the input dynamics (range: 0 to 1)resonance
-- resonance of the lowpass filter (suggested range: 0 to 1)
revsy :: Sigs a => TimeSig -> a -> a Source #
An effect that reverses an audio stream in chunks
revsy time
time
-- the size of the chunck in seconds.
flan :: Sigs a => RateSig -> DepthSig -> DelayTime -> Feedback -> a -> a Source #
A flanger effect following the typical design of a so called 'stomp box'
flan rate depth delayTime feedback ain =
Arguments
rate
-- rate control of the lfo of the effect *NOT IN HERTZ* (range 0 to 1)depth
-- depth of the lfo of the effect (range 0 to 1)delayTime
-- static delay offset of the flanging effect (range 0 to 1)feedback
-- feedback and therefore intensity of the effect (range 0 to 1)ain
-- input audio to which the flanging effect will be applied
phasy :: Sigs a => RateSig -> DepthSig -> BaseCps -> Feedback -> a -> a Source #
Phaser
An phase shifting effect that mimics the design of a so called 'stomp box'
phasy rate depth freq fback ain
Arguments:
rate
-- rate of lfo of the effect (range 0 to 1)depth
-- depth of lfo of the effect (range 0 to 1)freq
-- centre frequency of the phase shifting effect in octaves (suggested range 0 to 1)fback
-- feedback and therefore intensity of the effect (range 0 to 1)ain
-- input audio to be pitch shifted
crusher :: Sigs a => BitsReductionSig -> FoldoverSig -> a -> a Source #
LoFi (Bit Crusher)
'Low Fidelity' distorting effects of bit reduction and downsampling (foldover)
crusher bits fold ain = ...
Arguments
bits
-- bit depth reduction (range 0 to 1)fold
-- amount of foldover (range 0 to 1)ain
-- input audio to have low fidelity distortion effects applied
chory :: RateSig -> DepthSig -> WidthSig -> Sig2 -> Sig2 Source #
Stereo Chorus
A stereo chorus effect
chory rate depth width (ainLeft, ainRight)
Arguments
rate
-- rate control of the lfo of the effect *NOT IN HERTZ* (range 0 to 1)depth
-- depth of the lfo of the effect (range 0 to 1)width
-- width of stereo widening (range 0 to 1)ainX
-- input stereo signal
pany :: TremWaveSig -> DepthSig -> RateSig -> Sig2 -> Sig2 Source #
Auto pan
pany wave rate depth ain
; Arguments:
wave
-- waveform used by the lfo (0=sine 1=triangle 2=square)rate
-- rate control of the lfo of the effect *NOT IN HERTZ* (range 0 to 1)depth
-- depth of the lfo of the effect (range 0 to 1)ain
-- input stereo audio
tremy :: Sigs a => TremWaveSig -> DepthSig -> RateSig -> a -> a Source #
Tremolo
tremolo effect
tremy wave rate depth ain
; Arguments:
wave
-- waveform used by the lfo (0=sine 1=triangle 2=square)rate
-- rate control of the lfo of the effect *NOT IN HERTZ* (range 0 to 1)depth
-- depth of the lfo of the effect (range 0 to 1)ain
-- input stereo audio
ringo :: Sigs a => Balance -> RateSig -> EnvelopeModSig -> a -> a Source #
RingModulator
An ring modulating effect with an envelope follower
ringo balance rate envelopeMod ain
balance
-- dry / wet mix of the output signal (range 0 to 1) ;rate
-- frequency of thew ring modulator *NOT IN HERTZ* (range 0 to 1) ;envelopeMod
-- amount of dynamic envelope following modulation of frequency (range 0 to 1)ain
-- input audio to be pitch shifted
type EnvelopeModSig = Sig Source #
magnus :: Sigs a => D -> DelayTime -> Feedback -> EchoGain -> ToneSig -> RandomSpreadSig -> a -> a Source #
magnus - simulates magnetic tape echo/delay
magnus size feedback echoGain tone randomSpread ain
- size - how many heads in the tape
- feedback
- echo gain
- tone - normalized center frequency of the filter (0 to 1)
- randomSpread - quality of the tape (the higher - the worser)
Presets
For all presets we have 5 levels of strength. They are signified by numbers from 1 to 5. Also for some effects (delay and distortion) we have miscellaneous way to alter preset by suffix b (means bright) and m (means muffled). It alters the tone color of the effect.
Analog Delay
Bright
Muted
Ping Pong Delay
Bright
Muted
Distortion
Bright
Muted
Envelope follower
Flanger
Phaser
Chorus
Auto Pan
Tremolo
Ring modulation
Presets with UIs
If we use prefix ui
we can create an image of our effect that looks like guitar stompbox.
Let's take a distortion fr instance:
type FxFun = Sig2 -> SE Sig2 uiTort2 :: Source FxFun
We can combine the effects with functions:
fxHor, fxVer :: [Source FxFun] -> Source FxFun fxMatrix :: Int -> [Source FxFun] -> Source FxFun fxMatrix numberOfColumns fxs = ...
All these functions stack the effects in the list and align visuals. The visuals can be stacked horizontally, vertically or placed on a square grid.
Let's create a chain of effects and apply it to the input signal:
> let pedals ain = lift1 (\f -> f ain) $ fxHor [uiFlan1, uiAdele2 0.25 0.5, uiHall 0.2, uiGain 0.4] > vdac $ pedals =<< (atMidi $ dryPatch vibraphone)
With uiGain
we can change the volume of the output.
Reverb
Rooms
Chambers
Halls
Caves
Mono Reverb
Rooms
Chambers
uiChamber1m :: Source Fx1 Source #
uiChamber2m :: Source Fx1 Source #
uiChamber3m :: Source Fx1 Source #
uiChamber4m :: Source Fx1 Source #
uiChamber5m :: Source Fx1 Source #
Halls
Caves
Delay
Tape echo
uiMagnus :: Sigs a => Int -> Double -> Double -> Double -> Double -> Double -> Source (Fx a) Source #
Ping Pong Delay
Distortion
Envelope follower
Flanger
Phaser
Chorus
Auto Pan
uiOscPany' :: Source Fx2 Source #
uiTriPany' :: Source Fx2 Source #
uiSqrPany' :: Source Fx2 Source #
uiOscPany1 :: Source Fx2 Source #
uiOscPany2 :: Source Fx2 Source #
uiOscPany3 :: Source Fx2 Source #
uiOscPany4 :: Source Fx2 Source #
uiOscPany5 :: Source Fx2 Source #
uiTriPany1 :: Source Fx2 Source #
uiTriPany2 :: Source Fx2 Source #
uiTriPany3 :: Source Fx2 Source #
uiTriPany4 :: Source Fx2 Source #
uiTriPany5 :: Source Fx2 Source #
uiSqrPany1 :: Source Fx2 Source #
uiSqrPany2 :: Source Fx2 Source #
uiSqrPany3 :: Source Fx2 Source #
uiSqrPany4 :: Source Fx2 Source #
uiSqrPany5 :: Source Fx2 Source #
Tremolo
Reverse
LoFi
Ring modulation
Compressor
TODO
Misc
Ambi guitar
ambiGuitar :: ThreshSig -> DelayTime -> Feedback -> ToneSig -> DriveSig -> Sig -> SE Sig Source #
Ambient guitar patch. It uses ambiEnv
with stack of delays and a bit of compression and distortion.
No reverb is added. The reverb is for user to add.
ambiGuitar thresh delayTime feedback tone driveLevel sig
For thresh try out values like 0.01, 0.02
Example, we read guitar input from soundcard first input, apply ambient guitar effect and a bit of reverb:
main = dac proc proc :: Sig2 -> SE Sig2 proc (x, _) = hall 0.25 $ ambiGuitar 0.02 1 0.7 0.4 0.1 x