Safe Haskell | None |
---|---|
Language | Haskell98 |
UIs for live performances
- mixer :: [(String, SE Sig2)] -> Source Sig2
- hmixer :: [(String, SE Sig2)] -> Source Sig2
- mixMono :: String -> Sig -> (String, SE Sig2)
- type FxFun = Sig2 -> SE Sig2
- class FxUI a where
- fxBox :: FxUI a => String -> a -> Bool -> [(String, Double)] -> Source FxFun
- fxColor :: Color -> Source a -> Source a
- fxVer :: [Source FxFun] -> Source FxFun
- fxHor :: [Source FxFun] -> Source FxFun
- fxSca :: Double -> Source FxFun -> Source FxFun
- fxApp :: FxFun -> Source FxFun -> Source FxFun
- uiDistort :: Bool -> Double -> Double -> Double -> Source FxFun
- uiChorus :: Bool -> Double -> Double -> Double -> Double -> Source FxFun
- uiFlanger :: Bool -> Double -> Double -> Double -> Double -> Double -> Source FxFun
- uiPhaser :: Bool -> Double -> Double -> Double -> Double -> Double -> Source FxFun
- uiDelay :: Bool -> Double -> Double -> Double -> Double -> Source FxFun
- uiEcho :: Bool -> D -> Double -> Double -> Source FxFun
- uiFilter :: Bool -> Double -> Double -> Double -> Source FxFun
- uiReverb :: Bool -> Double -> Double -> Source FxFun
- uiGain :: Bool -> Double -> Source FxFun
- uiWhite :: Bool -> Double -> Double -> Source FxFun
- uiPink :: Bool -> Double -> Double -> Source FxFun
- uiFx :: FxUI a => String -> a -> Bool -> Source FxFun
- uiRoom :: Bool -> Source FxFun
- uiHall :: Bool -> Source FxFun
- uiCave :: Bool -> Source FxFun
- uiSig :: String -> Bool -> Source Sig2 -> Source FxFun
- uiMix :: Bool -> [(String, SE Sig2)] -> Source FxFun
- data AdsrBound = AdsrBound {}
- data AdsrInit = AdsrInit {}
- linAdsr :: String -> AdsrBound -> AdsrInit -> Source Sig
- expAdsr :: String -> AdsrBound -> AdsrInit -> Source Sig
- classicWaves :: String -> Int -> Source (Sig -> Sig)
- masterVolume :: Source Sig
- masterVolumeKnob :: Source Sig
Mixer
hmixer :: [(String, SE Sig2)] -> Source Sig2 Source
Widget that represents a mixer with horizontal grouping of elements.
mixMono :: String -> Sig -> (String, SE Sig2) Source
Transforms the mono signal to the stereo input for the mixer widget.
Effects
fxBox :: FxUI a => String -> a -> Bool -> [(String, Double)] -> Source FxFun Source
Creates a widget that represents a stereo signal processing function. The parameters of the widget are updated with sliders. For example let's create a simple gain widget. It can be encoded like this:
uiGain :: Bool -> Double -> Source FxFun uiGain isOn gain = fxBox "Gain" fx isOn [("gain", gain)] where fx :: Sig -> Sig2 -> Sig2 fx = mul
Let's look at the arguments of the function
fxBox name fx isOn args
name
-- is the name of the widgetfx
-- is signal processing function (see the classFxUI
).isOn
-- whether widget in the active stateargs
-- list of initial values for arguments and names of the arguments.
It's cool to set the color of the widget with fxColor
function.
we can make our widgets much more intersting to look at.
fxVer :: [Source FxFun] -> Source FxFun Source
Groups the signal processing widgets. The functions are composed the visuals are grouped verticaly.
fxHor :: [Source FxFun] -> Source FxFun Source
Groups the signal processing widgets. The functions are composed the visuals are grouped horizontaly.
fxApp :: FxFun -> Source FxFun -> Source FxFun Source
Applies a function to a signal processing function.
Fx units
uiDistort :: Bool -> Double -> Double -> Double -> Source FxFun Source
The distortion widget. The arguments are
uiDistort isOn levelOfDistortion drive tone
uiChorus :: Bool -> Double -> Double -> Double -> Double -> Source FxFun Source
The chorus widget. The arguments are
uiChorus isOn mix rate depth width
uiFlanger :: Bool -> Double -> Double -> Double -> Double -> Double -> Source FxFun Source
The flanger widget. The arguments are
uiFlanger isOn mix feedback rate depth delay
uiPhaser :: Bool -> Double -> Double -> Double -> Double -> Double -> Source FxFun Source
The phaser widget. The arguments are
uiPhaser isOn mix feedback rate depth frequency
uiDelay :: Bool -> Double -> Double -> Double -> Double -> Source FxFun Source
The delay widget. The arguments are
uiDelay isOn mix feedback delayTime tone
uiEcho :: Bool -> D -> Double -> Double -> Source FxFun Source
The simplified delay widget. The arguments are
uiEcho isOn maxDelayTime delayTime feedback
uiFilter :: Bool -> Double -> Double -> Double -> Source FxFun Source
The pair of low and high pass filters
uiFilter isOn lowPassfrequency highPassFrequency gain
uiReverb :: Bool -> Double -> Double -> Source FxFun Source
The reverb widget. The arguments are:
uiReverb mix depth
uiGain :: Bool -> Double -> Source FxFun Source
The gain widget. The arguments are
uiGain isOn amountOfGain
uiWhite :: Bool -> Double -> Double -> Source FxFun Source
The filtered white noize widget. The arguments are
uiWhite isOn centerFreqOfFilter amountOfNoize
uiPink :: Bool -> Double -> Double -> Source FxFun Source
The filtered pink noize widget. The arguments are
uiPink isOn centerFreqOfFilter amountOfNoize
uiFx :: FxUI a => String -> a -> Bool -> Source FxFun Source
The constructor for signal processing functions with no arguments (controlls).
uiSig :: String -> Bool -> Source Sig2 -> Source FxFun Source
the widget for mixing in a signal to the signal.
uiMix :: Bool -> [(String, SE Sig2)] -> Source FxFun Source
A mixer widget represented as an effect. The effect sums the signals with given wieghts.
Static widgets
classicWaves :: String -> Int -> Source (Sig -> Sig) Source
A widget with four standard waveforms: pure tone, triangle, square and sawtooth. The last parameter is a default waveform (it's set at init time).
masterVolume :: Source Sig Source
Slider for master volume
masterVolumeKnob :: Source Sig Source
Knob for master volume