Safe Haskell | None |
---|---|
Language | Haskell98 |
In general, synth parameters specify patterns of sounds, and patterns of effects on those sounds. These are the synthesis parameters you can use with the default Dirt synth:
- sound :: Pattern String -> ParamPattern
- grp :: [Param] -> Pattern String -> ParamPattern
- accelerate :: Pattern Double -> ParamPattern
- bandf :: Pattern Double -> ParamPattern
- bandq :: Pattern Double -> ParamPattern
- begin :: Pattern Double -> ParamPattern
- channel :: Pattern Int -> ParamPattern
- coarse :: Pattern Int -> ParamPattern
- crush :: Pattern Double -> ParamPattern
- cut :: Pattern Int -> ParamPattern
- cutoff :: Pattern Double -> ParamPattern
- cutoffegint :: Pattern Double -> ParamPattern
- delay :: Pattern Double -> ParamPattern
- delayfeedback :: Pattern Double -> ParamPattern
- delaytime :: Pattern Double -> ParamPattern
- detune :: Pattern Double -> ParamPattern
- dry :: Pattern Double -> ParamPattern
- end :: Pattern Double -> ParamPattern
- gain :: Pattern Double -> ParamPattern
- hcutoff :: Pattern Double -> ParamPattern
- hresonance :: Pattern Double -> ParamPattern
- loop :: Pattern Int -> ParamPattern
- n :: Pattern Int -> ParamPattern
- nudge :: Pattern Double -> ParamPattern
- offset :: Pattern Double -> ParamPattern
- orbit :: Pattern Int -> ParamPattern
- pan :: Pattern Double -> ParamPattern
- resonance :: Pattern Double -> ParamPattern
- room :: Pattern Double -> ParamPattern
- shape :: Pattern Double -> ParamPattern
- size :: Pattern Double -> ParamPattern
- speed :: Pattern Double -> ParamPattern
- s :: Pattern String -> ParamPattern
- unit :: Pattern String -> ParamPattern
- velocity :: Pattern Double -> ParamPattern
- vowel :: Pattern String -> ParamPattern
Documentation
sound :: Pattern String -> ParamPattern #
accelerate :: Pattern Double -> ParamPattern #
a pattern of numbers that speed up (or slow down) samples while they play.
bandf :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the center frequency of the band-pass filter.
bandq :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the q-factor of the band-pass filter.
begin :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Skips the beginning of each sample, e.g. `0.25` to cut off the first quarter from each sample.
Using `begin "-1"` combined with `cut "-1"` means that when the sample cuts itself it will begin playback from where the previous one left off, so it will sound like one seamless sample. This allows you to apply a synth param across a long sample in a way similar to chop
:
cps 0.5 d1 $ sound "breaks125*8" begin "-1" coarse "1 2 4 8 16 32 64 128"
This will play the breaks125
sample and apply the changing coarse
parameter over the sample. Compare to:
d1 $ (chop 8 $ sounds "breaks125") coarse "1 2 4 8 16 32 64 128"
which performs a similar effect, but due to differences in implementation sounds different.
channel :: Pattern Int -> ParamPattern #
choose the physical channel the pattern is sent to, this is super dirt specific
coarse :: Pattern Int -> ParamPattern #
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.
crush :: Pattern Double -> ParamPattern #
bit crushing, a pattern of numbers from 1 (for drastic reduction in bit-depth) to 16 (for barely no reduction).
cut :: Pattern Int -> ParamPattern #
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.
d1 $ stack [ sound "bd", sound "~ [~ [ho:2 hc/2]]" # cut "1" ]
This will mute the open hi-hat every second cycle when the closed one is played.
Using cut
with negative values will only cut the same sample. This is useful to cut very long samples
d1 $ sound "bev, [ho:3]" # cut "-1"
Using `cut "0"` is effectively _no_ cutgroup.
cutoff :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Applies the cutoff frequency of the low-pass filter.
cutoffegint :: Pattern Double -> ParamPattern #
delay :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the level of the delay signal.
delayfeedback :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the amount of delay feedback.
delaytime :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the length of the delay.
detune :: Pattern Double -> ParamPattern #
dry :: Pattern Double -> ParamPattern #
end :: Pattern Double -> ParamPattern #
gain :: Pattern Double -> ParamPattern #
a pattern of numbers that specify volume. Values less than 1 make the sound quieter. Values greater than 1 make the sound louder.
hcutoff :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Applies the cutoff frequency of the high-pass filter.
hresonance :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Applies the resonance of the high-pass filter.
loop :: Pattern Int -> ParamPattern #
n :: Pattern Int -> ParamPattern #
specifies the sample variation to be used
nudge :: Pattern Double -> ParamPattern #
Pushes things forward (or backwards within built-in latency) in time. Allows for nice things like _swing_ feeling:
d1 $ stack [ sound "bd bd/4", sound "hh(5,8)" ] # nudge "[0 0.04]*4"
Low values will give a more _human_ feeling, high values might result in quite the contrary.
offset :: Pattern Double -> ParamPattern #
orbit :: Pattern Int -> ParamPattern #
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.
pan :: Pattern Double -> ParamPattern #
a pattern of numbers between 0 and 1, from left to right (assuming stereo).
resonance :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Specifies the resonance of the low-pass filter.
room :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the level of reverb.
shape :: Pattern Double -> ParamPattern #
wave shaping distortion, a pattern of numbers from 0 for no distortion up to 1 for loads of distortion.
size :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1. Sets the perceptual size (reverb time) of the room
to be used in reverb.
speed :: Pattern Double -> ParamPattern #
a pattern of numbers from 0 to 1, which changes the speed of sample playback, i.e. a cheap way of changing pitch
s :: Pattern String -> ParamPattern #
a pattern of strings. Selects the sample to be played.
unit :: Pattern String -> ParamPattern #
only accepts a value of "c". Used in conjunction with speed
, it time-stretches a sample to fit in a cycle.
velocity :: Pattern Double -> ParamPattern #