Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
A gallery of sound processors (effects).
Synopsis
- nightChorus :: D -> D -> Sig -> Sig
- nightReverb :: Int -> D -> D -> D -> Sig -> SE (Sig, Sig)
- vibroDelay :: Int -> D -> Sig -> Sig -> Sig -> Sig
- delayLine :: Int -> D -> D -> Sig -> (Sig, Sig)
- bassEnhancment :: D -> D -> Sig -> Sig
- declick :: Sig -> Sig
- sweepFilter :: D -> D -> D -> Sig -> Sig -> Sig
- loopSweepFilter :: D -> D -> D -> Sig -> Sig -> Sig
- bayAtNight :: Sig -> SE (Sig, Sig)
- vestigeOfTime :: Sig -> (Sig, Sig)
Documentation
nightChorus :: D -> D -> Sig -> Sig Source #
Chorus effect, borrowed from http://www.jlpublishing.com/Csound.htm I made some of its parameters accesible trhough score delay in milliseconds (by John Lato in Csound)
nightChorus idlym iscale asig
- idlym -- delay in milliseconds
- iscale -- amplitude of the vibrato on delay time (in milliseconds).
nightReverb :: Int -> D -> D -> D -> Sig -> SE (Sig, Sig) Source #
Reverb
A bunch of delay lines FDN reverb, with feedback matrix based upon physical modeling scattering junction of 8 lossless waveguides of equal characteristic impedance. Based on Julius O. Smith III, "A New Approach to Digital Reverberation using Closed Waveguide Networks," Proceedings of the International Computer Music Conference 1985, p. 47-53 (also available as a seperate publication from CCRMA), as well as some more recent papers by Smith and others.
Coded by Sean Costello, October 1999 (in Csound)
nightReverb n igain ipitchmod itone cps
n
-- a number of delay lines (typical value is 8)igain
-- gain of reverb. adjust empirically for desired reverb time. 0.6 gives a good small "live" room sound, 0.8 a small hall, 0.9 a large hall, 0.99 an enormous stone cavern.ipitchmod
-- amount of random pitch modulation for the delay lines. 1 is the "normal" amount, but this may be too high for held pitches such as piano tones. adjust to taste.itone
-- cutoff frequency of lowpass filters in feedback loops of delay lines, in hz. lower cutoff frequencies results in a sound with more high-frequency damping.
vibroDelay :: Int -> D -> Sig -> Sig -> Sig -> Sig Source #
A signal goes throgh the chain of varible delays. Delay time is affected by vibrato.
aout = vibroDelay n delayBufferSize vibDepth vibRate asig
n
-- number of delay linesdelayBufSize
-- buffer size for the delay lines (it should be greater than absolute maximum of the depth of the vibrato)vibDepth
-- the amplitude of the delay line time vibratovibRate
-- the frequency of the delay lie time vibrato
delayLine :: Int -> D -> D -> Sig -> (Sig, Sig) Source #
A chain of delay lines.
delayLine n k dt asig
A signal (asig
) is passed through the chain of fixed time delays (A dt
is the delay time
n
is a number of filters, k - is scale of the signals that is passed through each delay line).
bassEnhancment :: D -> D -> Sig -> Sig Source #
Enhances all frequencies below the give frequency by the given coefficient. Original signal is added to the filtered signal with low-pass filter and scaled.
bassEnhancment centerFrequency coefficient asig
declick :: Sig -> Sig Source #
Adds a very short fade in to remove the click at the beggining of the note.
sweepFilter :: D -> D -> D -> Sig -> Sig -> Sig Source #
Sweep band pass filter (center frequency ramps from one value to another)
sweepFilter dur startCps endCps bandWidth asignal
loopSweepFilter :: D -> D -> D -> Sig -> Sig -> Sig Source #
Sweep band pass filter in loops (center frequency ramps from one value to another and back)
sweepFilter dur startCps endCps bandWidth asignal