- b_alloc :: Int -> Int -> OSC
- g_load :: Int -> String -> OSC
- g_unload :: Int -> OSC
- with_jack_dl :: (UDP -> IO a) -> IO a
- audition :: [OSC] -> Node -> IO ()
- code_gen :: Node -> String
- dl_gen :: FilePath -> Node -> IO ()
- view :: Node -> IO ()
- nodes :: Node -> [Node]
- label :: [(NodeID, Node)] -> Node -> NodeID
- source :: [(NodeID, Node)] -> Node -> (NodeID, PortID)
- type Edge = ((NodeID, PortID), (NodeID, PortID))
- edges :: [(NodeID, Node)] -> Node -> [Edge]
- analyse :: [Node] -> [((NodeID, Node), [Edge])]
- mod_e :: Edge -> (NodeID, NodeID, (PortID, PortID))
- graph :: Node -> Gr Node (PortID, PortID)
- tsort :: Node -> [Node]
- data R_ID = R_ID Int
- data Type
- data Constant
- data Port = Port {
- port_data_type :: Type
- port_tokens :: Int
- data Node
- type NodeID = Int
- type PortID = Int
- mrg :: Node -> Node -> Node
- constant_type :: Constant -> Type
- node_type :: Node -> Type
- n_real_constant :: Double -> Node
- n_integer_constant :: Int -> Node
- numerical_unary_operator :: String -> Node -> Node
- numerical_binary_operator :: String -> Node -> Node -> Node
- real_unary_operator :: String -> Node -> Node
- real_binary_operator :: String -> Node -> Node -> Node
- n_add :: Node -> Node -> Node
- n_mul :: Node -> Node -> Node
- n_sub :: Node -> Node -> Node
- n_negate :: Node -> Node
- n_abs :: Node -> Node
- n_signum :: Node -> Node
- n_div :: Node -> Node -> Node
- n_recip :: Node -> Node
- n_exp :: Node -> Node
- n_sqrt :: Node -> Node
- n_log :: Node -> Node
- n_pow :: Node -> Node -> Node
- n_sin :: Node -> Node
- n_cos :: Node -> Node
- n_tan :: Node -> Node
- numerical_comparison_operator :: String -> Node -> Node -> Node
- n_lt :: Node -> Node -> Node
- n_gte :: Node -> Node -> Node
- n_gt :: Node -> Node -> Node
- n_lte :: Node -> Node -> Node
- n_max :: Node -> Node -> Node
- n_min :: Node -> Node -> Node
- n_floor :: Node -> Node
- n_lrint :: Node -> Node
- class Monad m => ID m where
- generateID :: m Int
- rec_r :: R_ID -> Constant -> (Node -> (Node, Node)) -> Node
- rec :: ID m => Constant -> (Node -> (Node, Node)) -> m Node
- recm :: ID m => Constant -> (Node -> m (Node, Node)) -> m Node
- uniform_operator :: Type -> Int -> String -> [Node] -> Node
- out1 :: Node -> Node
- out2 :: (Node, Node) -> Node
- out3 :: (Node, Node, Node) -> Node
- sample_rate :: Node
- eq :: Node -> Node -> Node
- select2 :: Node -> Node -> Node -> Node
- logical_operator :: String -> Node -> Node -> Node
- n_and :: Node -> Node -> Node
- n_or :: Node -> Node -> Node
- b_read :: Node -> Node -> Node
- b_write :: Node -> Node -> Node -> Node
- white_noise_u :: Node -> Node
- pan2 :: Node -> Node -> (Node, Node)
- swap :: a -> b -> (b, a)
- split :: a -> (a, a)
- unit_delay :: ID m => Constant -> Node -> m Node
- iir1 :: ID m => Constant -> (Node -> Node -> Node) -> Node -> m Node
- iir2 :: ID m => (Node -> Node -> Node -> Node) -> Node -> m Node
- fir1 :: ID m => (Node -> Node -> Node) -> Node -> m Node
- fir2 :: ID m => (Node -> Node -> Node -> Node) -> Node -> m Node
- biquad :: ID m => (Node -> Node -> Node -> Node -> Node -> Node) -> Node -> m Node
- counter :: ID m => Constant -> Node -> m Node
- radians_per_sample :: Node
- hz_to_incr :: Node -> Node -> Node -> Node
- two_pi :: Floating a => a
- clipr :: Node -> Node -> Node
- phasor :: ID m => Constant -> Node -> Node -> m Node
- sin_osc :: ID m => Node -> Double -> m Node
- lf_saw :: ID m => Node -> Double -> m Node
- lf_pulse :: ID m => Node -> Double -> Node -> m Node
- midi_cps :: Floating a => a -> a
- mul_add :: Num a => a -> a -> a -> a
- calc_fb :: Floating a => a -> a -> a
- delay :: ID m => Node -> Node -> Node -> m Node
- buf_comb_n :: ID m => Node -> Node -> Node -> Node -> m Node
- rlpf :: ID m => Node -> Node -> Node -> m Node
- clip2 :: Node -> Node -> Node
- white_noise :: Node -> Node
- white_noise_m :: ID m => m Node
- brown_noise_m :: ID m => m Node
- bpz2 :: ID m => Node -> m Node
- brz2 :: ID m => Node -> m Node
- lpz1 :: ID m => Node -> m Node
- lpz2 :: ID m => Node -> m Node
- one_pole :: ID m => Node -> Node -> m Node
- one_zero :: ID m => Node -> Node -> m Node
- sos :: ID m => Node -> Node -> Node -> Node -> Node -> Node -> m Node
- impulse :: ID m => Node -> Double -> m Node
- resonz :: ID m => Node -> Node -> Node -> m Node
- latch :: ID m => Node -> Node -> m Node
- lin_lin :: Fractional a => a -> a -> a -> a -> a -> a
- lin_exp :: Floating a => a -> a -> a -> a -> a -> a
- decay :: ID m => Node -> Node -> m Node
- decay2 :: ID m => Node -> Node -> Node -> m Node
- delay1 :: ID m => Node -> m Node
- delay2 :: ID m => Node -> m Node
- lag :: ID m => Node -> Node -> m Node
- lag2 :: ID m => Node -> Node -> m Node
- lag3 :: ID m => Node -> Node -> m Node
Interaction with jack.dl server
with_jack_dl :: (UDP -> IO a) -> IO aSource
Run action with UDP link to jack.dl.
C code generator
dl_gen :: FilePath -> Node -> IO ()Source
Generate C code, write file disk and call GNU C compiler to build shared library.
Graph drawing
Graph analysis
source :: [(NodeID, Node)] -> Node -> (NodeID, PortID)Source
Transform node to source, see through rec_r and proxy and mrg.
analyse :: [Node] -> [((NodeID, Node), [Edge])]Source
Label nodes and list edges. Proxy and multiple-root nodes are erased.
The Node data type
Enumeration of types of data on ports.
Constant values.
Querying data type on ports
constant_type :: Constant -> TypeSource
Type of a constant value.
Numeric primitives for class instances
n_real_constant :: Double -> NodeSource
Lift constant to node.
n_integer_constant :: Int -> NodeSource
Lift constant to node.
numerical_unary_operator :: String -> Node -> NodeSource
Unary operator over Real and Integer values.
numerical_binary_operator :: String -> Node -> Node -> NodeSource
Binary operator over Real and Integer values.
real_unary_operator :: String -> Node -> NodeSource
Unary operator over Real values.
numerical_comparison_operator :: String -> Node -> Node -> NodeSource
Operator from Real or Integer values to a Boolean value.
Class of monads generating identifers
Backward arcs
rec_r :: R_ID -> Constant -> (Node -> (Node, Node)) -> NodeSource
Introduce backward arc with implicit unit delay.
recm :: ID m => Constant -> (Node -> m (Node, Node)) -> m NodeSource
Variant or rec with monadic action in backward arc.
Primitive unit generators
Operating sample rate.
white_noise_u :: Node -> NodeSource
White noise (0, 1).
Ordinary unit generators
unit_delay :: ID m => Constant -> Node -> m NodeSource
Single sample delay with indicated initial value.
iir1 :: ID m => Constant -> (Node -> Node -> Node) -> Node -> m NodeSource
Single place infinte impulse response filter with indicated initial value.
iir2 :: ID m => (Node -> Node -> Node -> Node) -> Node -> m NodeSource
Two place infinte impulse response filter.
fir1 :: ID m => (Node -> Node -> Node) -> Node -> m NodeSource
Single place finte impulse response filter.
fir2 :: ID m => (Node -> Node -> Node -> Node) -> Node -> m NodeSource
Two place finte impulse response filter.
biquad :: ID m => (Node -> Node -> Node -> Node -> Node -> Node) -> Node -> m NodeSource
Ordinary biquad filter section.
radians_per_sample :: NodeSource
Environment value, equal to
.
two_pi
/ sample_rate
hz_to_incr :: Node -> Node -> Node -> NodeSource
r = cycle (two-pi), hz = frequency, sr = sample rate
phasor :: ID m => Constant -> Node -> Node -> m NodeSource
r = right hand edge, ip = initial phase, x = increment
lf_pulse :: ID m => Node -> Double -> Node -> m NodeSource
Non-band limited pulse oscillator, w = width (0,1).
rlpf :: ID m => Node -> Node -> Node -> m NodeSource
Resonant low pass filter, f = frequency, r = resonance.
white_noise :: Node -> NodeSource
White noise (-1, 1).
white_noise_m :: ID m => m NodeSource
White noise (-1, 1).
brown_noise_m :: ID m => m NodeSource
Brown noise (-1, 1).
sos :: ID m => Node -> Node -> Node -> Node -> Node -> Node -> m NodeSource
Second order filter section.
lin_lin :: Fractional a => a -> a -> a -> a -> a -> aSource
Linear range conversion.