csound-expression-4.9.1: library to make electronic music

Safe Haskell None Haskell98

Csound.Air.Hvs

Description

Hyper vectorial synthesis

Synopsis

# Documentation

type HvsSnapshot = [Double] Source

Hvs vector

type HvsMatrix1 = [HvsSnapshot] Source

1D matrix

type HvsMatrix2 = [HvsMatrix1] Source

2D matrix (grid of vecotrs)

type HvsMatrix3 = [HvsMatrix2] Source

3D matrix (cube of vectors)

hvs1 :: HvsMatrix1 -> Sig -> SE [Sig] Source

One dimensional Hyper vectorial synthesis. We can provide a list of vectors (of lists but the same length for all items is assumed) and a signal that ranges from 0 to 1. It interpolates between vectors in the list. As a result we get a n interpolated vector. It's a list but the actual length equals to the length of input vectors.

An example. We can set the center frequency and resonance of the filter with the single parameter:

```let f = hvs1 [[100, 0.1], [300, 0.1], [600, 0.5], [800, 0.9]]
dac \$ lift1 (\x -> fmap (\[cps, q] -> mlp cps q (saw 110)) \$ f x) (uknob 0.5)```

Notice the exact pattern match with the list in the argument of the lambda function:

`\[cps, q] -> mlp cps q (saw 110)) \$ f x`

It's determined by the length of the items in the input list.

hvs2 :: HvsMatrix2 -> Sig2 -> SE [Sig] Source

Two dimensional Hyper vectorial synthesis. Now we provide a list of lists of vectors. The length of all vectors should be the same but there is no limit for the number! So that's how we can control a lot of parameters with pair of signals. The input 2D atrix is the grid of samples. It finds the closest four points in the grid and interpolates between them (it's a weighted sum).

`hvs2 matrix (x, y)`

The usage is the same as in the case of `hvs1`. An example:

```g = hvs2 [[[100, 0.1, 0.3], [800, 0.1, 0.5], [1400, 0.1, 0.8]],
[[100, 0.5, 0.3], [800, 0.5, 0.5], [1400, 0.5, 0.8]],
[[100, 0.8, 0.3], [800, 0.8, 0.5], [1400, 0.8, 0.8]]]

main = dac \$ do
(g1, kx) <- uknob 0.5
(g2, ky) <- uknob 0.5
[cfq, q, w] <- g (kx, ky)
panel \$ hor [g1, g2]
at (mlp cfq q) \$ fmap (cfd w (saw 110)) (white)```

hvs3 :: HvsMatrix3 -> Sig3 -> SE [Sig] Source

The three dimensional

Csound functions

csdHvs1 :: Sig -> D -> D -> Tab -> Tab -> Tab -> SE () Source

Allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.

hvs1 allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.

` hvs1  kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]`

csound doc: http://www.csounds.com/manual/html/hvs1.html

csdHvs2 :: Sig -> Sig -> D -> D -> D -> Tab -> Tab -> Tab -> SE () Source

Allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.

hvs2 allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.

` hvs2  kx, ky, inumParms, inumPointsX, inumPointsY, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]`

csound doc: http://www.csounds.com/manual/html/hvs2.html

csdHvs3 :: Sig -> Sig -> Sig -> D -> D -> D -> D -> Tab -> Tab -> Tab -> SE () Source

Allows three-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.

hvs3 allows three-dimensional Hyper Vectorial Synthesis (HVS) controlled by externally-updated k-variables.

` hvs3  kx, ky, kz, inumParms, inumPointsX, inumPointsY, inumPointsZ, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]`

csound doc: http://www.csounds.com/manual/html/hvs3.html