tidal-1.9.5: Pattern language for improvised music
Safe HaskellNone
LanguageHaskell2010

Sound.Tidal.Params

Synopsis

Documentation

grp :: [String -> ValueMap] -> Pattern String -> ControlPattern Source #

Group multiple params into one.

mF :: String -> String -> ValueMap Source #

mI :: String -> String -> ValueMap Source #

mS :: String -> String -> ValueMap Source #

Param makers

pF :: String -> Pattern Double -> ControlPattern Source #

pI :: String -> Pattern Int -> ControlPattern Source #

pB :: String -> Pattern Bool -> ControlPattern Source #

pS :: String -> Pattern String -> ControlPattern Source #

pX :: String -> Pattern [Word8] -> ControlPattern Source #

pStateF Source #

Arguments

:: String

A parameter, e.g. note; a String recognizable by a ValueMap.

-> String

Identifies the cycling state pattern. Can be anything the user wants.

-> (Maybe Double -> Double) 
-> ControlPattern 

pStateList Source #

Arguments

:: String

A parameter, e.g. note; a String recognizable by a ValueMap.

-> String

Identifies the cycling state pattern. Can be anything the user wants.

-> [Value]

The list to cycle through.

-> ControlPattern 

pStateList is made with cyclic lists in mind, but it can even "cycle" through infinite lists.

pStateListF :: String -> String -> [Double] -> ControlPattern Source #

A wrapper for pStateList that accepts a `[Double]` rather than a `[Value]`.

pStateListS :: String -> String -> [String] -> ControlPattern Source #

A wrapper for pStateList that accepts a `[String]` rather than a `[Value]`.

Grouped params

sTake :: String -> [String] -> ControlPattern Source #

grain' :: Pattern String -> ControlPattern Source #

grain' is a shortcut to join a begin and end

These are equivalent:

d1 $ slow 2 $ s "bev" # grain' "0.2:0.3" # legato 1
d1 $ slow 2 $ s "bev" # begin 0.2 # end 0.3 # legato 1

drumN :: Num a => String -> a Source #

Generated params

accelerate :: Pattern Double -> ControlPattern Source #

A pattern of numbers that speed up (or slow down) samples while they play.

In the following example, the sound starts at the original pitch and gets higher as it plays:

d1 $ s "arpy" # accelerate 2

You can use a negative number to make the sound get lower. In this example, a different acceleration is applied to each played note using state values:

d1 $ arp "up" $ note "c'maj'4" # s "arpy" # accelerateTake "susan" [0.2,1,-1]

accelerateTake :: String -> [Double] -> ControlPattern Source #

amp :: Pattern Double -> ControlPattern Source #

Controls the amplitude (volume) of the sound. Like gain, but linear. Default value is 0.4.

d1 $ s "arpy" # amp "<0.4 0.8 0.2>"

ampTake :: String -> [Double] -> ControlPattern Source #

ampCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

arrayTake :: String -> [Double] -> ControlPattern Source #

attack :: Pattern Double -> ControlPattern Source #

a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample.

attackTake :: String -> [Double] -> ControlPattern Source #

attackCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

bandf :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter.

bandfTake :: String -> [Double] -> ControlPattern Source #

bandfCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

bandq :: Pattern Double -> ControlPattern Source #

a pattern of anumbers from 0 to 1. Sets the q-factor of the band-pass filter.

bandqTake :: String -> [Double] -> ControlPattern Source #

bandqCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

begin :: Pattern Double -> ControlPattern Source #

begin receives a pattern of numbers from 0 to 1 and skips the beginning of each sample by the indicated proportion. I.e., 0 would play the sample from the start, 1 would skip the whole sample, and 0.25 would cut off the first quarter.

In this example, the first 3 ade samples are played on every cycle, but the start point from which they are played changes on each cycle:

d1 $ n "0 1 2" # s "ade" # begin "<0 0.25 0.5 0.75>" # legato 1

beginTake :: String -> [Double] -> ControlPattern Source #

beginCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

binshift :: Pattern Double -> ControlPattern Source #

Spectral binshift

binshiftTake :: String -> [Double] -> ControlPattern Source #

button0Take :: String -> [Double] -> ControlPattern Source #

button1Take :: String -> [Double] -> ControlPattern Source #

button10Take :: String -> [Double] -> ControlPattern Source #

button11Take :: String -> [Double] -> ControlPattern Source #

button12Take :: String -> [Double] -> ControlPattern Source #

button13Take :: String -> [Double] -> ControlPattern Source #

button14Take :: String -> [Double] -> ControlPattern Source #

button15Take :: String -> [Double] -> ControlPattern Source #

button2Take :: String -> [Double] -> ControlPattern Source #

button3Take :: String -> [Double] -> ControlPattern Source #

button4Take :: String -> [Double] -> ControlPattern Source #

button5Take :: String -> [Double] -> ControlPattern Source #

button6Take :: String -> [Double] -> ControlPattern Source #

button7Take :: String -> [Double] -> ControlPattern Source #

button8Take :: String -> [Double] -> ControlPattern Source #

button9Take :: String -> [Double] -> ControlPattern Source #

ccnTake :: String -> [Double] -> ControlPattern Source #

ccnCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

ccvTake :: String -> [Double] -> ControlPattern Source #

ccvCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

channel :: Pattern Int -> ControlPattern Source #

choose the channel the pattern is sent to in superdirt

channelTake :: String -> [Double] -> ControlPattern Source #

clhatdecayTake :: String -> [Double] -> ControlPattern Source #

coarse :: Pattern Double -> ControlPattern Source #

fake-resampling, a pattern of numbers for lowering the sample rate, i.e. 1 for original 2 for half, 3 for a third and so on.

coarseTake :: String -> [Double] -> ControlPattern Source #

coarseCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

comb :: Pattern Double -> ControlPattern Source #

Spectral comb

combTake :: String -> [Double] -> ControlPattern Source #

combCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

controlTake :: String -> [Double] -> ControlPattern Source #

cps :: Pattern Double -> ControlPattern Source #

A control pattern; setcps is the standalone function.

Patterns don’t (yet) have independent tempos though, if you change it on one pattern, it changes on all of them.

p "cpsfun" $ s "bd sd(3,8)" # cps (slow 8 $ 0.5 + saw)

cpsTake :: String -> [Double] -> ControlPattern Source #

cpsCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

crush :: Pattern Double -> ControlPattern Source #

bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction).

crushTake :: String -> [Double] -> ControlPattern Source #

crushCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

ctlNumTake :: String -> [Double] -> ControlPattern Source #

ctlNumCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

ctransposeTake :: String -> [Double] -> ControlPattern Source #

cut :: Pattern Int -> ControlPattern Source #

In the style of classic drum-machines, cut will stop a playing sample as soon as another samples with in same cutgroup is to be played. An example would be an open hi-hat followed by a closed one, essentially muting the open.

cutTake :: String -> [Double] -> ControlPattern Source #

cutCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

cutoff :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter.

cutoffTake :: String -> [Double] -> ControlPattern Source #

cutoffCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

cutoffegintTake :: String -> [Double] -> ControlPattern Source #

decayTake :: String -> [Double] -> ControlPattern Source #

decayCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

degreeTake :: String -> [Double] -> ControlPattern Source #

degreeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

delay :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Sets the level of the delay signal.

delayTake :: String -> [Double] -> ControlPattern Source #

delayCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

delayfeedback :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Sets the amount of delay feedback.

delayfeedbackTake :: String -> [Double] -> ControlPattern Source #

delaytime :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Sets the length of the delay.

delaytimeTake :: String -> [Double] -> ControlPattern Source #

detuneTake :: String -> [Double] -> ControlPattern Source #

detuneCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

distort :: Pattern Double -> ControlPattern Source #

noisy fuzzy distortion

distortTake :: String -> [Double] -> ControlPattern Source #

djf :: Pattern Double -> ControlPattern Source #

DJ filter, below 0.5 is low pass filter, above is high pass filter.

djfTake :: String -> [Double] -> ControlPattern Source #

djfCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

dry :: Pattern Double -> ControlPattern Source #

when set to `1` will disable all reverb for this pattern. See room and size for more information about reverb.

dryTake :: String -> [Double] -> ControlPattern Source #

dryCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

durTake :: String -> [Double] -> ControlPattern Source #

durCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

end :: Pattern Double -> ControlPattern Source #

Similar to begin, but cuts the end off samples, shortening them; e.g. 0.75 to cut off the last quarter of each sample.

d1 $ s "bev" >| begin 0.5 >| end "[0.65 0.55]"

The example above will play the sample two times for cycle, but the second time will play a shorter segment than the first time, creating a kind of canon effect.

endTake :: String -> [Double] -> ControlPattern Source #

endCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

enhance :: Pattern Double -> ControlPattern Source #

Spectral enhance

enhanceTake :: String -> [Double] -> ControlPattern Source #

expressionTake :: String -> [Double] -> ControlPattern Source #

fadeInTime :: Pattern Double -> ControlPattern Source #

As with fadeTime, but controls the fade in time of the grain envelope. Not used if the grain begins at position 0 in the sample.

fadeInTimeTake :: String -> [Double] -> ControlPattern Source #

fadeTime :: Pattern Double -> ControlPattern Source #

Used when using beginend or chopstriate and friends, to change the fade out time of the grain envelope.

fadeTimeTake :: String -> [Double] -> ControlPattern Source #

frameRateTake :: String -> [Double] -> ControlPattern Source #

framesTake :: String -> [Double] -> ControlPattern Source #

framesCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

freeze :: Pattern Double -> ControlPattern Source #

Spectral freeze

freezeTake :: String -> [Double] -> ControlPattern Source #

freezeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

freqTake :: String -> [Double] -> ControlPattern Source #

freqCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

from :: Pattern Double -> ControlPattern Source #

for internal sound routing

fromTake :: String -> [Double] -> ControlPattern Source #

fromCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

fshift :: Pattern Double -> ControlPattern Source #

frequency shifter

fshiftTake :: String -> [Double] -> ControlPattern Source #

fshiftCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

fshiftnote :: Pattern Double -> ControlPattern Source #

frequency shifter

fshiftnoteTake :: String -> [Double] -> ControlPattern Source #

fshiftphase :: Pattern Double -> ControlPattern Source #

frequency shifter

fshiftphaseTake :: String -> [Double] -> ControlPattern Source #

gain :: Pattern Double -> ControlPattern Source #

Used to control the amplitude (volume) of the sound. Values less than 1 make the sound quieter and values greater than 1 make the sound louder.

gain uses a power function, so the volume change around 1 is subtle, but it gets more noticeable as it increases or decreases. Typical values for gain are between 0 and 1.5.

For the linear equivalent, see amp.

d1 $ s "arpy" # gain 0.8

This plays the first arpy sample at a quieter level than the default.

d1 $ s "ab*16" # gain (range 0.8 1.3 $ sine)

This plays a hihat sound, 16 times per cycle, with a gain moving from 0.8 to 1.3 following a sine wave.

gainTake :: String -> [Double] -> ControlPattern Source #

gainCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

gateTake :: String -> [Double] -> ControlPattern Source #

gateCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

harmonicTake :: String -> [Double] -> ControlPattern Source #

hatgrainTake :: String -> [Double] -> ControlPattern Source #

hbrick :: Pattern Double -> ControlPattern Source #

High pass sort of spectral filter

hbrickTake :: String -> [Double] -> ControlPattern Source #

hbrickCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

hcutoff :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter. Also has alias hpf

hcutoffTake :: String -> [Double] -> ControlPattern Source #

hold :: Pattern Double -> ControlPattern Source #

a pattern of numbers to specify the hold time (in seconds) of an envelope applied to each sample. Only takes effect if attack and release are also specified.

holdTake :: String -> [Double] -> ControlPattern Source #

holdCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

hoursTake :: String -> [Double] -> ControlPattern Source #

hoursCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

hresonance :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter. Has alias hpq

hresonanceTake :: String -> [Double] -> ControlPattern Source #

imagTake :: String -> [Double] -> ControlPattern Source #

imagCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

kcutoffTake :: String -> [Double] -> ControlPattern Source #

krush :: Pattern Double -> ControlPattern Source #

shape/bass enhancer

krushTake :: String -> [Double] -> ControlPattern Source #

krushCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lagogoTake :: String -> [Double] -> ControlPattern Source #

lagogoCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lbrick :: Pattern Double -> ControlPattern Source #

Low pass sort of spectral filter

lbrickTake :: String -> [Double] -> ControlPattern Source #

lbrickCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lclapTake :: String -> [Double] -> ControlPattern Source #

lclapCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lclavesTake :: String -> [Double] -> ControlPattern Source #

lclhatTake :: String -> [Double] -> ControlPattern Source #

lclhatCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lcrashTake :: String -> [Double] -> ControlPattern Source #

lcrashCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

legato :: Pattern Double -> ControlPattern Source #

controls the amount of overlap between two adjacent sounds

legatoTake :: String -> [Double] -> ControlPattern Source #

legatoCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

leslieTake :: String -> [Double] -> ControlPattern Source #

leslieCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lfoTake :: String -> [Double] -> ControlPattern Source #

lfoCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lfocutoffintTake :: String -> [Double] -> ControlPattern Source #

lfodelayTake :: String -> [Double] -> ControlPattern Source #

lfointTake :: String -> [Double] -> ControlPattern Source #

lfointCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lfopitchintTake :: String -> [Double] -> ControlPattern Source #

lfoshapeTake :: String -> [Double] -> ControlPattern Source #

lfosyncTake :: String -> [Double] -> ControlPattern Source #

lhitomTake :: String -> [Double] -> ControlPattern Source #

lhitomCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lkickTake :: String -> [Double] -> ControlPattern Source #

lkickCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

llotomTake :: String -> [Double] -> ControlPattern Source #

llotomCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lock :: Pattern Double -> ControlPattern Source #

A pattern of numbers. Specifies whether delaytime is calculated relative to cps. When set to 1, delaytime is a direct multiple of a cycle.

lockTake :: String -> [Double] -> ControlPattern Source #

lockCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

loop :: Pattern Double -> ControlPattern Source #

loops the sample (from begin to end) the specified number of times.

loopTake :: String -> [Double] -> ControlPattern Source #

loopCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lophatTake :: String -> [Double] -> ControlPattern Source #

lophatCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lrateTake :: String -> [Double] -> ControlPattern Source #

lrateCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lsizeTake :: String -> [Double] -> ControlPattern Source #

lsizeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

lsnareTake :: String -> [Double] -> ControlPattern Source #

lsnareCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

metatune :: Pattern Double -> ControlPattern Source #

A pattern of numbers. Specifies whether the pitch of played samples should be tuned relative to their pitch metadata, if it exists. When set to 1, pitch metadata is applied. When set to 0, pitch metadata is ignored.

metatuneTake :: String -> [Double] -> ControlPattern Source #

midibendTake :: String -> [Double] -> ControlPattern Source #

midichanTake :: String -> [Double] -> ControlPattern Source #

midicmdTake :: String -> [Double] -> ControlPattern Source #

miditouchTake :: String -> [Double] -> ControlPattern Source #

minutesTake :: String -> [Double] -> ControlPattern Source #

modwheelTake :: String -> [Double] -> ControlPattern Source #

mtransposeTake :: String -> [Double] -> ControlPattern Source #

n :: Pattern Note -> ControlPattern Source #

The note or sample number to choose for a synth or sampleset

nTake :: String -> [Double] -> ControlPattern Source #

nCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

note :: Pattern Note -> ControlPattern Source #

The note or pitch to play a sound or synth with

noteTake :: String -> [Double] -> ControlPattern Source #

noteCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

nudge :: Pattern Double -> ControlPattern Source #

Nudges events into the future by the specified number of seconds. Negative numbers work up to a point as well (due to internal latency)

nudgeTake :: String -> [Double] -> ControlPattern Source #

nudgeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

octaveTake :: String -> [Double] -> ControlPattern Source #

octaveCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

octaveRTake :: String -> [Double] -> ControlPattern Source #

octer :: Pattern Double -> ControlPattern Source #

octaver effect

octerTake :: String -> [Double] -> ControlPattern Source #

octerCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

octersub :: Pattern Double -> ControlPattern Source #

octaver effect

octersubTake :: String -> [Double] -> ControlPattern Source #

octersubsub :: Pattern Double -> ControlPattern Source #

octaver effect

octersubsubTake :: String -> [Double] -> ControlPattern Source #

offsetTake :: String -> [Double] -> ControlPattern Source #

offsetCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

ophatdecayTake :: String -> [Double] -> ControlPattern Source #

orbit :: Pattern Int -> ControlPattern Source #

a pattern of numbers. An "orbit" is a global parameter context for patterns. Patterns with the same orbit will share hardware output bus offset and global effects, e.g. reverb and delay. The maximum number of orbits is specified in the superdirt startup, numbers higher than maximum will wrap around.

orbitTake :: String -> [Double] -> ControlPattern Source #

orbitCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

overgainTake :: String -> [Double] -> ControlPattern Source #

overshapeTake :: String -> [Double] -> ControlPattern Source #

pan :: Pattern Double -> ControlPattern Source #

a pattern of numbers between 0 and 1, from left to right (assuming stereo), once round a circle (assuming multichannel)

panTake :: String -> [Double] -> ControlPattern Source #

panCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

panorient :: Pattern Double -> ControlPattern Source #

a pattern of numbers between -1.0 and 1.0, which controls the relative position of the centre pan in a pair of adjacent speakers (multichannel only)

panorientTake :: String -> [Double] -> ControlPattern Source #

panspan :: Pattern Double -> ControlPattern Source #

a pattern of numbers between -inf and inf, which controls how much multichannel output is fanned out (negative is backwards ordering)

panspanTake :: String -> [Double] -> ControlPattern Source #

pansplay :: Pattern Double -> ControlPattern Source #

a pattern of numbers between 0.0 and 1.0, which controls the multichannel spread range (multichannel only)

pansplayTake :: String -> [Double] -> ControlPattern Source #

panwidth :: Pattern Double -> ControlPattern Source #

a pattern of numbers between 0.0 and inf, which controls how much each channel is distributed over neighbours (multichannel only)

panwidthTake :: String -> [Double] -> ControlPattern Source #

partialsTake :: String -> [Double] -> ControlPattern Source #

phaserdepth :: Pattern Double -> ControlPattern Source #

Phaser Audio DSP effect | params are phaserrate and phaserdepth

phaserdepthTake :: String -> [Double] -> ControlPattern Source #

phaserrate :: Pattern Double -> ControlPattern Source #

Phaser Audio DSP effect | params are phaserrate and phaserdepth

phaserrateTake :: String -> [Double] -> ControlPattern Source #

pitch1Take :: String -> [Double] -> ControlPattern Source #

pitch1CountTo :: String -> Pattern Double -> Pattern ValueMap Source #

pitch2Take :: String -> [Double] -> ControlPattern Source #

pitch2CountTo :: String -> Pattern Double -> Pattern ValueMap Source #

pitch3Take :: String -> [Double] -> ControlPattern Source #

pitch3CountTo :: String -> Pattern Double -> Pattern ValueMap Source #

polyTouchTake :: String -> [Double] -> ControlPattern Source #

portamentoTake :: String -> [Double] -> ControlPattern Source #

progNumTake :: String -> [Double] -> ControlPattern Source #

rate :: Pattern Double -> ControlPattern Source #

used in SuperDirt softsynths as a control rate or "speed"

rateTake :: String -> [Double] -> ControlPattern Source #

rateCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

real :: Pattern Double -> ControlPattern Source #

Spectral conform

realTake :: String -> [Double] -> ControlPattern Source #

realCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

release :: Pattern Double -> ControlPattern Source #

a pattern of numbers to specify the release time (in seconds) of an envelope applied to each sample.

releaseTake :: String -> [Double] -> ControlPattern Source #

resonance :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter.

resonanceTake :: String -> [Double] -> ControlPattern Source #

ring :: Pattern Double -> ControlPattern Source #

ring modulation

ringTake :: String -> [Double] -> ControlPattern Source #

ringCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

ringdf :: Pattern Double -> ControlPattern Source #

ring modulation

ringdfTake :: String -> [Double] -> ControlPattern Source #

ringdfCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

ringf :: Pattern Double -> ControlPattern Source #

ring modulation

ringfTake :: String -> [Double] -> ControlPattern Source #

ringfCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

room :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Sets the level of reverb.

roomTake :: String -> [Double] -> ControlPattern Source #

roomCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

sagogoTake :: String -> [Double] -> ControlPattern Source #

sagogoCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

sclapTake :: String -> [Double] -> ControlPattern Source #

sclapCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

sclavesTake :: String -> [Double] -> ControlPattern Source #

scram :: Pattern Double -> ControlPattern Source #

Spectral scramble

scramTake :: String -> [Double] -> ControlPattern Source #

scramCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

scrashTake :: String -> [Double] -> ControlPattern Source #

scrashCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

secondsTake :: String -> [Double] -> ControlPattern Source #

semitoneTake :: String -> [Double] -> ControlPattern Source #

shape :: Pattern Double -> ControlPattern Source #

wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion.

shapeTake :: String -> [Double] -> ControlPattern Source #

shapeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

size :: Pattern Double -> ControlPattern Source #

a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the room to be used in reverb.

sizeTake :: String -> [Double] -> ControlPattern Source #

sizeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

slideTake :: String -> [Double] -> ControlPattern Source #

slideCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

slider0Take :: String -> [Double] -> ControlPattern Source #

slider1Take :: String -> [Double] -> ControlPattern Source #

slider10Take :: String -> [Double] -> ControlPattern Source #

slider11Take :: String -> [Double] -> ControlPattern Source #

slider12Take :: String -> [Double] -> ControlPattern Source #

slider13Take :: String -> [Double] -> ControlPattern Source #

slider14Take :: String -> [Double] -> ControlPattern Source #

slider15Take :: String -> [Double] -> ControlPattern Source #

slider2Take :: String -> [Double] -> ControlPattern Source #

slider3Take :: String -> [Double] -> ControlPattern Source #

slider4Take :: String -> [Double] -> ControlPattern Source #

slider5Take :: String -> [Double] -> ControlPattern Source #

slider6Take :: String -> [Double] -> ControlPattern Source #

slider7Take :: String -> [Double] -> ControlPattern Source #

slider8Take :: String -> [Double] -> ControlPattern Source #

slider9Take :: String -> [Double] -> ControlPattern Source #

smear :: Pattern Double -> ControlPattern Source #

Spectral smear

smearTake :: String -> [Double] -> ControlPattern Source #

smearCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

songPtrTake :: String -> [Double] -> ControlPattern Source #

speed :: Pattern Double -> ControlPattern Source #

A pattern of numbers which changes the speed of sample playback which also changes pitch. Negative values will play the sample backwards.

d1 $ slow 5 $ s "sax:5" # legato 1 # speed 0.5

This will play the sax:5 sample at half its rate. As a result, the sample will last twice the normal time, and will be pitched a whole octave lower. This is equivalent to d1 $ slow 5 $ s "sax:5" # legato 1 |- note 12.

d1 $ fast 2 $ s "breaks125:1" # cps (125/60/4) # speed (-2)

In the above example, the break (which lasts for exactly one bar at 125 BPM), will be played backwards, and at double speed (so, we use fast 2 to fill the whole cycle).

speedTake :: String -> [Double] -> ControlPattern Source #

speedCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

squizTake :: String -> [Double] -> ControlPattern Source #

squizCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

stepsPerOctaveTake :: String -> [Double] -> ControlPattern Source #

stutterdepthTake :: String -> [Double] -> ControlPattern Source #

stuttertimeTake :: String -> [Double] -> ControlPattern Source #

sustain :: Pattern Double -> ControlPattern Source #

A pattern of numbers that indicates the total duration of sample playback in seconds.

This sustain refers to the whole playback duration and is not to be confused with the sustain level of a typical ADSR envelope.

d1 $ fast 2 $ s "breaks125:1" # cps (120/60/4) # sustain 1

At 120 BPM, a cycle lasts for two seconds. In the above example, we cut the sample so it plays just for one second, and repeat this part two times, so we fill the whole cycle. Note that sample pitch isn’t modified.

d1 $ s "breaks125:2!3" # cps (120/60/4) # sustain "0.4 0.2 0.4" # begin "0 0 0.4"

Here, we take advantage that sustain receives a pattern to build a different break from the original sample.

sustainTake :: String -> [Double] -> ControlPattern Source #

sustainpedalTake :: String -> [Double] -> ControlPattern Source #

timescale :: Pattern Double -> ControlPattern Source #

timescale is the main function used to activate time-stretching, and usually the only one you need. It receives a single parameter which is the stretching rate to apply.

You can use any positive number as the ratio, but the particular method used is designed for ratios greater than 1, and work reasonably well for values between 0.1 and 3.

d1 $ slow 2 $ s "breaks152" # legato 1 # timescale (152/130) # cps (130/60/4)

In the example above, we set tempo at 130 beats per minute. But we want to play one of the breaks152 samples, which are, as indicated, at 152 BPM. So, the ratio we want is 152 over 130. This will slow down the sample to fit in our 130 BPM tempo.

timescaleTake :: String -> [Double] -> ControlPattern Source #

timescalewin :: Pattern Double -> ControlPattern Source #

Time stretch window size.

The algorithm used to time-stretch a sample divides a sample in many little parts, modifies them, and puts them all together again. It uses one particular parameter, called windowSize, which is the length of each sample part.

The windowSize value is automatically calculated, but can be changed with timescalewin. The windowSize value is multiplied by the number provided.

timescalewin can be used to improve the quality of time-stretching for some samples, or simply as an effect.

Consider the following two examples. In the first one, timescalewin 0.01 makes the window size a lot smaller, and the extreme chopping of the sample causes a rougher sound. In the second one, timescalewin 10 makes the chunks a lot bigger. The method used overlaps the treated chunks when recomposing the sample, and, with the bigger window size, this overlap is noticeable and causes a kind of delay effect.

d1 $ slow 2
   $ s "breaks152"
   # legato 1
   # timescale (152/130)
   # timescalewin 0.01
   # cps (130/60/4)
d1 $ slow 2
   $ s "breaks152"
   # legato 1
   # timescale (152/130)
   # timescalewin 10
   # cps (130/60/4)

timescalewinTake :: String -> [Double] -> ControlPattern Source #

to :: Pattern Double -> ControlPattern Source #

for internal sound routing

toTake :: String -> [Double] -> ControlPattern Source #

toCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

toArg :: Pattern String -> ControlPattern Source #

for internal sound routing

toArgTake :: String -> [Double] -> ControlPattern Source #

tomdecayTake :: String -> [Double] -> ControlPattern Source #

tremolodepth :: Pattern Double -> ControlPattern Source #

Tremolo Audio DSP effect | params are tremolorate and tremolodepth

tremolodepthTake :: String -> [Double] -> ControlPattern Source #

tremolorate :: Pattern Double -> ControlPattern Source #

Tremolo Audio DSP effect | params are tremolorate and tremolodepth

tremolorateTake :: String -> [Double] -> ControlPattern Source #

triode :: Pattern Double -> ControlPattern Source #

tube distortion

triodeTake :: String -> [Double] -> ControlPattern Source #

triodeCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

tsdelayTake :: String -> [Double] -> ControlPattern Source #

uidTake :: String -> [Double] -> ControlPattern Source #

uidCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

unit :: Pattern String -> ControlPattern Source #

Used in conjunction with speed. It accepts values of r (rate, default behavior), c (cycles), or s (seconds). Using unit "c" means speed will be interpreted in units of cycles, e.g. speed "1" means samples will be stretched to fill a cycle. Using unit "s" means the playback speed will be adjusted so that the duration is the number of seconds specified by speed.

In the following example, speed 2 means that samples will be stretched to fill half a cycle:

d1 $ stack [
  s "sax:5" # legato 1 # speed 2 # unit "c",
  s "bd*2"
]

unitTake :: String -> [Double] -> ControlPattern Source #

valTake :: String -> [Double] -> ControlPattern Source #

valCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

vcfegintTake :: String -> [Double] -> ControlPattern Source #

vcoegintTake :: String -> [Double] -> ControlPattern Source #

velocityTake :: String -> [Double] -> ControlPattern Source #

voiceTake :: String -> [Double] -> ControlPattern Source #

voiceCountTo :: String -> Pattern Double -> Pattern ValueMap Source #

vowel :: Pattern String -> ControlPattern Source #

formant filter to make things sound like vowels, a pattern of either a, e, i, o or u. Use a rest (~) for no effect.

vowelTake :: String -> [Double] -> ControlPattern Source #

wavelossTake :: String -> [Double] -> ControlPattern Source #

xsdelayTake :: String -> [Double] -> ControlPattern Source #

Aliases