csound-expression-4.8: library to make electronic music

Safe HaskellNone
LanguageHaskell98

Csound.Air.Misc

Contents

Description

Patterns

Synopsis

Documentation

mean :: Fractional a => [a] -> a Source

Mean value.

vibrate :: Sig -> Sig -> (Sig -> a) -> Sig -> a Source

Adds vibrato to the sound unit. Sound units is a function that takes in a frequency.

randomPitch :: Sig -> Sig -> (Sig -> a) -> Sig -> SE a Source

Adds a random vibrato to the sound unit. Sound units is a function that takes in a frequency.

chorusPitch :: Int -> Sig -> (Sig -> Sig) -> Sig -> Sig Source

Chorus takes a number of copies, chorus width and wave shape.

resons :: [(Sig, Sig)] -> Sig -> Sig Source

Applies a resonator to the signals. A resonator is a list of band pass filters. A list contains the parameters for the filters:

[(centerFrequency, bandWidth)]

resonsBy :: (cps -> bw -> Sig -> Sig) -> [(cps, bw)] -> Sig -> Sig Source

A resonator with user defined band pass filter. Warning: a filter takes in a center frequency, band width and the signal. The signal comes last (this order is not standard in the Csound but it's more convinient to use with Haskell).

modes :: [(Sig, Sig)] -> Sig -> Sig -> Sig Source

Chain of mass-spring-damping filters.

modes params baseCps exciter 
  • params - a list of pairs (resonantFrequencyRatio, filterQuality)
  • baseCps - base frequency of the resonator
  • exciter - an impulse that starts a resonator.

dryWet :: Sig -> (Sig -> Sig) -> Sig -> Sig Source

Mixes dry and wet signals.

dryWet ratio effect asig
  • ratio - of dry signal to wet
  • effect - means to wet the signal
  • asig -- processed signal

once :: Tab -> Sig Source

Reads table once during the note length.

onceBy :: D -> Tab -> Sig Source

Reads table once during a given period of time.

several :: Tab -> Sig -> Sig Source

Reads table several times during the note length.

fromMono :: Sig -> (Sig, Sig) Source

Doubles the mono signal to get the stereo signal.

List functions

odds :: [a] -> [a] Source

Selects odd elements from the list.

evens :: [a] -> [a] Source

Selects even elements from the list.

Random functions

rndPan :: Sig -> SE Sig2 Source

Random panning

rndPan2 :: Sig2 -> SE Sig2 Source

Random panning

rndVol :: SigSpace a => (D, D) -> a -> SE a Source

Random volume

gaussVol (minVolume, maxVolume)

gaussVol :: SigSpace a => D -> a -> SE a Source

Random volume (with gauss distribution)

gaussVol radiusOfDistribution

Choose signals

selector :: (Num a, SigSpace a) => [a] -> Sig -> a Source

It picks a signal from the list by integer index. The original value is taken from the head of the list (the first element).

Saving to file

writeHifi :: D -> String -> SE Sig2 -> IO () Source

Hi-fi output for stereo signals. Saves the stereo signal to file. The length of the file is defined in seconds.

writeHifi fileLength fileName asig

Arpeggios

arpeggi :: SigSpace a => [Sig] -> [Sig] -> (Sig -> a) -> Sig -> a Source

Creates running arpeggios.

arpeggiBy ampWeights pitches instrument cps

It plays an instrument with fast sequence of notes. We can specify the pitches and amplitude weights of the notes as well as frequency of repetition.

arpBy :: SigSpace a => ([Sig] -> Sig -> Sig) -> ([Sig] -> Sig -> Sig) -> [Sig] -> [Sig] -> (Sig -> a) -> Sig -> a Source

Creates running arpeggios.

arpeggiBy ampWave pitchwave ampWeights pitches instrument cps

It plays an instrument with fast sequence of notes. We can specify amplitude envelope wave, pitch envelope wave, the pitches and amplitude weights of the notes as well as frequency of repetition.

GUI

lpJoy :: Source (Sig -> Sig) Source

Low-pass filter pictured as joystick. Ox is for center frequency and Oy is for resonance.

Effects

delaySample :: D -> Sig -> Sig Source

Delay by certain number of samples

delaySample numOfSamples asig

Function composition

funSeq :: [a -> a] -> a -> a Source

Chains all functions in the list.

funPar :: Num a => [a -> a] -> a -> a Source

Applies all functions in the list to the given input and summs them up.