-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Csound combinator library
--
-- Csound code generator. See root module CsoundExpr for
-- introduction guides. Score module is no longer availible inside
-- 'csound-expression' package, consider using 'temporal-media' or
-- 'temporal-music-notation' packages.
@package csound-expression
@version 0.3.0
-- | Functions to add your own opcodes or operations
--
-- Constructor takes in String and list of CsTree's. String
-- represnts name of opcode/operation for rendering to csd file.
-- CsTree is an inner type of csound expression. Any type
-- a that belongs to IM CsTree a can be
-- converted to CsTree with to method.
module CsoundExpr.Base.UserDefined
class IM a b
from :: IM a b => a -> b
to :: IM a b => b -> a
-- | Opr2 a b - defines output type of binary
-- arithmetic operator
--
--
-- type instance Opr2 Irate Irate = Irate
-- type instance Opr2 Irate Krate = Krate
-- type instance Opr2 Irate Arate = Arate
--
--
--
-- type instance Opr2 Krate Irate = Krate
-- type instance Opr2 Krate Krate = Krate
-- type instance Opr2 Krate Arate = Arate
--
--
--
-- type instance Opr2 Arate Irate = Arate
-- type instance Opr2 Arate Krate = Arate
-- type instance Opr2 Arate Arate = Arate
--
-- | Opcode constructor
--
-- Example :
--
--
-- ares oscil xamp, xcps, ift, [iphs]
-- kres oscil kamp, kcps, ift, [iphs]
--
--
--
-- oscilA :: (X a0, X a1) => [Irate] -> a0 -> a1 -> Irate -> Arate
-- oscilA inits xamp xcps ift = opcode "oscil" args
-- where args = [to xamp, to xcps, to ift] ++ map to inits
--
--
--
-- oscilK :: (K a0, K a1) => [Irate] -> a0 -> a1 -> Irate -> Krate
-- oscilK inits kamp kcps ift = opcode "oscil" args
-- where args = [to kamp, to kcps, to ift] ++ map to inits
--
--
--
-- ares noise xamp, kbeta
--
--
--
-- noise :: (X a, K b) => a -> b -> SideEffect Ares
-- noise xamp kbeta = opcode "noise" args
-- where args = [to xamp, to kbeta]
--
opcode :: IM CsTree a => String -> [CsTree] -> a
-- | Constructor for opcode that doesn't produce any value
--
-- Example :
--
--
-- outs asig1, asig2
--
--
--
-- outs :: Arate -> Arate -> SignalOut
-- outs asig1 asig2 = outOpcode "outs" args
-- where args = [to asig1, to asig2]
--
outOpcode :: String -> [CsTree] -> SignalOut
-- | operation constructor
--
-- names can be anywhere between arguments
--
--
-- operation names args
--
--
-- in csound code becomes
--
--
-- names !! 0 ++ show (args !! 0) ++ names !! 1 ++ show (args !! 1) ++ ...
--
operation :: IM CsTree a => [String] -> [CsTree] -> a
-- | Infix operation constructor
--
-- Example :
--
--
-- xres = xsig1 + xsig2
--
--
--
-- add :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
-- add a b = infixOperation "+" [to a, to b]
--
infixOperation :: IM CsTree a => String -> [CsTree] -> a
-- | Prefix operation constructor
--
-- Example :
--
--
-- xres = sin(xsig)
--
--
--
-- csSin :: X a => a -> a
-- csSin a = prefixOperation "sin" [to a]
--
prefixOperation :: IM CsTree a => String -> [CsTree] -> a
unaryInfixOperation :: IM CsTree a => String -> CsTree -> a
-- | Functions to write imperative style csound code
module CsoundExpr.Base.Imperative
-- | Join several output opcodes
--
-- Example :
--
--
-- instr q
-- a1 upsamp 1
-- out a1
-- gaSig = a1
-- endin
--
--
--
-- q = outList [out x, gar "Sig" <=> x]
-- where x = upsamp $ num 1
--
outList :: [SignalOut] -> SignalOut
ar :: Name -> Arate
kr :: Name -> Krate
ir :: Name -> Irate
gar :: Name -> Arate
gkr :: Name -> Krate
gir :: Name -> Irate
class Assign a
(<=>) :: Assign a => a -> a -> SignalOut
instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7) => Assign (a0, a1, a2, a3, a4, a5, a6, a7)
instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6) => Assign (a0, a1, a2, a3, a4, a5, a6)
instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5) => Assign (a0, a1, a2, a3, a4, a5)
instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4) => Assign (a0, a1, a2, a3, a4)
instance (Assign a0, Assign a1, Assign a2, Assign a3) => Assign (a0, a1, a2, a3)
instance (Assign a0, Assign a1, Assign a2) => Assign (a0, a1, a2)
instance (Assign a0, Assign a1) => Assign (a0, a1)
instance Assign a => Assign [a]
instance Assign Irate
instance Assign Krate
instance Assign Arate
-- | replica of Data.Boolean module. Booleans for csound signals
module CsoundExpr.Base.Boolean
-- | boolean signal. Type for comparison of control or init rate signals.
data BoolRate
true :: BoolRate
false :: BoolRate
notB :: BoolRate -> BoolRate
(&&*) :: BoolRate -> BoolRate -> BoolRate
(||*) :: BoolRate -> BoolRate -> BoolRate
(==*) :: (K a, K b) => a -> b -> BoolRate
(/=*) :: (K a, K b) => a -> b -> BoolRate
(<*) :: (K a, K b) => a -> b -> BoolRate
(>*) :: (K a, K b) => a -> b -> BoolRate
(<=*) :: (K a, K b) => a -> b -> BoolRate
(>=*) :: (K a, K b) => a -> b -> BoolRate
ifB :: X a => BoolRate -> a -> a -> a
minB :: K a => a -> a -> a
maxB :: K a => a -> a -> a
cond :: (Applicative f, K a) => f BoolRate -> f a -> f a -> f a
crop :: (Applicative f, Monoid (f a), K a) => f BoolRate -> f a -> f a
module CsoundExpr.Base.Types
-- | X = Arate | Krate | Irate
class (IM CsTree a, MO a) => X a
arate :: X a => a -> Arate
krate :: X a => a -> Krate
irate :: X a => a -> Irate
-- | K = Krate | Irate
class X a => K a
-- | audio signal
data Arate
-- | control signal
data Krate
-- | init variable
data Irate
-- | Output of opcodes that produce no value in csound code (out, outs,
-- xtratim, etc.)
data SignalOut
-- | p2 p-field
itime :: Irate
-- | p3 p-field
idur :: Irate
-- | auxiliary function, to write (num n) instead of (n :: Irate)
num :: Irate -> Irate
-- | Lift Double to Irate
double :: Double -> Irate
-- | Lift String to Irate
string :: String -> Irate
instance Show SignalOut
instance Show Irate
instance Show Krate
instance Show Arate
-- | Multiple Out
module CsoundExpr.Base.MultiOut
data MultiOut
-- | extracts list of values
mo :: X a => Int -> MultiOut -> [a]
moA :: Int -> MultiOut -> [Arate]
moK :: Int -> MultiOut -> [Krate]
moI :: Int -> MultiOut -> [Irate]
mo1 :: X a0 => MultiOut -> (a0)
mo2 :: (X a0, X a1) => MultiOut -> (a0, a1)
mo3 :: (X a0, X a1, X a2) => MultiOut -> (a0, a1, a2)
mo4 :: (X a0, X a1, X a2, X a3) => MultiOut -> (a0, a1, a2, a3)
mo5 :: (X a0, X a1, X a2, X a3, X a4) => MultiOut -> (a0, a1, a2, a3, a4)
mo6 :: (X a0, X a1, X a2, X a3, X a4, X a5) => MultiOut -> (a0, a1, a2, a3, a4, a5)
mo7 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6)
mo8 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7)
moA1 :: MultiOut -> (Arate)
moA2 :: MultiOut -> (Arate, Arate)
moA3 :: MultiOut -> (Arate, Arate, Arate)
moA4 :: MultiOut -> (Arate, Arate, Arate, Arate)
moA6 :: MultiOut -> (Arate, Arate, Arate, Arate, Arate, Arate)
moA8 :: MultiOut -> (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate)
moK1 :: MultiOut -> (Krate)
moK2 :: MultiOut -> (Krate, Krate)
moK3 :: MultiOut -> (Krate, Krate, Krate)
moK4 :: MultiOut -> (Krate, Krate, Krate, Krate)
moK6 :: MultiOut -> (Krate, Krate, Krate, Krate, Krate, Krate)
moK8 :: MultiOut -> (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate)
moI1 :: MultiOut -> (Irate)
moI2 :: MultiOut -> (Irate, Irate)
moI3 :: MultiOut -> (Irate, Irate, Irate)
moI4 :: MultiOut -> (Irate, Irate, Irate, Irate)
moI6 :: MultiOut -> (Irate, Irate, Irate, Irate, Irate, Irate)
moI8 :: MultiOut -> (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate)
instance IM CsTree MultiOut
-- | Arithmetic operators
module CsoundExpr.Base.Arithmetic
-- | Opr2 a b - defines output type of binary
-- arithmetic operator
--
--
-- type instance Opr2 Irate Irate = Irate
-- type instance Opr2 Irate Krate = Krate
-- type instance Opr2 Irate Arate = Arate
--
--
--
-- type instance Opr2 Krate Irate = Krate
-- type instance Opr2 Krate Krate = Krate
-- type instance Opr2 Krate Arate = Arate
--
--
--
-- type instance Opr2 Arate Irate = Arate
-- type instance Opr2 Arate Krate = Arate
-- type instance Opr2 Arate Arate = Arate
--
(<+>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
-- | negation
neg :: X a => a -> a
(<->) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
(<*>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
(>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
-- | "power of" operator
(<^>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
-- | modulus operator
(<%>) :: (X a, X b, X (Opr2 a b)) => a -> b -> Opr2 a b
-- | scaling
(^*) :: X a => Irate -> a -> a
-- | shifting
(^+) :: X a => Irate -> a -> a
instance Fractional Irate
instance Num Irate
instance Fractional Krate
instance Num Krate
instance Fractional Arate
instance Num Arate
instance Eq Irate
instance Eq Krate
instance Eq Arate
-- | Header section
module CsoundExpr.Base.Header
-- | Header section
type Header = [SignalInit]
data SignalInit
gSr :: Irate
gKr :: Irate
gKsmps :: Irate
gNchnls :: Irate
g0dbfs :: Irate
massign :: [Int] -> Int -> SignalOut -> SignalInit
pgmassign :: [Int] -> Int -> SignalOut -> SignalInit
-- | instrOrder defines relative order of instruments in orchestra
--
-- Instrument is a mapping from note-interface to SignalOut. If
-- two SignalOut's have equal expression-tree structure they are rendered
-- to the same instrument. Value in list refers to expresion-tree
-- structure of instrument.
--
-- Example :
--
--
-- header = [
-- instr0 [
-- gSr <=> 44100,
-- gKr <=> 4410,
-- gKsmps <=> 10,
-- gNchnls <=> 1],
-- instrOrder [instr1 (0, 0), instr2 ""]
-- ]
--
--
--
-- instr1 :: (Irate, Irate) -> SignalOut
-- instr1 (amp, cps) = out $ oscilA [] amp cps
--
--
--
-- instr2 :: String -> SignalOut
-- instr2 file = out $ moA1 $ diskin2 [] file (num 1)
--
instrOrder :: [SignalOut] -> SignalInit
-- | header's initialization statements, like global variables
-- initialization, seed, ctrlinit, fltk, etc.
--
-- Example :
--
--
-- instr0 [
-- gar "sig0" <=> initA 0,
-- gar "sig1" <=> initA 0,
-- gir "fn" <=> ftgen 0 16384 10 [1],
-- seed 0
-- ]
--
instr0 :: [SignalOut] -> SignalInit
-- | Puts the value of the i-time expression into a a-rate variable.
initA :: Irate -> Arate
-- | Puts the value of the i-time expression into a k-rate variable.
initK :: Irate -> Krate
-- | Puts the value of the i-time expression into a i-rate variable.
initI :: Irate -> Irate
-- | Sets the global seed value for all x-class noise generators, as well
-- as other opcodes that use a random call, such as grain.
--
--
-- seed ival
--
seed :: Irate -> SignalOut
-- | Sets the initial values for a set of MIDI controllers.
--
--
-- ctrlinit ichnl, ictlno1, ival1 [, ictlno2] [, ival2] [, ictlno3] \
-- [, ival3] [,...ival32]
--
ctrlinit :: Irate -> [Irate] -> SignalOut
-- | Generate a score function table from within the orchestra.
--
--
-- gir ftgen ifn, itime, isize, igen, iarga [, iargb ] [...]
--
--
-- ifn - is set to zero
--
--
-- ftgen itime isize igen [iargs]
--
ftgen :: Irate -> Irate -> Irate -> [Irate] -> Irate
headerMono :: Header
headerStereo :: Header
module CsoundExpr.Base.Pretty
-- | csound code
data CsoundFile
-- | csound flags
type Flags = String
type Player = String
type FileName = String
-- | Generate csound code
--
-- Csound code consists of flags, header section, instruments, ftables
-- and score. Flags are represeted by String. See
-- CsoundExpr.Base.Header for more details on header section.
-- Instruments, ftables and score are generated from EventList
-- Dur SignalOut. From list of SignalOut notes list
-- of instruments is derived. Expression-tree structures of instruments
-- are different from one another. An instrument can't be transformed
-- into another one only with substitution of values in lists of
-- expression-tree.
--
-- Example (d minor) :
--
--
-- import Temporal.Music.Notation.Score
--
-- import CsoundExpr
-- import CsoundExpr.Opcodes
-- import CsoundExpr.Base.Pitch
--
-- flags = "-o dm.wav"
--
-- setup = instr0 [
-- gSr <=> 44100,
-- gKr <=> 4410,
-- gKsmps <=> 10,
-- gNchnls <=> 1]
--
-- header = [setup]
--
-- sinWave = gen10 4096 [1]
--
-- instr :: Irate -> SignalOut
-- instr x = out $ oscilA [] (num 1000) (cpspch x) sinWave
--
-- sco = fmap instr $ line $ map (note 1) [d, f, a, high d]
--
-- main = print $ csd flags header $ renderScore sco
--
csd :: Flags -> Header -> EventList Dur SignalOut -> CsoundFile
-- | play writes CsoundFile to file in temporal direcory,
-- executes csound on it, saves to .wav file, and invokes player
--
--
-- play "totem" "./temp" "song" $ csd flags header $ toList scores
--
play :: Player -> FilePath -> FileName -> CsoundFile -> IO ExitCode
-- | playDac writes CsoundFile to in temporal direcory,
-- executes csound on it, and plays online
--
--
-- playDac "./temp" "song" $ csd flags header $ toList scores
--
playDac :: FilePath -> FileName -> CsoundFile -> IO ExitCode
-- | Side Effects
--
-- SideEffect a means output value a of opcode
-- is not determined completely by arguments and opcode itself.
-- a relies on number of appearences in body of instrument. Way
-- out from SideEffect is provided by selectors. Selector gives
-- value and updated SideEffect
--
-- Example a :
--
--
-- q = let (a1, a2) = fst $ se2 $ unirandA (1 :: Irate)
-- in outs a1 a2
--
--
-- generates :
--
--
-- a1 unirand 1
-- a2 unirand 1
-- outs a1, a2
--
--
-- Example b :
--
--
-- q = let a1 = fst $ se1 $ unirandA (1 :: Irate)
-- a2 = fst $ se1 $ unirandA (1 :: Irate)
-- in outs a1 a2
--
--
-- generates :
--
--
-- a1 unirand 1
-- outs a1, a1
--
--
-- Example c :
--
--
-- q = let v0 = unirandA (1 :: Irate)
-- (a1, v1) = se1 v0
-- (a2, _) = se1 v1
-- in outs a1 a2
--
--
-- generates :
--
--
-- a1 unirand 1
-- a2 unirand 1
-- outs a1, a2
--
module CsoundExpr.Base.SideEffect
data SideEffect a
se :: IM CsTree a => Int -> SideEffect a -> ([a], SideEffect a)
se1 :: IM CsTree a => SideEffect a -> (a, SideEffect a)
se2 :: IM CsTree a => SideEffect a -> ((a, a), SideEffect a)
se3 :: IM CsTree a => SideEffect a -> ((a, a, a), SideEffect a)
se4 :: IM CsTree a => SideEffect a -> ((a, a, a, a), SideEffect a)
instance IM CsTree a => IM CsTree (SideEffect a)
-- | Gen routines. First argument is ftable's size, load time is set to
-- zero.
--
-- http://www.csounds.com/manual/html/ScoreGenRef.html
module CsoundExpr.Base.Gens
-- | skip normalization
skipNorm :: Irate -> Irate
-- | ftempty value is rendered to 0
ftempty :: Irate
-- | GEN09 - Composite waveforms made up of weighted sums of simple
-- sinusoids.
--
-- url : http://www.csounds.com/manual/html/GEN09.html
gen09 :: Int -> [Double] -> Irate
-- | GEN10 - Composite waveforms made up of weighted sums of simple
-- sinusoids.
--
-- url : http://www.csounds.com/manual/html/GEN10.html
gen10 :: Int -> [Double] -> Irate
-- | GEN11 - Additive set of cosine partials.
--
-- url : http://www.csounds.com/manual/html/GEN11.html
gen11 :: Int -> [Double] -> Irate
-- | GEN19 - Composite waveforms made up of weighted sums of simple
-- sinusoids.
--
-- url : http://www.csounds.com/manual/html/GEN19.html
gen19 :: Int -> [Double] -> Irate
-- | GEN30 - Generates harmonic partials by analyzing an existing table.
--
-- url : http://www.csounds.com/manual/html/GEN30.html
gen30 :: Int -> Irate -> [Double] -> Irate
-- | GEN33 - Generate composite waveforms by mixing simple sinusoids.
--
-- url : http://www.csounds.com/manual/html/GEN33.html
gen33 :: Int -> Irate -> [Double] -> Irate
-- | GEN34 - Generate composite waveforms by mixing simple sinusoids.
--
-- url : http://www.csounds.com/manual/html/GEN34.html
gen34 :: Int -> Irate -> [Double] -> Irate
-- | GEN05 - Constructs functions from segments of exponential curves.
--
-- url : http://www.csounds.com/manual/html/GEN05.html
gen05 :: Int -> [Double] -> Irate
-- | GEN06 - Generates a function comprised of segments of cubic
-- polynomials.
--
-- url : http://www.csounds.com/manual/html/GEN06.html
gen06 :: Int -> [Double] -> Irate
-- | GEN07 - Constructs functions from segments of straight lines.
--
-- url : http://www.csounds.com/manual/html/GEN07.html
gen07 :: Int -> [Double] -> Irate
-- | GEN08 - Generate a piecewise cubic spline curve.
--
-- url : http://www.csounds.com/manual/html/GEN08.html
gen08 :: Int -> [Double] -> Irate
-- | GEN16 - Creates a table from a starting value to an ending value.
--
-- url : http://www.csounds.com/manual/html/GEN16.html
gen16 :: Int -> [Double] -> Irate
-- | GEN25 - Construct functions from segments of exponential curves in
-- breakpoint fashion.
--
-- url : http://www.csounds.com/manual/html/GEN25.html
gen25 :: Int -> [Double] -> Irate
-- | GEN27 - Construct functions from segments of straight lines in
-- breakpoint fashion.
--
-- url : http://www.csounds.com/manual/html/GEN27.html
gen27 :: Int -> [Double] -> Irate
-- | GEN01 - Transfers data from a soundfile into a function table.
--
-- url : http://www.csounds.com/manual/html/GEN01.html
gen01 :: Int -> String -> [Double] -> Irate
-- | GEN23 - Reads numeric values from a text file.
--
-- url : http://www.csounds.com/manual/html/GEN23.html
gen23 :: Int -> String -> Irate
-- | GEN28 - Reads a text file which contains a time-tagged trajectory.
--
-- url : http://www.csounds.com/manual/html/GEN28.html
gen28 :: Int -> String -> Irate
-- | GEN02 - Transfers data from immediate pfields into a function table.
--
-- url : http://www.csounds.com/manual/html/GEN02.html
gen02 :: Int -> [Double] -> Irate
-- | GEN17 - Creates a step function from given x-y pairs.
--
-- url : http://www.csounds.com/manual/html/GEN17.html
gen17 :: Int -> [Double] -> Irate
-- | GEN20 - Generates functions of different windows.
--
-- url : http://www.csounds.com/manual/html/GEN20.html
gen20 :: Int -> [Double] -> Irate
-- | GEN21 - Generates tables of different random distributions.
--
-- url : http://www.csounds.com/manual/html/GEN21.html
gen21 :: Int -> [Double] -> SideEffect Irate
-- | GEN40 - Generates a random distribution using a distribution
-- histogram.
--
-- url : http://www.csounds.com/manual/html/GEN40.html
gen40 :: Int -> Irate -> SideEffect Irate
-- | GEN41 - Generates a random list of numerical pairs.
--
-- url : http://www.csounds.com/manual/html/GEN41.html
gen41 :: Int -> [Double] -> SideEffect Irate
-- | GEN42 - Generates a random distribution of discrete ranges of values.
--
-- url : http://www.csounds.com/manual/html/GEN42.html
gen42 :: Int -> [Double] -> SideEffect Irate
-- | GEN43 - Loads a PVOCEX file containing a PV analysis.
--
-- url : http://www.csounds.com/manual/html/GEN43.html
gen43 :: Int -> String -> [Double] -> Irate
-- | GEN03 - Generates a stored function table by evaluating a polynomial.
--
-- url : http://www.csounds.com/manual/html/GEN03.html
gen03 :: Int -> [Double] -> Irate
-- | GEN13 - Stores a polynomial whose coefficients derive from the
-- Chebyshev polynomials of the first kind.
--
-- url : http://www.csounds.com/manual/html/GEN13.html
gen13 :: Int -> [Double] -> Irate
-- | GEN14 - Stores a polynomial whose coefficients derive from Chebyshevs
-- of the second kind.
--
-- url : http://www.csounds.com/manual/html/GEN14.html
gen14 :: Int -> [Double] -> Irate
-- | GEN15 - Creates two tables of stored polynomial functions.
--
-- url : http://www.csounds.com/manual/html/GEN15.html
gen15 :: Int -> [Double] -> Irate
-- | GEN04 - Generates a normalizing function.
--
-- url : http://www.csounds.com/manual/html/GEN04.html
gen04 :: Int -> Irate -> [Double] -> Irate
-- | GEN12 - Generates the log of a modified Bessel function of the second
-- kind.
--
-- url : http://www.csounds.com/manual/html/GEN12.html
gen12 :: Int -> [Double] -> Irate
-- | GEN24 - Reads numeric values from another allocated function-table and
-- rescales them.
--
-- url : http://www.csounds.com/manual/html/GEN24.html
gen24 :: Int -> Irate -> [Double] -> Irate
-- | GEN18 - Writes composite waveforms made up of pre-existing waveforms.
--
-- url : http://www.csounds.com/manual/html/GEN18.html
gen18 :: Int -> [(Irate, Double, Int, Int)] -> Irate
-- | GEN31 - Mixes any waveform specified in an existing table.
--
-- url : http://www.csounds.com/manual/html/GEN31.html
gen31 :: Int -> Irate -> [Double] -> Irate
-- | GEN32 - Mixes any waveform, resampled with either FFT or linear
-- interpolation.
--
-- url : http://www.csounds.com/manual/html/GEN32.html
gen32 :: Int -> [(Irate, Int, Double, Double)] -> Irate
gen09'2 :: Integer -> [Double] -> Irate
gen10'2 :: Integer -> [Double] -> Irate
gen11'2 :: Integer -> [Double] -> Irate
gen19'2 :: Integer -> [Double] -> Irate
gen30'2 :: Integer -> Irate -> [Double] -> Irate
gen33'2 :: Integer -> Irate -> [Double] -> Irate
gen34'2 :: Integer -> Irate -> [Double] -> Irate
gen05'2 :: Integer -> [Double] -> Irate
gen06'2 :: Integer -> [Double] -> Irate
gen07'2 :: Integer -> [Double] -> Irate
gen08'2 :: Integer -> [Double] -> Irate
gen16'2 :: Integer -> [Double] -> Irate
gen25'2 :: Integer -> [Double] -> Irate
gen27'2 :: Integer -> [Double] -> Irate
gen01'2 :: Integer -> String -> [Double] -> Irate
gen23'2 :: Integer -> String -> Irate
gen28'2 :: Integer -> String -> Irate
gen02'2 :: Integer -> [Double] -> Irate
gen17'2 :: Integer -> [Double] -> Irate
gen20'2 :: Integer -> [Double] -> Irate
gen21'2 :: Integer -> [Double] -> SideEffect Irate
gen40'2 :: Integer -> Irate -> SideEffect Irate
gen41'2 :: Integer -> [Double] -> SideEffect Irate
gen42'2 :: Integer -> [Double] -> SideEffect Irate
gen43'2 :: Integer -> String -> [Double] -> Irate
gen03'2 :: Integer -> [Double] -> Irate
gen13'2 :: Integer -> [Double] -> Irate
gen14'2 :: Integer -> [Double] -> Irate
gen15'2 :: Integer -> [Double] -> Irate
gen04'2 :: Integer -> Irate -> [Double] -> Irate
gen12'2 :: Integer -> [Double] -> Irate
gen24'2 :: Integer -> Irate -> [Double] -> Irate
gen18'2 :: Integer -> [(Irate, Double, Int, Int)] -> Irate
gen31'2 :: Integer -> Irate -> [Double] -> Irate
gen32'2 :: Integer -> [(Irate, Int, Double, Double)] -> Irate
gen09'12 :: Integer -> [Double] -> Irate
gen10'12 :: Integer -> [Double] -> Irate
gen11'12 :: Integer -> [Double] -> Irate
gen19'12 :: Integer -> [Double] -> Irate
gen30'12 :: Integer -> Irate -> [Double] -> Irate
gen33'12 :: Integer -> Irate -> [Double] -> Irate
gen34'12 :: Integer -> Irate -> [Double] -> Irate
gen05'12 :: Integer -> [Double] -> Irate
gen06'12 :: Integer -> [Double] -> Irate
gen07'12 :: Integer -> [Double] -> Irate
gen08'12 :: Integer -> [Double] -> Irate
gen16'12 :: Integer -> [Double] -> Irate
gen25'12 :: Integer -> [Double] -> Irate
gen27'12 :: Integer -> [Double] -> Irate
gen01'12 :: Integer -> String -> [Double] -> Irate
gen23'12 :: Integer -> String -> Irate
gen28'12 :: Integer -> String -> Irate
gen02'12 :: Integer -> [Double] -> Irate
gen17'12 :: Integer -> [Double] -> Irate
gen20'12 :: Integer -> [Double] -> Irate
gen21'12 :: Integer -> [Double] -> SideEffect Irate
gen40'12 :: Integer -> Irate -> SideEffect Irate
gen41'12 :: Integer -> [Double] -> SideEffect Irate
gen42'12 :: Integer -> [Double] -> SideEffect Irate
gen43'12 :: Integer -> String -> [Double] -> Irate
gen03'12 :: Integer -> [Double] -> Irate
gen13'12 :: Integer -> [Double] -> Irate
gen14'12 :: Integer -> [Double] -> Irate
gen15'12 :: Integer -> [Double] -> Irate
gen04'12 :: Integer -> Irate -> [Double] -> Irate
gen12'12 :: Integer -> [Double] -> Irate
gen24'12 :: Integer -> Irate -> [Double] -> Irate
gen18'12 :: Integer -> [(Irate, Double, Int, Int)] -> Irate
gen31'12 :: Integer -> Irate -> [Double] -> Irate
gen32'12 :: Integer -> [(Irate, Int, Double, Double)] -> Irate
-- | Additive Synthesis/Resynthesis
module CsoundExpr.Opcodes.Siggen.Additive
-- |
-- - opcode : adsyn
-- - syntax :
--
--
--
-- ares adsyn kamod, kfmod, ksmod, ifilcod
--
--
--
--
-- Output is an additive set of individually controlled sinusoids, using
-- an oscillator bank.
--
--
adsyn :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> String -> Arate
-- |
-- - opcode : adsynt
-- - syntax :
--
--
--
-- ares adsynt kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs]
--
--
--
--
-- Performs additive synthesis with an arbitrary number of partials, not
-- necessarily harmonic.
--
--
adsynt :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : adsynt2
-- - syntax :
--
--
--
-- ar adsynt2 kamp, kcps, iwfn, ifreqfn, iampfn, icnt [, iphs]
--
--
--
--
-- Performs additive synthesis with an arbitrary number of partials, not
-- necessarily harmonic. (see adsynt for detailed manual)
--
--
adsynt2 :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : hsboscil
-- - syntax :
--
--
--
-- ares hsboscil kamp, ktone, kbrite, ibasfreq, iwfn, ioctfn
-- [, ioctcnt] [, iphs]
--
--
--
--
-- An oscillator which takes tonality and brightness as arguments,
-- relative to a base frequency.
--
--
hsboscil :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> Arate
-- | Basic Oscillators
module CsoundExpr.Opcodes.Siggen.Basic
-- |
-- - opcode : oscbnk
-- - syntax :
--
--
--
-- ares oscbnk kcps, kamd, kfmd, kpmd, iovrlap, iseed, kl1minf, kl1maxf,
-- kl2minf, kl2maxf, ilfomode, keqminf, keqmaxf, keqminl, keqmaxl,
-- keqminq, keqmaxq, ieqmode, kfn [, il1fn] [, il2fn] [, ieqffn]
-- [, ieqlfn] [, ieqqfn] [, itabl] [, ioutfn]
--
--
--
--
-- This unit generator mixes the output of any number of oscillators. The
-- frequency, phase, and amplitude of each oscillator can be modulated by
-- two LFOs (all oscillators have a separate set of LFOs, with different
-- phase and frequency); additionally, the output of each oscillator can
-- be filtered through an optional parametric equalizer (also controlled
-- by the LFOs). This opcode is most useful for rendering ensemble
-- (strings, choir, etc.) instruments.
--
--
oscbnk :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8, K k9, K k10, K k11, K k12, K k13, K k14) => [Irate] -> k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> k4 -> k5 -> k6 -> k7 -> Irate -> k8 -> k9 -> k10 -> k11 -> k12 -> k13 -> Irate -> k14 -> Arate
-- |
-- - opcode : oscil
-- - syntax :
--
--
--
-- ares oscil xamp, xcps, ifn [, iphs]
-- kres oscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- oscil reads table ifn sequentially and repeatedly at a frequency xcps.
-- The amplitude is scaled by xamp.
--
--
oscilA :: (X x0, X x1) => [Irate] -> x0 -> x1 -> Irate -> Arate
-- |
-- - opcode : oscil
-- - syntax :
--
--
--
-- ares oscil xamp, xcps, ifn [, iphs]
-- kres oscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- oscil reads table ifn sequentially and repeatedly at a frequency xcps.
-- The amplitude is scaled by xamp.
--
--
oscilK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : oscil3
-- - syntax :
--
--
--
-- ares oscil3 xamp, xcps, ifn [, iphs]
-- kres oscil3 kamp, kcps, ifn [, iphs]
--
--
--
--
-- oscil3 reads table ifn sequentially and repeatedly at a frequency
-- xcps. The amplitude is scaled by xamp. Cubic interpolation is applied
-- for table look up from internal phase values.
--
--
oscil3A :: (X x0, X x1) => [Irate] -> x0 -> x1 -> Irate -> Arate
-- |
-- - opcode : oscil3
-- - syntax :
--
--
--
-- ares oscil3 xamp, xcps, ifn [, iphs]
-- kres oscil3 kamp, kcps, ifn [, iphs]
--
--
--
--
-- oscil3 reads table ifn sequentially and repeatedly at a frequency
-- xcps. The amplitude is scaled by xamp. Cubic interpolation is applied
-- for table look up from internal phase values.
--
--
oscil3K :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : oscili
-- - syntax :
--
--
--
-- ares oscili xamp, xcps, ifn [, iphs]
-- kres oscili kamp, kcps, ifn [, iphs]
--
--
--
--
-- oscili reads table ifn sequentially and repeatedly at a frequency
-- xcps. The amplitude is scaled by xamp. Linear interpolation is applied
-- for table look up from internal phase values.
--
--
osciliA :: (X x0, X x1) => [Irate] -> x0 -> x1 -> Irate -> Arate
-- |
-- - opcode : oscili
-- - syntax :
--
--
--
-- ares oscili xamp, xcps, ifn [, iphs]
-- kres oscili kamp, kcps, ifn [, iphs]
--
--
--
--
-- oscili reads table ifn sequentially and repeatedly at a frequency
-- xcps. The amplitude is scaled by xamp. Linear interpolation is applied
-- for table look up from internal phase values.
--
--
osciliK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : oscils
-- - syntax :
--
--
--
-- ares oscils iamp, icps, iphs [, iflg]
--
--
--
--
-- Simple, fast sine oscillator, that uses only one multiply, and two add
-- operations to generate one sample of output, and does not require a
-- function table.
--
--
oscils :: [Irate] -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : poscil
-- - syntax :
--
--
--
-- ares poscil aamp, acps, ifn [, iphs]
-- ares poscil aamp, kcps, ifn [, iphs]
-- ares poscil kamp, acps, ifn [, iphs]
-- ares poscil kamp, kcps, ifn [, iphs]
-- ires poscil kamp, kcps, ifn [, iphs]
-- kres poscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator.
--
--
poscilAAA :: [Irate] -> Arate -> Arate -> Irate -> Arate
-- |
-- - opcode : poscil
-- - syntax :
--
--
--
-- ares poscil aamp, acps, ifn [, iphs]
-- ares poscil aamp, kcps, ifn [, iphs]
-- ares poscil kamp, acps, ifn [, iphs]
-- ares poscil kamp, kcps, ifn [, iphs]
-- ires poscil kamp, kcps, ifn [, iphs]
-- kres poscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator.
--
--
poscilAAK :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
-- |
-- - opcode : poscil
-- - syntax :
--
--
--
-- ares poscil aamp, acps, ifn [, iphs]
-- ares poscil aamp, kcps, ifn [, iphs]
-- ares poscil kamp, acps, ifn [, iphs]
-- ares poscil kamp, kcps, ifn [, iphs]
-- ires poscil kamp, kcps, ifn [, iphs]
-- kres poscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator.
--
--
poscilAKA :: K k0 => [Irate] -> k0 -> Arate -> Irate -> Arate
-- |
-- - opcode : poscil
-- - syntax :
--
--
--
-- ares poscil aamp, acps, ifn [, iphs]
-- ares poscil aamp, kcps, ifn [, iphs]
-- ares poscil kamp, acps, ifn [, iphs]
-- ares poscil kamp, kcps, ifn [, iphs]
-- ires poscil kamp, kcps, ifn [, iphs]
-- kres poscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator.
--
--
poscilAKK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Arate
-- |
-- - opcode : poscil
-- - syntax :
--
--
--
-- ares poscil aamp, acps, ifn [, iphs]
-- ares poscil aamp, kcps, ifn [, iphs]
-- ares poscil kamp, acps, ifn [, iphs]
-- ares poscil kamp, kcps, ifn [, iphs]
-- ires poscil kamp, kcps, ifn [, iphs]
-- kres poscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator.
--
--
poscilI :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate
-- |
-- - opcode : poscil
-- - syntax :
--
--
--
-- ares poscil aamp, acps, ifn [, iphs]
-- ares poscil aamp, kcps, ifn [, iphs]
-- ares poscil kamp, acps, ifn [, iphs]
-- ares poscil kamp, kcps, ifn [, iphs]
-- ires poscil kamp, kcps, ifn [, iphs]
-- kres poscil kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator.
--
--
poscilK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : poscil3
-- - syntax :
--
--
--
-- ares poscil3 kamp, kcps, ifn [, iphs]
-- kres poscil3 kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator with cubic interpolation.
--
--
poscil3A :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Arate
-- |
-- - opcode : poscil3
-- - syntax :
--
--
--
-- ares poscil3 kamp, kcps, ifn [, iphs]
-- kres poscil3 kamp, kcps, ifn [, iphs]
--
--
--
--
-- High precision oscillator with cubic interpolation.
--
--
poscil3K :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : oscilikt
-- - syntax :
--
--
--
-- ares oscilikt xamp, xcps, kfn [, iphs] [, istor]
-- kres oscilikt kamp, kcps, kfn [, iphs] [, istor]
--
--
--
--
-- oscilikt is very similar to oscili, but allows changing the table
-- number at k-rate. It is slightly slower than oscili (especially with
-- high control rate), although also more accurate as it uses a 31-bit
-- phase accumulator, as opposed to the 24-bit one used by oscili.
--
--
osciliktA :: (X x0, X x1, K k0) => [Irate] -> x0 -> x1 -> k0 -> Arate
-- |
-- - opcode : oscilikt
-- - syntax :
--
--
--
-- ares oscilikt xamp, xcps, kfn [, iphs] [, istor]
-- kres oscilikt kamp, kcps, kfn [, iphs] [, istor]
--
--
--
--
-- oscilikt is very similar to oscili, but allows changing the table
-- number at k-rate. It is slightly slower than oscili (especially with
-- high control rate), although also more accurate as it uses a 31-bit
-- phase accumulator, as opposed to the 24-bit one used by oscili.
--
--
osciliktK :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : osciliktp
-- - syntax :
--
--
--
-- ares osciliktp kcps, kfn, kphs [, istor]
--
--
--
--
-- osciliktp allows phase modulation (which is actually implemented as
-- k-rate frequency modulation, by differentiating phase input). The
-- disadvantage is that there is no amplitude control, and frequency can
-- be varied only at the control-rate. This opcode can be faster or
-- slower than oscilikt, depending on the control-rate.
--
--
osciliktp :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : oscilikts
-- - syntax :
--
--
--
-- ares oscilikts xamp, xcps, kfn, async, kphs [, istor]
--
--
--
--
-- oscilikts is the same as oscilikt. Except it has a sync input that can
-- be used to re-initialize the oscillator to a k-rate phase value. It is
-- slower than oscilikt and osciliktp.
--
--
oscilikts :: (X x0, X x1, K k0, K k1) => [Irate] -> x0 -> x1 -> k0 -> Arate -> k1 -> Arate
-- |
-- - opcode : osciln
-- - syntax :
--
--
--
-- ares osciln kamp, ifrq, ifn, itimes
--
--
--
--
-- Accesses table values at a user-defined frequency. This opcode can
-- also be written as oscilx.
--
--
osciln :: K k0 => k0 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : lfo
-- - syntax :
--
--
--
-- kres lfo kamp, kcps [, itype]
-- ares lfo kamp, kcps [, itype]
--
--
--
--
-- A low frequency oscillator of various shapes.
--
--
lfoA :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Arate
-- |
-- - opcode : lfo
-- - syntax :
--
--
--
-- kres lfo kamp, kcps [, itype]
-- ares lfo kamp, kcps [, itype]
--
--
--
--
-- A low frequency oscillator of various shapes.
--
--
lfoK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : vibr
-- - syntax :
--
--
--
-- kout vibr kAverageAmp, kAverageFreq, ifn
--
--
--
--
-- Easier-to-use user-controllable vibrato.
--
--
vibr :: (K k0, K k1) => k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : vibrato
-- - syntax :
--
--
--
-- kout vibrato kAverageAmp, kAverageFreq, kRandAmountAmp,
-- kRandAmountFreq, kAmpMinRate, kAmpMaxRate, kcpsMinRate,
-- kcpsMaxRate, ifn [, iphs]
--
--
--
--
-- Generates a natural-sounding user-controllable vibrato.
--
--
vibrato :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> k7 -> Irate -> Krate
-- | Dynamic Spectrum Oscillators
module CsoundExpr.Opcodes.Siggen.Dynamic
-- |
-- - opcode : buzz
-- - syntax :
--
--
--
-- ares buzz xamp, xcps, knh, ifn [, iphs]
--
--
--
--
-- Output is a set of harmonically related sine partials.
--
--
buzz :: (X x0, X x1, K k0) => [Irate] -> x0 -> x1 -> k0 -> Irate -> Arate
-- |
-- - opcode : gbuzz
-- - syntax :
--
--
--
-- ares gbuzz xamp, xcps, knh, klh, kmul, ifn [, iphs]
--
--
--
--
-- Output is a set of harmonically related cosine partials.
--
--
gbuzz :: (X x0, X x1, K k0, K k1, K k2) => [Irate] -> x0 -> x1 -> k0 -> k1 -> k2 -> Irate -> Arate
-- |
-- - opcode : mpulse
-- - syntax :
--
--
--
-- ares mpulse kamp, kintvl [, ioffset]
--
--
--
--
-- Generates a set of impulses of amplitude kamp separated by kintvl
-- seconds (or samples if kintvl is negative). The first impulse is
-- generated after a delay of ioffset seconds.
--
--
mpulse :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Arate
-- |
-- - opcode : vco
-- - syntax :
--
--
--
-- ares vco xamp, xcps, iwave, kpw [, ifn] [, imaxd] [, ileak] [, inyx]
-- [, iphs] [, iskip]
--
--
--
--
-- Implementation of a band limited, analog modeled oscillator, based on
-- integration of band limited impulses. vco can be used to simulate a
-- variety of analog wave forms.
--
--
vco :: (X x0, X x1, K k0) => [Irate] -> x0 -> x1 -> Irate -> k0 -> Arate
-- |
-- - opcode : vco2
-- - syntax :
--
--
--
-- ares vco2 kamp, kcps [, imode] [, kpw] [, kphs] [, inyx]
--
--
--
--
-- vco2 is similar to vco. But the implementation uses pre-calculated
-- tables of band-limited waveforms (see also GEN30) rather than
-- integrating impulses. This opcode can be faster than vco (especially
-- if a low control-rate is used) and also allows better sound quality.
-- Additionally, there are more waveforms and oscillator phase can be
-- modulated at k-rate. The disadvantage is increased memory usage. For
-- more details about vco2 tables, see also vco2init and vco2ft.
--
--
vco2 :: (K k0, K k1, K k2) => [Irate] -> [k0] -> [Irate] -> k1 -> k2 -> Arate
-- |
-- - opcode : vco2init
-- - syntax :
--
--
--
-- ifn vco2init iwave [, ibasfn] [, ipmul] [, iminsiz] [, imaxsiz] [, isrcft]
--
--
--
--
-- vco2init calculates tables for use by vco2 opcode. Optionally, it is
-- also possible to access these tables as standard Csound function
-- tables. In this case, vco2ft can be used to find the correct table
-- number for a given oscillator frequency.
--
--
vco2init :: [Irate] -> Irate -> Irate
-- |
-- - opcode : vco2ft
-- - syntax :
--
--
--
-- kfn vco2ft kcps, iwave [, inyx]
--
--
--
--
-- vco2ft returns the function table number to be used for generating the
-- specified waveform at a given frequency. This function table number
-- can be used by any Csound opcode that generates a signal by reading
-- function tables (like oscilikt). The tables must be calculated by
-- vco2init before vco2ft is called and shared as Csound ftables
-- (ibasfn).
--
--
vco2ft :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : vco2ift
-- - syntax :
--
--
--
-- ifn vco2ift icps, iwave [, inyx]
--
--
--
--
-- vco2ift is the same as vco2ft, but works at i-time. It is suitable for
-- use with opcodes that expect an i-rate table number (for example,
-- oscili).
--
--
vco2ift :: [Irate] -> Irate -> Irate -> Irate
-- | FM Synthesis
module CsoundExpr.Opcodes.Siggen.Fmsynth
-- |
-- - opcode : foscil
-- - syntax :
--
--
--
-- ares foscil xamp, kcps, xcar, xmod, kndx, ifn [, iphs]
--
--
--
--
-- A basic frequency modulated oscillator.
--
--
foscil :: (X x0, K k0, X x1, X x2, K k1) => [Irate] -> x0 -> k0 -> x1 -> x2 -> k1 -> Irate -> Arate
-- |
-- - opcode : foscili
-- - syntax :
--
--
--
-- ares foscili xamp, kcps, xcar, xmod, kndx, ifn [, iphs]
--
--
--
--
-- Basic frequency modulated oscillator with linear interpolation.
--
--
foscili :: (X x0, K k0, X x1, X x2, K k1) => [Irate] -> x0 -> k0 -> x1 -> x2 -> k1 -> Irate -> Arate
-- |
-- - opcode : crossfm
-- - syntax :
--
--
--
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
--
--
--
--
-- Two oscillators, mutually frequency and/or phase modulated by each
-- other.
--
--
crossfm :: (X x0, X x1, X x2, X x3, K k0) => [Irate] -> x0 -> x1 -> x2 -> x3 -> k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : crossfmi
-- - syntax :
--
--
--
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
--
--
--
--
-- Two oscillators, mutually frequency and/or phase modulated by each
-- other.
--
--
crossfmi :: (X x0, X x1, X x2, X x3, K k0) => [Irate] -> x0 -> x1 -> x2 -> x3 -> k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : crosspm
-- - syntax :
--
--
--
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
--
--
--
--
-- Two oscillators, mutually frequency and/or phase modulated by each
-- other.
--
--
crosspm :: (X x0, X x1, X x2, X x3, K k0) => [Irate] -> x0 -> x1 -> x2 -> x3 -> k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : crosspmi
-- - syntax :
--
--
--
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
--
--
--
--
-- Two oscillators, mutually frequency and/or phase modulated by each
-- other.
--
--
crosspmi :: (X x0, X x1, X x2, X x3, K k0) => [Irate] -> x0 -> x1 -> x2 -> x3 -> k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : crossfmpm
-- - syntax :
--
--
--
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
--
--
--
--
-- Two oscillators, mutually frequency and/or phase modulated by each
-- other.
--
--
crossfmpm :: (X x0, X x1, X x2, X x3, K k0) => [Irate] -> x0 -> x1 -> x2 -> x3 -> k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : crossfmpmi
-- - syntax :
--
--
--
-- a1, a2 crossfm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crosspmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpm xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
-- a1, a2 crossfmpmi xfrq1, xfrq2, xndx1, xndx2, kcps, ifn1, ifn2 [, iphs1] [, iphs2]
--
--
--
--
-- Two oscillators, mutually frequency and/or phase modulated by each
-- other.
--
--
crossfmpmi :: (X x0, X x1, X x2, X x3, K k0) => [Irate] -> x0 -> x1 -> x2 -> x3 -> k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : fmb3
-- - syntax :
--
--
--
-- ares fmb3 kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3,
-- ifn4, ivfn
--
--
--
--
-- Uses FM synthesis to create a Hammond B3 organ sound. It comes from a
-- family of FM sounds, all using 4 basic oscillators and various
-- architectures, as used in the TX81Z synthesizer.
--
--
fmb3 :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fmbell
-- - syntax :
--
--
--
-- ares fmbell kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3,
-- ifn4, ivfn
--
--
--
--
-- Uses FM synthesis to create a tublar bell sound. It comes from a
-- family of FM sounds, all using 4 basic oscillators and various
-- architectures, as used in the TX81Z synthesizer.
--
--
fmbell :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fmmetal
-- - syntax :
--
--
--
-- ares fmmetal kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3,
-- ifn4, ivfn
--
--
--
--
-- Uses FM synthesis to create a Heavy Metal sound. It comes from a
-- family of FM sounds, all using 4 basic oscillators and various
-- architectures, as used in the TX81Z synthesizer.
--
--
fmmetal :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fmpercfl
-- - syntax :
--
--
--
-- ares fmpercfl kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2,
-- ifn3, ifn4, ivfn
--
--
--
--
-- Uses FM synthesis to create a percussive flute sound. It comes from a
-- family of FM sounds, all using 4 basic oscillators and various
-- architectures, as used in the TX81Z synthesizer.
--
--
fmpercfl :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fmrhode
-- - syntax :
--
--
--
-- ares fmrhode kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2,
-- ifn3, ifn4, ivfn
--
--
--
--
-- Uses FM synthesis to create a Fender Rhodes electric piano sound. It
-- comes from a family of FM sounds, all using 4 basic oscillators and
-- various architectures, as used in the TX81Z synthesizer.
--
--
fmrhode :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fmvoice
-- - syntax :
--
--
--
-- ares fmvoice kamp, kfreq, kvowel, ktilt, kvibamt, kvibrate, ifn1,
-- ifn2, ifn3, ifn4, ivibfn
--
--
--
--
-- FM Singing Voice Synthesis
--
--
fmvoice :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fmwurlie
-- - syntax :
--
--
--
-- ares fmwurlie kamp, kfreq, kc1, kc2, kvdepth, kvrate, ifn1, ifn2, ifn3,
-- ifn4, ivfn
--
--
--
--
-- Uses FM synthesis to create a Wurlitzer electric piano sound. It comes
-- from a family of FM sounds, all using 4 basic oscillators and various
-- architectures, as used in the TX81Z synthesizer.
--
--
fmwurlie :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- | Granular Synthesis
module CsoundExpr.Opcodes.Siggen.Granular
-- |
-- - opcode : diskgrain
-- - syntax :
--
--
--
-- asig diskgrain Sfname, kamp, kfreq, kpitch, kgrsize, kprate,
-- ifun, iolaps [,imaxgrsize, ioffset]
--
--
--
--
-- diskgrain implements synchronous granular synthesis. The source sound
-- for the grains is obtained by reading a soundfile containing the
-- samples of the source waveform.
--
--
diskgrain :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> String -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Arate
-- |
-- - opcode : fof
-- - syntax :
--
--
--
-- ares fof xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps,
-- ifna, ifnb, itotdur [, iphs] [, ifmode] [, iskip]
--
--
--
--
-- Audio output is a succession of sinusoid bursts initiated at frequency
-- xfund with a spectral peak at xform. For xfund above 25 Hz these
-- bursts produce a speech-like formant with spectral characteristics
-- determined by the k-input parameters. For lower fundamentals this
-- generator provides a special form of granular synthesis.
--
--
fof :: (X x0, X x1, X x2, K k0, K k1, K k2, K k3, K k4) => [Irate] -> x0 -> x1 -> x2 -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : fof2
-- - syntax :
--
--
--
-- ares fof2 xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps,
-- ifna, ifnb, itotdur, kphs, kgliss [, iskip]
--
--
--
--
-- Audio output is a succession of sinusoid bursts initiated at frequency
-- xfund with a spectral peak at xform. For xfund above 25 Hz these
-- bursts produce a speech-like formant with spectral characteristics
-- determined by the k-input parameters. For lower fundamentals this
-- generator provides a special form of granular synthesis.
--
--
fof2 :: (X x0, X x1, X x2, K k0, K k1, K k2, K k3, K k4, K k5, K k6) => [Irate] -> x0 -> x1 -> x2 -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Irate -> k5 -> k6 -> Arate
-- |
-- - opcode : fog
-- - syntax :
--
--
--
-- ares fog xamp, xdens, xtrans, aspd, koct, kband, kris, kdur, kdec,
-- iolaps, ifna, ifnb, itotdur [, iphs] [, itmode] [, iskip]
--
--
--
--
-- Audio output is a succession of grains derived from data in a stored
-- function table ifna. The local envelope of these grains and their
-- timing is based on the model of fof synthesis and permits detailed
-- control of the granular synthesis.
--
--
fog :: (X x0, X x1, X x2, K k0, K k1, K k2, K k3, K k4) => [Irate] -> x0 -> x1 -> x2 -> Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : grain
-- - syntax :
--
--
--
-- ares grain xamp, xpitch, xdens, kampoff, kpitchoff, kgdur, igfn,
-- iwfn, imgdur [, igrnd]
--
--
--
--
-- Generates granular synthesis textures.
--
--
grain :: (X x0, X x1, X x2, K k0, K k1, K k2) => [Irate] -> x0 -> x1 -> x2 -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : grain2
-- - syntax :
--
--
--
-- ares grain2 kcps, kfmd, kgdur, iovrlp, kfn, iwfn [, irpow]
-- [, iseed] [, imode]
--
--
--
--
-- Generate granular synthesis textures. grain2 is simpler to use, but
-- grain3 offers more control.
--
--
grain2 :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> k2 -> Irate -> k3 -> Irate -> Arate
-- |
-- - opcode : grain3
-- - syntax :
--
--
--
-- ares grain3 kcps, kphs, kfmd, kpmd, kgdur, kdens, imaxovr, kfn, iwfn,
-- kfrpow, kprpow [, iseed] [, imode]
--
--
--
--
-- Generate granular synthesis textures. grain2 is simpler to use but
-- grain3 offers more control.
--
--
grain3 :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> k6 -> Irate -> k7 -> k8 -> Arate
-- |
-- - opcode : granule
-- - syntax :
--
--
--
-- ares granule xamp, ivoice, iratio, imode, ithd, ifn, ipshift, igskip,
-- igskip_os, ilength, kgap, igap_os, kgsize, igsize_os, iatt, idec
-- [, iseed] [, ipitch1] [, ipitch2] [, ipitch3] [, ipitch4] [, ifnenv]
--
--
--
--
-- The granule unit generator is more complex than grain, but does add
-- new possibilities.
--
--
granule :: (X x0, K k0, K k1) => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> Irate -> k1 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : partikkel
-- - syntax :
--
--
--
-- a1 [, a2, a3, a4, a5, a6, a7, a8] partikkel agrainfreq,
-- kdistribution, idisttab, async, kenv2amt, ienv2tab, ienv_attack,
-- ienv_decay, ksustain_amount, ka_d_ratio, kduration, kamp, igainmasks,
-- kwavfreq, ksweepshape, iwavfreqstarttab, iwavfreqendtab, awavfm,
-- ifmamptab, kfmenv, icosine, ktraincps, knumpartials, kchroma,
-- ichannelmasks, krandommask, kwaveform1, kwaveform2, kwaveform3,
-- kwaveform4, iwaveamptab, asamplepos1, asamplepos2, asamplepos3,
-- asamplepos4, kwavekey1, kwavekey2, kwavekey3, kwavekey4, imax_grains
-- [, iopcode_id]
--
--
--
--
-- partikkel was conceived after reading Curtis Roads' book
-- Microsound, and the goal was to create an opcode that was
-- capable of all time-domain varieties of granular synthesis described
-- in this book. The idea being that most of the techniques only differ
-- in parameter values, and by having a single opcode that can do all
-- varieties of granular synthesis makes it possible to interpolate
-- between techniques. Granular synthesis is sometimes dubbed particle
-- synthesis, and it was thought apt to name the opcode partikkel to
-- distinguish it from other granular opcodes.
--
--
partikkel :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8, K k9, K k10, K k11, K k12, K k13, K k14, K k15, K k16, K k17, K k18, K k19, K k20) => [Irate] -> Arate -> k0 -> Irate -> Arate -> k1 -> Irate -> Irate -> Irate -> k2 -> k3 -> k4 -> k5 -> Irate -> k6 -> k7 -> Irate -> Irate -> Arate -> Irate -> k8 -> Irate -> k9 -> k10 -> k11 -> Irate -> k12 -> k13 -> k14 -> k15 -> k16 -> Irate -> Arate -> Arate -> Arate -> Arate -> k17 -> k18 -> k19 -> k20 -> Irate -> MultiOut
-- |
-- - opcode : partikkelsync
-- - syntax :
--
--
--
-- async [,aphase] partikkelsync iopcode_id
--
--
--
--
-- partikkelsync is an opcode for outputting partikkel's grain scheduler
-- clock pulse and phase. partikkelsync's output can be used to
-- synchronize other instances of the partikkel opcode to the same clock.
--
--
partikkelsync :: Irate -> MultiOut
-- |
-- - opcode : sndwarp
-- - syntax :
--
--
--
-- ares [, ac] sndwarp xamp, xtimewarp, xresample, ifn1, ibeg, iwsize,
-- irandw, ioverlap, ifn2, itimemode
--
--
--
--
-- sndwarp reads sound samples from a table and applies time-stretching
-- and/or pitch modification. Time and frequency modification are
-- independent from one another. For example, a sound can be stretched in
-- time while raising the pitch!
--
--
sndwarp :: (X x0, X x1, X x2) => x0 -> x1 -> x2 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : sndwarpst
-- - syntax :
--
--
--
-- ar1, ar2 [,ac1] [, ac2] sndwarpst xamp, xtimewarp, xresample, ifn1,
-- ibeg, iwsize, irandw, ioverlap, ifn2, itimemode
--
--
--
--
-- sndwarpst reads stereo sound samples from a table and applies
-- time-stretching and/or pitch modification. Time and frequency
-- modification are independent from one another. For example, a sound
-- can be stretched in time while raising the pitch!
--
--
sndwarpst :: (X x0, X x1, X x2) => x0 -> x1 -> x2 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : syncgrain
-- - syntax :
--
--
--
-- asig syncgrain kamp, kfreq, kpitch, kgrsize, kprate, ifun1,
-- ifun2, iolaps
--
--
--
--
-- syncgrain implements synchronous granular synthesis. The source sound
-- for the grains is obtained by reading a function table containing the
-- samples of the source waveform. For sampled-sound sources, GEN01 is
-- used. syncgrain will accept deferred allocation tables.
--
--
syncgrain :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : syncloop
-- - syntax :
--
--
--
-- asig syncloop kamp, kfreq, kpitch, kgrsize, kprate, klstart,
-- klend, ifun1, ifun2, iolaps[,istart, iskip]
--
--
--
--
-- syncloop is a variation on syncgrain, which implements synchronous
-- granular synthesis. syncloop adds loop start and end points and an
-- optional start position. Loop start and end control grain start
-- positions, so the actual grains can go beyond the loop points (if the
-- loop points are not at the extremes of the table), enabling seamless
-- crossfading. For more information on the granular synthesis process,
-- check the syncgrain manual page.
--
--
syncloop :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : vosim
-- - syntax :
--
--
--
-- ar vosim kamp, kFund, kForm, kDecay, kPulseCount, kPulseFactor, ifn [, iskip]
--
--
--
--
-- This opcode produces a simple vocal simulation based on glottal pulses
-- with formant characteristics. Output is a series of sound events,
-- where each event is composed of a burst of squared sine pulses
-- followed by silence. The VOSIM (VOcal SIMulation) synthesis method was
-- developed by Kaegi and Tempelaars in the 1970's.
--
--
vosim :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Arate
-- | Hyper Vectorial Synthesis
module CsoundExpr.Opcodes.Siggen.Hvs
-- |
-- - opcode : vphaseseg
-- - syntax :
--
--
--
-- vphaseseg kphase, ioutab, ielems, itab1,idist1,itab2
-- [,idist2,itab3,...,idistN-1,itabN]
--
--
--
--
-- vphaseseg allows one-dimensional HVS (Hyper-Vectorial Synthesis).
--
--
vphaseseg :: K k0 => k0 -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : hvs1
-- - syntax :
--
--
--
-- hvs1 kx, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]
--
--
--
--
-- hvs1 allows one-dimensional Hyper Vectorial Synthesis (HVS) controlled
-- by externally-updated k-variables.
--
--
hvs1 :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : hvs2
-- - syntax :
--
--
--
-- hvs2 kx, ky, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]
--
--
--
--
-- hvs2 allows two-dimensional Hyper Vectorial Synthesis (HVS) controlled
-- by externally-updated k-variables.
--
--
hvs2 :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : hvs3
-- - syntax :
--
--
--
-- hvs3 kx, ky, kz, inumParms, inumPointsX, iOutTab, iPositionsTab, iSnapTab [, iConfigTab]
--
--
--
--
-- hvs3 allows three-dimensional Hyper Vectorial Synthesis (HVS)
-- controlled by externally-updated k-variables.
--
--
hvs3 :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- | Linear and Exponential Generators
module CsoundExpr.Opcodes.Siggen.Lineexp
-- |
-- - opcode : expon
-- - syntax :
--
--
--
-- ares expon ia, idur, ib
-- kres expon ia, idur, ib
--
--
--
--
-- Trace an exponential curve between specified points.
--
--
exponA :: Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : expon
-- - syntax :
--
--
--
-- ares expon ia, idur, ib
-- kres expon ia, idur, ib
--
--
--
--
-- Trace an exponential curve between specified points.
--
--
exponK :: Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : expcurve
-- - syntax :
--
--
--
-- kout expcurve kindex, ksteepness
--
--
--
--
-- Generates an exponential curve in range 0 to 1 of arbitrary steepness.
-- Steepness index equal to or lower than 1.0 will result in Not-a-Number
-- errors and cause unstable behavior.
--
--
expcurve :: (K k0, K k1) => k0 -> k1 -> Krate
-- |
-- - opcode : expseg
-- - syntax :
--
--
--
-- ares expseg ia, idur1, ib [, idur2] [, ic] [...]
-- kres expseg ia, idur1, ib [, idur2] [, ic] [...]
--
--
--
--
-- Trace a series of exponential segments between specified points.
--
--
expsegA :: [Irate] -> Arate
-- |
-- - opcode : expseg
-- - syntax :
--
--
--
-- ares expseg ia, idur1, ib [, idur2] [, ic] [...]
-- kres expseg ia, idur1, ib [, idur2] [, ic] [...]
--
--
--
--
-- Trace a series of exponential segments between specified points.
--
--
expsegK :: [Irate] -> Krate
-- |
-- - opcode : expsega
-- - syntax :
--
--
--
-- ares expsega ia, idur1, ib [, idur2] [, ic] [...]
--
--
--
--
-- An exponential segment generator operating at a-rate. This unit is
-- almost identical to expseg, but more precise when defining segments
-- with very short durations (i.e., in a percussive attack phase) at
-- audio rate.
--
--
expsega :: [Irate] -> Arate
-- |
-- - opcode : expsegr
-- - syntax :
--
--
--
-- ares expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
-- kres expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
--
--
--
--
-- Trace a series of exponential segments between specified points
-- including a release segment.
--
--
expsegrA :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : expsegr
-- - syntax :
--
--
--
-- ares expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
-- kres expsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
--
--
--
--
-- Trace a series of exponential segments between specified points
-- including a release segment.
--
--
expsegrK :: [Irate] -> Irate -> Irate -> Krate
-- |
-- - opcode : gainslider
-- - syntax :
--
--
--
-- kout gainslider kindex
--
--
--
--
-- This opcode is intended for use to multiply by an audio signal to give
-- a console mixer like feel. There is no bounds in the source code so
-- you can for example give higher than 127 values for extra amplitude
-- but possibly clipped audio.
--
--
gainslider :: K k0 => k0 -> Krate
-- |
-- - opcode : jspline
-- - syntax :
--
--
--
-- ares jspline xamp, kcpsMin, kcpsMax
-- kres jspline kamp, kcpsMin, kcpsMax
--
--
--
--
-- A jitter-spline generator.
--
--
jsplineA :: (X x0, K k0, K k1) => x0 -> k0 -> k1 -> Arate
-- |
-- - opcode : jspline
-- - syntax :
--
--
--
-- ares jspline xamp, kcpsMin, kcpsMax
-- kres jspline kamp, kcpsMin, kcpsMax
--
--
--
--
-- A jitter-spline generator.
--
--
jsplineK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : line
-- - syntax :
--
--
--
-- ares line ia, idur, ib
-- kres line ia, idur, ib
--
--
--
--
-- Trace a straight line between specified points.
--
--
lineA :: Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : line
-- - syntax :
--
--
--
-- ares line ia, idur, ib
-- kres line ia, idur, ib
--
--
--
--
-- Trace a straight line between specified points.
--
--
lineK :: Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : linseg
-- - syntax :
--
--
--
-- ares linseg ia, idur1, ib [, idur2] [, ic] [...]
-- kres linseg ia, idur1, ib [, idur2] [, ic] [...]
--
--
--
--
-- Trace a series of line segments between specified points.
--
--
linsegA :: [Irate] -> Arate
-- |
-- - opcode : linseg
-- - syntax :
--
--
--
-- ares linseg ia, idur1, ib [, idur2] [, ic] [...]
-- kres linseg ia, idur1, ib [, idur2] [, ic] [...]
--
--
--
--
-- Trace a series of line segments between specified points.
--
--
linsegK :: [Irate] -> Krate
-- |
-- - opcode : linsegr
-- - syntax :
--
--
--
-- ares linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
-- kres linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
--
--
--
--
-- Trace a series of line segments between specified points including a
-- release segment.
--
--
linsegrA :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : linsegr
-- - syntax :
--
--
--
-- ares linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
-- kres linsegr ia, idur1, ib [, idur2] [, ic] [...], irel, iz
--
--
--
--
-- Trace a series of line segments between specified points including a
-- release segment.
--
--
linsegrK :: [Irate] -> Irate -> Irate -> Krate
-- |
-- - opcode : logcurve
-- - syntax :
--
--
--
-- kout logcurve kindex, ksteepness
--
--
--
--
-- Generates a logarithmic curve in range 0 to 1 of arbitrary steepness.
-- Steepness index equal to or lower than 1.0 will result in Not-a-Number
-- errors and cause unstable behavior.
--
--
logcurve :: (K k0, K k1) => k0 -> k1 -> Krate
-- |
-- - opcode : loopseg
-- - syntax :
--
--
--
-- ksig loopseg kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1]
-- [, ktime2] [, kvalue2] [...]
--
--
--
--
-- Generate control signal consisting of linear segments delimited by two
-- or more specified points. The entire envelope is looped at kfreq rate.
-- Each parameter can be varied at k-rate.
--
--
loopseg :: (K k0, K k1, K k2) => k0 -> k1 -> [k2] -> Krate
-- |
-- - opcode : loopsegp
-- - syntax :
--
--
--
-- ksig loopsegp kphase, kvalue0, kdur0, kvalue1
-- [, kdur1,..., kdurN-1, kvalueN]
--
--
--
--
-- Generate control signal consisiting of linear segments delimited by
-- two or more specified points. The entire envelope can be looped at
-- time-variant rate. Each segment coordinate can also be varied at
-- k-rate.
--
--
loopsegp :: (K k0, K k1) => k0 -> [k1] -> Krate
-- |
-- - opcode : lpshold
-- - syntax :
--
--
--
-- ksig lpshold kfreq, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1]
-- [, ktime2] [, kvalue2] [...]
--
--
--
--
-- Generate control signal consisting of held segments delimited by two
-- or more specified points. The entire envelope is looped at kfreq rate.
-- Each parameter can be varied at k-rate.
--
--
lpshold :: (K k0, K k1, K k2) => k0 -> k1 -> [k2] -> Krate
-- |
-- - opcode : lpsholdp
-- - syntax :
--
--
--
-- ksig lpsholdp kphase, ktrig, ktime0, kvalue0 [, ktime1] [, kvalue1]
-- [, ktime2] [, kvalue2] [...]
--
--
--
--
-- Generate control signal consisiting of held segments delimited by two
-- or more specified points. The entire envelope can be looped at
-- time-variant rate. Each segment coordinate can also be varied at
-- k-rate.
--
--
lpsholdp :: (K k0, K k1) => k0 -> [k1] -> Krate
-- |
-- - opcode : rspline
-- - syntax :
--
--
--
-- ares rspline xrangeMin, xrangeMax, kcpsMin, kcpsMax
-- kres rspline krangeMin, krangeMax, kcpsMin, kcpsMax
--
--
--
--
-- Generate random spline curves.
--
--
rsplineA :: (X x0, X x1, K k0, K k1) => x0 -> x1 -> k0 -> k1 -> Arate
-- |
-- - opcode : rspline
-- - syntax :
--
--
--
-- ares rspline xrangeMin, xrangeMax, kcpsMin, kcpsMax
-- kres rspline krangeMin, krangeMax, kcpsMin, kcpsMax
--
--
--
--
-- Generate random spline curves.
--
--
rsplineK :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> Krate
-- |
-- - opcode : scale
-- - syntax :
--
--
--
-- kscl scale kinput, kmax, kmin
--
--
--
--
-- Scales incoming value to user-definable range. Similar to scale object
-- found in popular dataflow languages.
--
--
scale :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : transeg
-- - syntax :
--
--
--
-- ares transeg ia, idur, itype, ib [, idur2] [, itype] [, ic]...
-- kres transeg ia, idur, itype, ib [, idur2] [, itype] [, ic]...
--
--
--
--
-- Constructs a user-definable envelope.
--
--
transegA :: [Irate] -> Arate
-- |
-- - opcode : transeg
-- - syntax :
--
--
--
-- ares transeg ia, idur, itype, ib [, idur2] [, itype] [, ic]...
-- kres transeg ia, idur, itype, ib [, idur2] [, itype] [, ic]...
--
--
--
--
-- Constructs a user-definable envelope.
--
--
transegK :: [Irate] -> Krate
-- | Envelope Generators
module CsoundExpr.Opcodes.Siggen.Envelope
-- |
-- - opcode : adsr
-- - syntax :
--
--
--
-- ares adsr iatt, idec, islev, irel [, idel]
-- kres adsr iatt, idec, islev, irel [, idel]
--
--
--
--
-- Calculates the classical ADSR envelope using linear segments.
--
--
adsrA :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : adsr
-- - syntax :
--
--
--
-- ares adsr iatt, idec, islev, irel [, idel]
-- kres adsr iatt, idec, islev, irel [, idel]
--
--
--
--
-- Calculates the classical ADSR envelope using linear segments.
--
--
adsrK :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : madsr
-- - syntax :
--
--
--
-- ares madsr iatt, idec, islev, irel [, idel] [, ireltim]
-- kres madsr iatt, idec, islev, irel [, idel] [, ireltim]
--
--
--
--
-- Calculates the classical ADSR envelope using the linsegr mechanism.
--
--
madsrA :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : madsr
-- - syntax :
--
--
--
-- ares madsr iatt, idec, islev, irel [, idel] [, ireltim]
-- kres madsr iatt, idec, islev, irel [, idel] [, ireltim]
--
--
--
--
-- Calculates the classical ADSR envelope using the linsegr mechanism.
--
--
madsrK :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : mxadsr
-- - syntax :
--
--
--
-- ares mxadsr iatt, idec, islev, irel [, idel] [, ireltim]
-- kres mxadsr iatt, idec, islev, irel [, idel] [, ireltim]
--
--
--
--
-- Calculates the classical ADSR envelope using the expsegr mechanism.
--
--
mxadsrA :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : mxadsr
-- - syntax :
--
--
--
-- ares mxadsr iatt, idec, islev, irel [, idel] [, ireltim]
-- kres mxadsr iatt, idec, islev, irel [, idel] [, ireltim]
--
--
--
--
-- Calculates the classical ADSR envelope using the expsegr mechanism.
--
--
mxadsrK :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : xadsr
-- - syntax :
--
--
--
-- ares xadsr iatt, idec, islev, irel [, idel]
-- kres xadsr iatt, idec, islev, irel [, idel]
--
--
--
--
-- Calculates the classical ADSR envelope
--
--
xadsrA :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : xadsr
-- - syntax :
--
--
--
-- ares xadsr iatt, idec, islev, irel [, idel]
-- kres xadsr iatt, idec, islev, irel [, idel]
--
--
--
--
-- Calculates the classical ADSR envelope
--
--
xadsrK :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : linen
-- - syntax :
--
--
--
-- ares linen xamp, irise, idur, idec
-- kres linen kamp, irise, idur, idec
--
--
--
--
-- linen -- apply a straight line rise and decay pattern to an input amp
-- signal.
--
--
linenA :: X x0 => x0 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : linen
-- - syntax :
--
--
--
-- ares linen xamp, irise, idur, idec
-- kres linen kamp, irise, idur, idec
--
--
--
--
-- linen -- apply a straight line rise and decay pattern to an input amp
-- signal.
--
--
linenK :: K k0 => k0 -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : linenr
-- - syntax :
--
--
--
-- ares linenr xamp, irise, idec, iatdec
-- kres linenr kamp, irise, idec, iatdec
--
--
--
--
-- linenr -- same as linen except that the final segment is entered only
-- on sensing a MIDI note release. The note is then extended by the decay
-- time.
--
--
linenrA :: X x0 => x0 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : linenr
-- - syntax :
--
--
--
-- ares linenr xamp, irise, idec, iatdec
-- kres linenr kamp, irise, idec, iatdec
--
--
--
--
-- linenr -- same as linen except that the final segment is entered only
-- on sensing a MIDI note release. The note is then extended by the decay
-- time.
--
--
linenrK :: K k0 => k0 -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : envlpx
-- - syntax :
--
--
--
-- ares envlpx xamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]
-- kres envlpx kamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]
--
--
--
--
-- envlpx -- apply an envelope consisting of 3 segments:
--
--
envlpxA :: X x0 => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : envlpx
-- - syntax :
--
--
--
-- ares envlpx xamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]
-- kres envlpx kamp, irise, idur, idec, ifn, iatss, iatdec [, ixmod]
--
--
--
--
-- envlpx -- apply an envelope consisting of 3 segments:
--
--
envlpxK :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : envlpxr
-- - syntax :
--
--
--
-- ares envlpxr xamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]
-- kres envlpxr kamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]
--
--
--
--
-- envlpxr is the same as envlpx except that the final segment is entered
-- only on sensing a MIDI note release. The note is then extended by the
-- decay time.
--
--
envlpxrA :: X x0 => [Irate] -> x0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : envlpxr
-- - syntax :
--
--
--
-- ares envlpxr xamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]
-- kres envlpxr kamp, irise, idec, ifn, iatss, iatdec [, ixmod] [,irind]
--
--
--
--
-- envlpxr is the same as envlpx except that the final segment is entered
-- only on sensing a MIDI note release. The note is then extended by the
-- decay time.
--
--
envlpxrK :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
-- | Models and Emulations
module CsoundExpr.Opcodes.Siggen.Models
-- |
-- - opcode : bamboo
-- - syntax :
--
--
--
-- ares bamboo kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq]
-- [, ifreq1] [, ifreq2]
--
--
--
--
-- bamboo is a semi-physical model of a bamboo sound. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
bamboo :: K k0 => [Irate] -> k0 -> Irate -> Arate
-- |
-- - opcode : barmodel
-- - syntax :
--
--
--
-- ares barmodel kbcL, kbcR, iK, ib, kscan, iT30, ipos, ivel, iwid
--
--
--
--
-- Audio output is a tone similar to a struck metal bar, using a physical
-- model developed from solving the partial differential equation. There
-- are controls over the boundary conditions as well as the bar
-- characteristics.
--
--
barmodel :: (K k0, K k1, K k2) => k0 -> k1 -> Irate -> Irate -> k2 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : cabasa
-- - syntax :
--
--
--
-- ares cabasa iamp, idettack [, inum] [, idamp] [, imaxshake]
--
--
--
--
-- cabasa is a semi-physical model of a cabasa sound. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
cabasa :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : crunch
-- - syntax :
--
--
--
-- ares crunch iamp, idettack [, inum] [, idamp] [, imaxshake]
--
--
--
--
-- crunch is a semi-physical model of a crunch sound. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
crunch :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : dripwater
-- - syntax :
--
--
--
-- ares dripwater kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq]
-- [, ifreq1] [, ifreq2]
--
--
--
--
-- dripwater is a semi-physical model of a water drop. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
dripwater :: K k0 => [Irate] -> k0 -> Irate -> Arate
-- |
-- - opcode : gogobel
-- - syntax :
--
--
--
-- ares gogobel kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivfn
--
--
--
--
-- Audio output is a tone related to the striking of a cow bell or
-- similar. The method is a physical model developed from Perry Cook, but
-- re-coded for Csound.
--
--
gogobel :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> Irate -> Irate -> Irate -> k2 -> k3 -> Irate -> Arate
-- |
-- - opcode : guiro
-- - syntax :
--
--
--
-- ares guiro kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq] [, ifreq1]
--
--
--
--
-- guiro is a semi-physical model of a guiro sound. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
guiro :: K k0 => [Irate] -> k0 -> Irate -> Arate
-- |
-- - opcode : mandol
-- - syntax :
--
--
--
-- ares mandol kamp, kfreq, kpluck, kdetune, kgain, ksize, ifn [, iminfreq]
--
--
--
--
-- An emulation of a mandolin.
--
--
mandol :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Arate
-- |
-- - opcode : marimba
-- - syntax :
--
--
--
-- ares marimba kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec
-- [, idoubles] [, itriples]
--
--
--
--
-- Audio output is a tone related to the striking of a wooden block as
-- found in a marimba. The method is a physical model developed from
-- Perry Cook but re-coded for Csound.
--
--
marimba :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> k2 -> k3 -> Irate -> Irate -> Arate
-- |
-- - opcode : moog
-- - syntax :
--
--
--
-- ares moog kamp, kfreq, kfiltq, kfiltrate, kvibf, kvamp, iafn, iwfn, ivfn
--
--
--
--
-- An emulation of a mini-Moog synthesizer.
--
--
moog :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : sandpaper
-- - syntax :
--
--
--
-- ares sandpaper iamp, idettack [, inum] [, idamp] [, imaxshake]
--
--
--
--
-- sandpaper is a semi-physical model of a sandpaper sound. It is one of
-- the PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
sandpaper :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : sekere
-- - syntax :
--
--
--
-- ares sekere iamp, idettack [, inum] [, idamp] [, imaxshake]
--
--
--
--
-- sekere is a semi-physical model of a sekere sound. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
sekere :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : shaker
-- - syntax :
--
--
--
-- ares shaker kamp, kfreq, kbeans, kdamp, ktimes [, idecay]
--
--
--
--
-- Audio output is a tone related to the shaking of a maraca or similar
-- gourd instrument. The method is a physically inspired model developed
-- from Perry Cook, but re-coded for Csound.
--
--
shaker :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> Arate
-- |
-- - opcode : sleighbells
-- - syntax :
--
--
--
-- ares sleighbells kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq]
-- [, ifreq1] [, ifreq2]
--
--
--
--
-- sleighbells is a semi-physical model of a sleighbell sound. It is one
-- of the PhISEM percussion opcodes. PhISEM (Physically Informed
-- Stochastic Event Modeling) is an algorithmic approach for simulating
-- collisions of multiple independent sound producing objects.
--
--
sleighbells :: K k0 => [Irate] -> k0 -> Irate -> Arate
-- |
-- - opcode : stix
-- - syntax :
--
--
--
-- ares stix iamp, idettack [, inum] [, idamp] [, imaxshake]
--
--
--
--
-- stix is a semi-physical model of a stick sound. It is one of the
-- PhISEM percussion opcodes. PhISEM (Physically Informed Stochastic
-- Event Modeling) is an algorithmic approach for simulating collisions
-- of multiple independent sound producing objects.
--
--
stix :: [Irate] -> Irate -> Irate -> Arate
-- |
-- - opcode : tambourine
-- - syntax :
--
--
--
-- ares tambourine kamp, idettack [, inum] [, idamp] [, imaxshake] [, ifreq]
-- [, ifreq1] [, ifreq2]
--
--
--
--
-- tambourine is a semi-physical model of a tambourine sound. It is one
-- of the PhISEM percussion opcodes. PhISEM (Physically Informed
-- Stochastic Event Modeling) is an algorithmic approach for simulating
-- collisions of multiple independent sound producing objects.
--
--
tambourine :: K k0 => [Irate] -> k0 -> Irate -> Arate
-- |
-- - opcode : vibes
-- - syntax :
--
--
--
-- ares vibes kamp, kfreq, ihrd, ipos, imp, kvibf, kvamp, ivibfn, idec
--
--
--
--
-- Audio output is a tone related to the striking of a metal block as
-- found in a vibraphone. The method is a physical model developed from
-- Perry Cook, but re-coded for Csound.
--
--
vibes :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> Irate -> Irate -> Irate -> k2 -> k3 -> Irate -> Irate -> Arate
-- |
-- - opcode : voice
-- - syntax :
--
--
--
-- ares voice kamp, kfreq, kphoneme, kform, kvibf, kvamp, ifn, ivfn
--
--
--
--
-- An emulation of a human voice.
--
--
voice :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Arate
-- |
-- - opcode : lorenz
-- - syntax :
--
--
--
-- ax, ay, az lorenz ksv, krv, kbv, kh, ix, iy, iz, iskip [, iskipinit]
--
--
--
--
-- Implements the Lorenz system of equations. The Lorenz system is a
-- chaotic-dynamic system which was originally used to simulate the
-- motion of a particle in convection currents and simplified weather
-- systems. Small differences in initial conditions rapidly lead to
-- diverging values. This is sometimes expressed as the butterfly effect.
-- If a butterfly flaps its wings in Australia, it will have an effect on
-- the weather in Alaska. This system is one of the milestones in the
-- development of chaos theory. It is useful as a chaotic audio source or
-- as a low frequency modulation source.
--
--
lorenz :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : planet
-- - syntax :
--
--
--
-- ax, ay, az planet kmass1, kmass2, ksep, ix, iy, iz, ivx, ivy, ivz, idelta
-- [, ifriction] [, iskip]
--
--
--
--
-- planet simulates a planet orbiting in a binary star system. The
-- outputs are the x, y and z coordinates of the orbiting planet. It is
-- possible for the planet to achieve escape velocity by a close
-- encounter with a star. This makes this system somewhat unstable.
--
--
planet :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : prepiano
-- - syntax :
--
--
--
-- ares prepiano ifreq, iNS, iD, iK,
-- iT30,iB, kbcl, kbcr, imass, ifreq, iinit, ipos, ivel, isfreq,
-- isspread[, irattles, irubbers]
-- al,ar prepiano ifreq, iNS, iD, iK,
-- iT30,iB, kbcl, kbcr, imass, ifreq, iinit, ipos, ivel, isfreq,
-- isspread[, irattles, irubbers]
--
--
--
--
-- Audio output is a tone similar to a piano string, prepared with a
-- number of rubbers and rattles. The method uses a physical model
-- developed from solving the partial differential equation.
--
--
prepiano :: (K k0, K k1) => [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : prepiano
-- - syntax :
--
--
--
-- ares prepiano ifreq, iNS, iD, iK,
-- iT30,iB, kbcl, kbcr, imass, ifreq, iinit, ipos, ivel, isfreq,
-- isspread[, irattles, irubbers]
-- al,ar prepiano ifreq, iNS, iD, iK,
-- iT30,iB, kbcl, kbcr, imass, ifreq, iinit, ipos, ivel, isfreq,
-- isspread[, irattles, irubbers]
--
--
--
--
-- Audio output is a tone similar to a piano string, prepared with a
-- number of rubbers and rattles. The method uses a physical model
-- developed from solving the partial differential equation.
--
--
prepianoA :: (K k0, K k1) => [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : mandel
-- - syntax :
--
--
--
-- kiter, koutrig mandel ktrig, kx, ky, kmaxIter
--
--
--
--
-- Returns the number of iterations corresponding to a given point of
-- complex plane by applying the Mandelbrot set formula.
--
--
mandel :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> MultiOut
-- |
-- - opcode : chuap
-- - syntax :
--
--
--
-- aI3, aV2, aV1 chuap kL, kR0, kC1, kG, kGa, kGb, kE, kC2, iI3, iV2, iV1, ktime_step
--
--
--
--
-- Simulates Chua's oscillator, an LRC oscillator with an active
-- resistor, proved capable of bifurcation and chaotic attractors, with
-- k-rate control of circuit elements.
--
--
chuap :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> k7 -> Irate -> Irate -> Irate -> k8 -> MultiOut
-- | Phasors
module CsoundExpr.Opcodes.Siggen.Phasors
-- |
-- - opcode : phasor
-- - syntax :
--
--
--
-- ares phasor xcps [, iphs]
-- kres phasor kcps [, iphs]
--
--
--
--
-- Produce a normalized moving phase value.
--
--
phasorA :: X x0 => [Irate] -> x0 -> Arate
-- |
-- - opcode : phasor
-- - syntax :
--
--
--
-- ares phasor xcps [, iphs]
-- kres phasor kcps [, iphs]
--
--
--
--
-- Produce a normalized moving phase value.
--
--
phasorK :: K k0 => [Irate] -> k0 -> Krate
-- |
-- - opcode : phasorbnk
-- - syntax :
--
--
--
-- ares phasorbnk xcps, kndx, icnt [, iphs]
-- kres phasorbnk kcps, kndx, icnt [, iphs]
--
--
--
--
-- Produce an arbitrary number of normalized moving phase values,
-- accessable by an index.
--
--
phasorbnkA :: (X x0, K k0) => [Irate] -> x0 -> k0 -> Irate -> Arate
-- |
-- - opcode : phasorbnk
-- - syntax :
--
--
--
-- ares phasorbnk xcps, kndx, icnt [, iphs]
-- kres phasorbnk kcps, kndx, icnt [, iphs]
--
--
--
--
-- Produce an arbitrary number of normalized moving phase values,
-- accessable by an index.
--
--
phasorbnkK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Krate
-- |
-- - opcode : syncphasor
-- - syntax :
--
--
--
-- aphase, asyncout syncphasor xcps, asyncin, [, iphs]
--
--
--
--
-- Produces a moving phase value between zero and one and an extra
-- impulse output (sync out) whenever its phase value crosses or
-- is reset to zero. The phase can be reset at any time by an impulse on
-- the sync in parameter.
--
--
syncphasor :: X x0 => [Irate] -> x0 -> Arate -> MultiOut
-- | Random (Noise) Generators
module CsoundExpr.Opcodes.Siggen.Noise
-- |
-- - opcode : bexprnd
-- - syntax :
--
--
--
-- ares bexprnd krange
-- ires bexprnd krange
-- kres bexprnd krange
--
--
--
--
-- Exponential distribution random number generator. This is an x-class
-- noise generator.
--
--
bexprndA' :: K k0 => k0 -> Arate
-- |
-- - opcode : bexprnd
-- - syntax :
--
--
--
-- ares bexprnd krange
-- ires bexprnd krange
-- kres bexprnd krange
--
--
--
--
-- Exponential distribution random number generator. This is an x-class
-- noise generator.
--
--
bexprndA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : bexprnd
-- - syntax :
--
--
--
-- ares bexprnd krange
-- ires bexprnd krange
-- kres bexprnd krange
--
--
--
--
-- Exponential distribution random number generator. This is an x-class
-- noise generator.
--
--
bexprndI' :: K k0 => k0 -> Irate
-- |
-- - opcode : bexprnd
-- - syntax :
--
--
--
-- ares bexprnd krange
-- ires bexprnd krange
-- kres bexprnd krange
--
--
--
--
-- Exponential distribution random number generator. This is an x-class
-- noise generator.
--
--
bexprndI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : bexprnd
-- - syntax :
--
--
--
-- ares bexprnd krange
-- ires bexprnd krange
-- kres bexprnd krange
--
--
--
--
-- Exponential distribution random number generator. This is an x-class
-- noise generator.
--
--
bexprndK' :: K k0 => k0 -> Krate
-- |
-- - opcode : bexprnd
-- - syntax :
--
--
--
-- ares bexprnd krange
-- ires bexprnd krange
-- kres bexprnd krange
--
--
--
--
-- Exponential distribution random number generator. This is an x-class
-- noise generator.
--
--
bexprndK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : cauchy
-- - syntax :
--
--
--
-- ares cauchy kalpha
-- ires cauchy kalpha
-- kres cauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator. This is an x-class noise
-- generator.
--
--
cauchyA' :: K k0 => k0 -> Arate
-- |
-- - opcode : cauchy
-- - syntax :
--
--
--
-- ares cauchy kalpha
-- ires cauchy kalpha
-- kres cauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator. This is an x-class noise
-- generator.
--
--
cauchyA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : cauchy
-- - syntax :
--
--
--
-- ares cauchy kalpha
-- ires cauchy kalpha
-- kres cauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator. This is an x-class noise
-- generator.
--
--
cauchyI' :: K k0 => k0 -> Irate
-- |
-- - opcode : cauchy
-- - syntax :
--
--
--
-- ares cauchy kalpha
-- ires cauchy kalpha
-- kres cauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator. This is an x-class noise
-- generator.
--
--
cauchyI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : cauchy
-- - syntax :
--
--
--
-- ares cauchy kalpha
-- ires cauchy kalpha
-- kres cauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator. This is an x-class noise
-- generator.
--
--
cauchyK' :: K k0 => k0 -> Krate
-- |
-- - opcode : cauchy
-- - syntax :
--
--
--
-- ares cauchy kalpha
-- ires cauchy kalpha
-- kres cauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator. This is an x-class noise
-- generator.
--
--
cauchyK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : cuserrnd
-- - syntax :
--
--
--
-- aout cuserrnd kmin, kmax, ktableNum
-- iout cuserrnd imin, imax, itableNum
-- kout cuserrnd kmin, kmax, ktableNum
--
--
--
--
-- Continuous USER-defined-distribution RaNDom generator.
--
--
cuserrndA' :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : cuserrnd
-- - syntax :
--
--
--
-- aout cuserrnd kmin, kmax, ktableNum
-- iout cuserrnd imin, imax, itableNum
-- kout cuserrnd kmin, kmax, ktableNum
--
--
--
--
-- Continuous USER-defined-distribution RaNDom generator.
--
--
cuserrndA :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SideEffect Arate
-- |
-- - opcode : cuserrnd
-- - syntax :
--
--
--
-- aout cuserrnd kmin, kmax, ktableNum
-- iout cuserrnd imin, imax, itableNum
-- kout cuserrnd kmin, kmax, ktableNum
--
--
--
--
-- Continuous USER-defined-distribution RaNDom generator.
--
--
cuserrndI' :: Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : cuserrnd
-- - syntax :
--
--
--
-- aout cuserrnd kmin, kmax, ktableNum
-- iout cuserrnd imin, imax, itableNum
-- kout cuserrnd kmin, kmax, ktableNum
--
--
--
--
-- Continuous USER-defined-distribution RaNDom generator.
--
--
cuserrndI :: Irate -> Irate -> Irate -> SideEffect Irate
-- |
-- - opcode : cuserrnd
-- - syntax :
--
--
--
-- aout cuserrnd kmin, kmax, ktableNum
-- iout cuserrnd imin, imax, itableNum
-- kout cuserrnd kmin, kmax, ktableNum
--
--
--
--
-- Continuous USER-defined-distribution RaNDom generator.
--
--
cuserrndK' :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : cuserrnd
-- - syntax :
--
--
--
-- aout cuserrnd kmin, kmax, ktableNum
-- iout cuserrnd imin, imax, itableNum
-- kout cuserrnd kmin, kmax, ktableNum
--
--
--
--
-- Continuous USER-defined-distribution RaNDom generator.
--
--
cuserrndK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SideEffect Krate
-- |
-- - opcode : duserrnd
-- - syntax :
--
--
--
-- aout duserrnd ktableNum
-- iout duserrnd itableNum
-- kout duserrnd ktableNum
--
--
--
--
-- Discrete USER-defined-distribution RaNDom generator.
--
--
duserrndA' :: K k0 => k0 -> Arate
-- |
-- - opcode : duserrnd
-- - syntax :
--
--
--
-- aout duserrnd ktableNum
-- iout duserrnd itableNum
-- kout duserrnd ktableNum
--
--
--
--
-- Discrete USER-defined-distribution RaNDom generator.
--
--
duserrndA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : duserrnd
-- - syntax :
--
--
--
-- aout duserrnd ktableNum
-- iout duserrnd itableNum
-- kout duserrnd ktableNum
--
--
--
--
-- Discrete USER-defined-distribution RaNDom generator.
--
--
duserrndI' :: Irate -> Irate
-- |
-- - opcode : duserrnd
-- - syntax :
--
--
--
-- aout duserrnd ktableNum
-- iout duserrnd itableNum
-- kout duserrnd ktableNum
--
--
--
--
-- Discrete USER-defined-distribution RaNDom generator.
--
--
duserrndI :: Irate -> SideEffect Irate
-- |
-- - opcode : duserrnd
-- - syntax :
--
--
--
-- aout duserrnd ktableNum
-- iout duserrnd itableNum
-- kout duserrnd ktableNum
--
--
--
--
-- Discrete USER-defined-distribution RaNDom generator.
--
--
duserrndK' :: K k0 => k0 -> Krate
-- |
-- - opcode : duserrnd
-- - syntax :
--
--
--
-- aout duserrnd ktableNum
-- iout duserrnd itableNum
-- kout duserrnd ktableNum
--
--
--
--
-- Discrete USER-defined-distribution RaNDom generator.
--
--
duserrndK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : exprand
-- - syntax :
--
--
--
-- ares exprand klambda
-- ires exprand klambda
-- kres exprand klambda
--
--
--
--
-- Exponential distribution random number generator (positive values
-- only). This is an x-class noise generator.
--
--
exprandA' :: K k0 => k0 -> Arate
-- |
-- - opcode : exprand
-- - syntax :
--
--
--
-- ares exprand klambda
-- ires exprand klambda
-- kres exprand klambda
--
--
--
--
-- Exponential distribution random number generator (positive values
-- only). This is an x-class noise generator.
--
--
exprandA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : exprand
-- - syntax :
--
--
--
-- ares exprand klambda
-- ires exprand klambda
-- kres exprand klambda
--
--
--
--
-- Exponential distribution random number generator (positive values
-- only). This is an x-class noise generator.
--
--
exprandI' :: K k0 => k0 -> Irate
-- |
-- - opcode : exprand
-- - syntax :
--
--
--
-- ares exprand klambda
-- ires exprand klambda
-- kres exprand klambda
--
--
--
--
-- Exponential distribution random number generator (positive values
-- only). This is an x-class noise generator.
--
--
exprandI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : exprand
-- - syntax :
--
--
--
-- ares exprand klambda
-- ires exprand klambda
-- kres exprand klambda
--
--
--
--
-- Exponential distribution random number generator (positive values
-- only). This is an x-class noise generator.
--
--
exprandK' :: K k0 => k0 -> Krate
-- |
-- - opcode : exprand
-- - syntax :
--
--
--
-- ares exprand klambda
-- ires exprand klambda
-- kres exprand klambda
--
--
--
--
-- Exponential distribution random number generator (positive values
-- only). This is an x-class noise generator.
--
--
exprandK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : gauss
-- - syntax :
--
--
--
-- ares gauss krange
-- ires gauss krange
-- kres gauss krange
--
--
--
--
-- Gaussian distribution random number generator. This is an x-class
-- noise generator.
--
--
gaussA' :: K k0 => k0 -> Arate
-- |
-- - opcode : gauss
-- - syntax :
--
--
--
-- ares gauss krange
-- ires gauss krange
-- kres gauss krange
--
--
--
--
-- Gaussian distribution random number generator. This is an x-class
-- noise generator.
--
--
gaussA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : gauss
-- - syntax :
--
--
--
-- ares gauss krange
-- ires gauss krange
-- kres gauss krange
--
--
--
--
-- Gaussian distribution random number generator. This is an x-class
-- noise generator.
--
--
gaussI' :: K k0 => k0 -> Irate
-- |
-- - opcode : gauss
-- - syntax :
--
--
--
-- ares gauss krange
-- ires gauss krange
-- kres gauss krange
--
--
--
--
-- Gaussian distribution random number generator. This is an x-class
-- noise generator.
--
--
gaussI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : gauss
-- - syntax :
--
--
--
-- ares gauss krange
-- ires gauss krange
-- kres gauss krange
--
--
--
--
-- Gaussian distribution random number generator. This is an x-class
-- noise generator.
--
--
gaussK' :: K k0 => k0 -> Krate
-- |
-- - opcode : gauss
-- - syntax :
--
--
--
-- ares gauss krange
-- ires gauss krange
-- kres gauss krange
--
--
--
--
-- Gaussian distribution random number generator. This is an x-class
-- noise generator.
--
--
gaussK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : linrand
-- - syntax :
--
--
--
-- ares linrand krange
-- ires linrand krange
-- kres linrand krange
--
--
--
--
-- Linear distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
linrandA' :: K k0 => k0 -> Arate
-- |
-- - opcode : linrand
-- - syntax :
--
--
--
-- ares linrand krange
-- ires linrand krange
-- kres linrand krange
--
--
--
--
-- Linear distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
linrandA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : linrand
-- - syntax :
--
--
--
-- ares linrand krange
-- ires linrand krange
-- kres linrand krange
--
--
--
--
-- Linear distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
linrandI' :: K k0 => k0 -> Irate
-- |
-- - opcode : linrand
-- - syntax :
--
--
--
-- ares linrand krange
-- ires linrand krange
-- kres linrand krange
--
--
--
--
-- Linear distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
linrandI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : linrand
-- - syntax :
--
--
--
-- ares linrand krange
-- ires linrand krange
-- kres linrand krange
--
--
--
--
-- Linear distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
linrandK' :: K k0 => k0 -> Krate
-- |
-- - opcode : linrand
-- - syntax :
--
--
--
-- ares linrand krange
-- ires linrand krange
-- kres linrand krange
--
--
--
--
-- Linear distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
linrandK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : noise
-- - syntax :
--
--
--
-- ares noise xamp, kbeta
--
--
--
--
-- A white noise generator with an IIR lowpass filter.
--
--
noise' :: (X x0, K k0) => x0 -> k0 -> Arate
-- |
-- - opcode : noise
-- - syntax :
--
--
--
-- ares noise xamp, kbeta
--
--
--
--
-- A white noise generator with an IIR lowpass filter.
--
--
noise :: (X x0, K k0) => x0 -> k0 -> SideEffect Arate
-- |
-- - opcode : pcauchy
-- - syntax :
--
--
--
-- ares pcauchy kalpha
-- ires pcauchy kalpha
-- kres pcauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
pcauchyA' :: K k0 => k0 -> Arate
-- |
-- - opcode : pcauchy
-- - syntax :
--
--
--
-- ares pcauchy kalpha
-- ires pcauchy kalpha
-- kres pcauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
pcauchyA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : pcauchy
-- - syntax :
--
--
--
-- ares pcauchy kalpha
-- ires pcauchy kalpha
-- kres pcauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
pcauchyI' :: K k0 => k0 -> Irate
-- |
-- - opcode : pcauchy
-- - syntax :
--
--
--
-- ares pcauchy kalpha
-- ires pcauchy kalpha
-- kres pcauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
pcauchyI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : pcauchy
-- - syntax :
--
--
--
-- ares pcauchy kalpha
-- ires pcauchy kalpha
-- kres pcauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
pcauchyK' :: K k0 => k0 -> Krate
-- |
-- - opcode : pcauchy
-- - syntax :
--
--
--
-- ares pcauchy kalpha
-- ires pcauchy kalpha
-- kres pcauchy kalpha
--
--
--
--
-- Cauchy distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
pcauchyK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : pinkish
-- - syntax :
--
--
--
-- ares pinkish xin [, imethod] [, inumbands] [, iseed] [, iskip]
--
--
--
--
-- Generates approximate pink noise (-3dB/oct response) by one of two
-- different methods:
--
--
pinkish' :: X x0 => [Irate] -> x0 -> Arate
-- |
-- - opcode : pinkish
-- - syntax :
--
--
--
-- ares pinkish xin [, imethod] [, inumbands] [, iseed] [, iskip]
--
--
--
--
-- Generates approximate pink noise (-3dB/oct response) by one of two
-- different methods:
--
--
pinkish :: X x0 => [Irate] -> x0 -> SideEffect Arate
-- |
-- - opcode : poisson
-- - syntax :
--
--
--
-- ares poisson klambda
-- ires poisson klambda
-- kres poisson klambda
--
--
--
--
-- Poisson distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
poissonA' :: K k0 => k0 -> Arate
-- |
-- - opcode : poisson
-- - syntax :
--
--
--
-- ares poisson klambda
-- ires poisson klambda
-- kres poisson klambda
--
--
--
--
-- Poisson distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
poissonA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : poisson
-- - syntax :
--
--
--
-- ares poisson klambda
-- ires poisson klambda
-- kres poisson klambda
--
--
--
--
-- Poisson distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
poissonI' :: K k0 => k0 -> Irate
-- |
-- - opcode : poisson
-- - syntax :
--
--
--
-- ares poisson klambda
-- ires poisson klambda
-- kres poisson klambda
--
--
--
--
-- Poisson distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
poissonI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : poisson
-- - syntax :
--
--
--
-- ares poisson klambda
-- ires poisson klambda
-- kres poisson klambda
--
--
--
--
-- Poisson distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
poissonK' :: K k0 => k0 -> Krate
-- |
-- - opcode : poisson
-- - syntax :
--
--
--
-- ares poisson klambda
-- ires poisson klambda
-- kres poisson klambda
--
--
--
--
-- Poisson distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
poissonK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : rand
-- - syntax :
--
--
--
-- ares rand xamp [, iseed] [, isel] [, ioffset]
-- kres rand xamp [, iseed] [, isel] [, ioffset]
--
--
--
--
-- Output is a controlled random number series between -amp and +amp
--
--
randA :: X x0 => [Irate] -> x0 -> Arate
-- |
-- - opcode : rand
-- - syntax :
--
--
--
-- ares rand xamp [, iseed] [, isel] [, ioffset]
-- kres rand xamp [, iseed] [, isel] [, ioffset]
--
--
--
--
-- Output is a controlled random number series between -amp and +amp
--
--
randK :: X x0 => [Irate] -> x0 -> Krate
-- |
-- - opcode : randh
-- - syntax :
--
--
--
-- ares randh xamp, xcps [, iseed] [, isize] [, ioffset]
-- kres randh kamp, kcps [, iseed] [, isize] [, ioffset]
--
--
--
--
-- Generates random numbers and holds them for a period of time.
--
--
randhA :: (X x0, X x1) => [Irate] -> x0 -> x1 -> Arate
-- |
-- - opcode : randh
-- - syntax :
--
--
--
-- ares randh xamp, xcps [, iseed] [, isize] [, ioffset]
-- kres randh kamp, kcps [, iseed] [, isize] [, ioffset]
--
--
--
--
-- Generates random numbers and holds them for a period of time.
--
--
randhK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : randi
-- - syntax :
--
--
--
-- ares randi xamp, xcps [, iseed] [, isize] [, ioffset]
-- kres randi kamp, kcps [, iseed] [, isize] [, ioffset]
--
--
--
--
-- Generates a controlled random number series with interpolation between
-- each new number.
--
--
randiA :: (X x0, X x1) => [Irate] -> x0 -> x1 -> Arate
-- |
-- - opcode : randi
-- - syntax :
--
--
--
-- ares randi xamp, xcps [, iseed] [, isize] [, ioffset]
-- kres randi kamp, kcps [, iseed] [, isize] [, ioffset]
--
--
--
--
-- Generates a controlled random number series with interpolation between
-- each new number.
--
--
randiK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : rnd31
-- - syntax :
--
--
--
-- ax rnd31 kscl, krpow [, iseed]
-- ix rnd31 iscl, irpow [, iseed]
-- kx rnd31 kscl, krpow [, iseed]
--
--
--
--
-- 31-bit bipolar random opcodes with controllable distribution. These
-- units are portable, i.e. using the same seed value will generate the
-- same random sequence on all systems. The distribution of generated
-- random numbers can be varied at k-rate.
--
--
rnd31A' :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Arate
-- |
-- - opcode : rnd31
-- - syntax :
--
--
--
-- ax rnd31 kscl, krpow [, iseed]
-- ix rnd31 iscl, irpow [, iseed]
-- kx rnd31 kscl, krpow [, iseed]
--
--
--
--
-- 31-bit bipolar random opcodes with controllable distribution. These
-- units are portable, i.e. using the same seed value will generate the
-- same random sequence on all systems. The distribution of generated
-- random numbers can be varied at k-rate.
--
--
rnd31A :: (K k0, K k1) => [Irate] -> k0 -> k1 -> SideEffect Arate
-- |
-- - opcode : rnd31
-- - syntax :
--
--
--
-- ax rnd31 kscl, krpow [, iseed]
-- ix rnd31 iscl, irpow [, iseed]
-- kx rnd31 kscl, krpow [, iseed]
--
--
--
--
-- 31-bit bipolar random opcodes with controllable distribution. These
-- units are portable, i.e. using the same seed value will generate the
-- same random sequence on all systems. The distribution of generated
-- random numbers can be varied at k-rate.
--
--
rnd31I' :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : rnd31
-- - syntax :
--
--
--
-- ax rnd31 kscl, krpow [, iseed]
-- ix rnd31 iscl, irpow [, iseed]
-- kx rnd31 kscl, krpow [, iseed]
--
--
--
--
-- 31-bit bipolar random opcodes with controllable distribution. These
-- units are portable, i.e. using the same seed value will generate the
-- same random sequence on all systems. The distribution of generated
-- random numbers can be varied at k-rate.
--
--
rnd31I :: [Irate] -> Irate -> Irate -> SideEffect Irate
-- |
-- - opcode : rnd31
-- - syntax :
--
--
--
-- ax rnd31 kscl, krpow [, iseed]
-- ix rnd31 iscl, irpow [, iseed]
-- kx rnd31 kscl, krpow [, iseed]
--
--
--
--
-- 31-bit bipolar random opcodes with controllable distribution. These
-- units are portable, i.e. using the same seed value will generate the
-- same random sequence on all systems. The distribution of generated
-- random numbers can be varied at k-rate.
--
--
rnd31K' :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : rnd31
-- - syntax :
--
--
--
-- ax rnd31 kscl, krpow [, iseed]
-- ix rnd31 iscl, irpow [, iseed]
-- kx rnd31 kscl, krpow [, iseed]
--
--
--
--
-- 31-bit bipolar random opcodes with controllable distribution. These
-- units are portable, i.e. using the same seed value will generate the
-- same random sequence on all systems. The distribution of generated
-- random numbers can be varied at k-rate.
--
--
rnd31K :: (K k0, K k1) => [Irate] -> k0 -> k1 -> SideEffect Krate
-- |
-- - opcode : random
-- - syntax :
--
--
--
-- ares random kmin, kmax
-- ires random imin, imax
-- kres random kmin, kmax
--
--
--
--
-- Generates is a controlled pseudo-random number series between min and
-- max values.
--
--
randomA' :: (K k0, K k1) => k0 -> k1 -> Arate
-- |
-- - opcode : random
-- - syntax :
--
--
--
-- ares random kmin, kmax
-- ires random imin, imax
-- kres random kmin, kmax
--
--
--
--
-- Generates is a controlled pseudo-random number series between min and
-- max values.
--
--
randomA :: (K k0, K k1) => k0 -> k1 -> SideEffect Arate
-- |
-- - opcode : random
-- - syntax :
--
--
--
-- ares random kmin, kmax
-- ires random imin, imax
-- kres random kmin, kmax
--
--
--
--
-- Generates is a controlled pseudo-random number series between min and
-- max values.
--
--
randomI' :: Irate -> Irate -> Irate
-- |
-- - opcode : random
-- - syntax :
--
--
--
-- ares random kmin, kmax
-- ires random imin, imax
-- kres random kmin, kmax
--
--
--
--
-- Generates is a controlled pseudo-random number series between min and
-- max values.
--
--
randomI :: Irate -> Irate -> SideEffect Irate
-- |
-- - opcode : random
-- - syntax :
--
--
--
-- ares random kmin, kmax
-- ires random imin, imax
-- kres random kmin, kmax
--
--
--
--
-- Generates is a controlled pseudo-random number series between min and
-- max values.
--
--
randomK' :: (K k0, K k1) => k0 -> k1 -> Krate
-- |
-- - opcode : random
-- - syntax :
--
--
--
-- ares random kmin, kmax
-- ires random imin, imax
-- kres random kmin, kmax
--
--
--
--
-- Generates is a controlled pseudo-random number series between min and
-- max values.
--
--
randomK :: (K k0, K k1) => k0 -> k1 -> SideEffect Krate
-- |
-- - opcode : randomh
-- - syntax :
--
--
--
-- ares randomh kmin, kmax, acps
-- kres randomh kmin, kmax, kcps
--
--
--
--
-- Generates random numbers with a user-defined limit and holds them for
-- a period of time.
--
--
randomhA' :: (K k0, K k1) => k0 -> k1 -> Arate -> Arate
-- |
-- - opcode : randomh
-- - syntax :
--
--
--
-- ares randomh kmin, kmax, acps
-- kres randomh kmin, kmax, kcps
--
--
--
--
-- Generates random numbers with a user-defined limit and holds them for
-- a period of time.
--
--
randomhA :: (K k0, K k1) => k0 -> k1 -> Arate -> SideEffect Arate
-- |
-- - opcode : randomh
-- - syntax :
--
--
--
-- ares randomh kmin, kmax, acps
-- kres randomh kmin, kmax, kcps
--
--
--
--
-- Generates random numbers with a user-defined limit and holds them for
-- a period of time.
--
--
randomhK' :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : randomh
-- - syntax :
--
--
--
-- ares randomh kmin, kmax, acps
-- kres randomh kmin, kmax, kcps
--
--
--
--
-- Generates random numbers with a user-defined limit and holds them for
-- a period of time.
--
--
randomhK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SideEffect Krate
-- |
-- - opcode : randomi
-- - syntax :
--
--
--
-- ares randomi kmin, kmax, acps
-- kres randomi kmin, kmax, kcps
--
--
--
--
-- Generates a user-controlled random number series with interpolation
-- between each new number.
--
--
randomiA' :: (K k0, K k1) => k0 -> k1 -> Arate -> Arate
-- |
-- - opcode : randomi
-- - syntax :
--
--
--
-- ares randomi kmin, kmax, acps
-- kres randomi kmin, kmax, kcps
--
--
--
--
-- Generates a user-controlled random number series with interpolation
-- between each new number.
--
--
randomiA :: (K k0, K k1) => k0 -> k1 -> Arate -> SideEffect Arate
-- |
-- - opcode : randomi
-- - syntax :
--
--
--
-- ares randomi kmin, kmax, acps
-- kres randomi kmin, kmax, kcps
--
--
--
--
-- Generates a user-controlled random number series with interpolation
-- between each new number.
--
--
randomiK' :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : randomi
-- - syntax :
--
--
--
-- ares randomi kmin, kmax, acps
-- kres randomi kmin, kmax, kcps
--
--
--
--
-- Generates a user-controlled random number series with interpolation
-- between each new number.
--
--
randomiK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SideEffect Krate
-- |
-- - opcode : trirand
-- - syntax :
--
--
--
-- ares trirand krange
-- ires trirand krange
-- kres trirand krange
--
--
--
--
-- Triangular distribution random number generator. This is an x-class
-- noise generator.
--
--
trirandA' :: K k0 => k0 -> Arate
-- |
-- - opcode : trirand
-- - syntax :
--
--
--
-- ares trirand krange
-- ires trirand krange
-- kres trirand krange
--
--
--
--
-- Triangular distribution random number generator. This is an x-class
-- noise generator.
--
--
trirandA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : trirand
-- - syntax :
--
--
--
-- ares trirand krange
-- ires trirand krange
-- kres trirand krange
--
--
--
--
-- Triangular distribution random number generator. This is an x-class
-- noise generator.
--
--
trirandI' :: K k0 => k0 -> Irate
-- |
-- - opcode : trirand
-- - syntax :
--
--
--
-- ares trirand krange
-- ires trirand krange
-- kres trirand krange
--
--
--
--
-- Triangular distribution random number generator. This is an x-class
-- noise generator.
--
--
trirandI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : trirand
-- - syntax :
--
--
--
-- ares trirand krange
-- ires trirand krange
-- kres trirand krange
--
--
--
--
-- Triangular distribution random number generator. This is an x-class
-- noise generator.
--
--
trirandK' :: K k0 => k0 -> Krate
-- |
-- - opcode : trirand
-- - syntax :
--
--
--
-- ares trirand krange
-- ires trirand krange
-- kres trirand krange
--
--
--
--
-- Triangular distribution random number generator. This is an x-class
-- noise generator.
--
--
trirandK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : unirand
-- - syntax :
--
--
--
-- ares unirand krange
-- ires unirand krange
-- kres unirand krange
--
--
--
--
-- Uniform distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
unirandA' :: K k0 => k0 -> Arate
-- |
-- - opcode : unirand
-- - syntax :
--
--
--
-- ares unirand krange
-- ires unirand krange
-- kres unirand krange
--
--
--
--
-- Uniform distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
unirandA :: K k0 => k0 -> SideEffect Arate
-- |
-- - opcode : unirand
-- - syntax :
--
--
--
-- ares unirand krange
-- ires unirand krange
-- kres unirand krange
--
--
--
--
-- Uniform distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
unirandI' :: K k0 => k0 -> Irate
-- |
-- - opcode : unirand
-- - syntax :
--
--
--
-- ares unirand krange
-- ires unirand krange
-- kres unirand krange
--
--
--
--
-- Uniform distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
unirandI :: K k0 => k0 -> SideEffect Irate
-- |
-- - opcode : unirand
-- - syntax :
--
--
--
-- ares unirand krange
-- ires unirand krange
-- kres unirand krange
--
--
--
--
-- Uniform distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
unirandK' :: K k0 => k0 -> Krate
-- |
-- - opcode : unirand
-- - syntax :
--
--
--
-- ares unirand krange
-- ires unirand krange
-- kres unirand krange
--
--
--
--
-- Uniform distribution random number generator (positive values only).
-- This is an x-class noise generator.
--
--
unirandK :: K k0 => k0 -> SideEffect Krate
-- |
-- - opcode : urd
-- - syntax :
--
--
--
-- aout = urd(ktableNum)
-- iout = urd(itableNum)
-- kout = urd(ktableNum)
--
--
--
--
-- A discrete user-defined-distribution random generator that can be used
-- as a function.
--
--
urdA' :: X x0 => x0 -> x0
-- |
-- - opcode : urd
-- - syntax :
--
--
--
-- aout = urd(ktableNum)
-- iout = urd(itableNum)
-- kout = urd(ktableNum)
--
--
--
--
-- A discrete user-defined-distribution random generator that can be used
-- as a function.
--
--
urdA :: X x0 => x0 -> x0
-- |
-- - opcode : urd
-- - syntax :
--
--
--
-- aout = urd(ktableNum)
-- iout = urd(itableNum)
-- kout = urd(ktableNum)
--
--
--
--
-- A discrete user-defined-distribution random generator that can be used
-- as a function.
--
--
urdI' :: X x0 => x0 -> x0
-- |
-- - opcode : urd
-- - syntax :
--
--
--
-- aout = urd(ktableNum)
-- iout = urd(itableNum)
-- kout = urd(ktableNum)
--
--
--
--
-- A discrete user-defined-distribution random generator that can be used
-- as a function.
--
--
urdI :: X x0 => x0 -> x0
-- |
-- - opcode : urd
-- - syntax :
--
--
--
-- aout = urd(ktableNum)
-- iout = urd(itableNum)
-- kout = urd(ktableNum)
--
--
--
--
-- A discrete user-defined-distribution random generator that can be used
-- as a function.
--
--
urdK' :: X x0 => x0 -> x0
-- |
-- - opcode : urd
-- - syntax :
--
--
--
-- aout = urd(ktableNum)
-- iout = urd(itableNum)
-- kout = urd(ktableNum)
--
--
--
--
-- A discrete user-defined-distribution random generator that can be used
-- as a function.
--
--
urdK :: X x0 => x0 -> x0
-- |
-- - opcode : weibull
-- - syntax :
--
--
--
-- ares weibull ksigma, ktau
-- ires weibull ksigma, ktau
-- kres weibull ksigma, ktau
--
--
--
--
-- Weibull distribution random number generator (positive values only).
-- This is an x-class noise generator
--
--
weibullA' :: (K k0, K k1) => k0 -> k1 -> Arate
-- |
-- - opcode : weibull
-- - syntax :
--
--
--
-- ares weibull ksigma, ktau
-- ires weibull ksigma, ktau
-- kres weibull ksigma, ktau
--
--
--
--
-- Weibull distribution random number generator (positive values only).
-- This is an x-class noise generator
--
--
weibullA :: (K k0, K k1) => k0 -> k1 -> SideEffect Arate
-- |
-- - opcode : weibull
-- - syntax :
--
--
--
-- ares weibull ksigma, ktau
-- ires weibull ksigma, ktau
-- kres weibull ksigma, ktau
--
--
--
--
-- Weibull distribution random number generator (positive values only).
-- This is an x-class noise generator
--
--
weibullI' :: (K k0, K k1) => k0 -> k1 -> Irate
-- |
-- - opcode : weibull
-- - syntax :
--
--
--
-- ares weibull ksigma, ktau
-- ires weibull ksigma, ktau
-- kres weibull ksigma, ktau
--
--
--
--
-- Weibull distribution random number generator (positive values only).
-- This is an x-class noise generator
--
--
weibullI :: (K k0, K k1) => k0 -> k1 -> SideEffect Irate
-- |
-- - opcode : weibull
-- - syntax :
--
--
--
-- ares weibull ksigma, ktau
-- ires weibull ksigma, ktau
-- kres weibull ksigma, ktau
--
--
--
--
-- Weibull distribution random number generator (positive values only).
-- This is an x-class noise generator
--
--
weibullK' :: (K k0, K k1) => k0 -> k1 -> Krate
-- |
-- - opcode : weibull
-- - syntax :
--
--
--
-- ares weibull ksigma, ktau
-- ires weibull ksigma, ktau
-- kres weibull ksigma, ktau
--
--
--
--
-- Weibull distribution random number generator (positive values only).
-- This is an x-class noise generator
--
--
weibullK :: (K k0, K k1) => k0 -> k1 -> SideEffect Krate
-- |
-- - opcode : jitter
-- - syntax :
--
--
--
-- kout jitter kamp, kcpsMin, kcpsMax
--
--
--
--
-- Generates a segmented line whose segments are randomly generated.
--
--
jitter' :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : jitter
-- - syntax :
--
--
--
-- kout jitter kamp, kcpsMin, kcpsMax
--
--
--
--
-- Generates a segmented line whose segments are randomly generated.
--
--
jitter :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SideEffect Krate
-- |
-- - opcode : jitter2
-- - syntax :
--
--
--
-- kout jitter2 ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3
--
--
--
--
-- Generates a segmented line with user-controllable random segments.
--
--
jitter2' :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> Krate
-- |
-- - opcode : jitter2
-- - syntax :
--
--
--
-- kout jitter2 ktotamp, kamp1, kcps1, kamp2, kcps2, kamp3, kcps3
--
--
--
--
-- Generates a segmented line with user-controllable random segments.
--
--
jitter2 :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> SideEffect Krate
-- |
-- - opcode : trandom
-- - syntax :
--
--
--
-- kout trandom ktrig, kmin, kmax
--
--
--
--
-- Generates a controlled pseudo-random number series between min and max
-- values at k-rate whenever the trigger parameter is different to 0.
--
--
trandom' :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : trandom
-- - syntax :
--
--
--
-- kout trandom ktrig, kmin, kmax
--
--
--
--
-- Generates a controlled pseudo-random number series between min and max
-- values at k-rate whenever the trigger parameter is different to 0.
--
--
trandom :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SideEffect Krate
-- | Sample Playback
module CsoundExpr.Opcodes.Siggen.Sample
-- |
-- - opcode : bbcutm
-- - syntax :
--
--
--
-- a1 bbcutm asource, ibps, isubdiv, ibarlength, iphrasebars, inumrepeats
-- [, istutterspeed] [, istutterchance] [, ienvchoice ]
--
--
--
--
-- The BreakBeat Cutter automatically generates cut-ups of a source audio
-- stream in the style of drum and bass/jungle breakbeat manipulations.
-- There are two versions, for mono (bbcutm) or stereo (bbcuts) sources.
-- Whilst originally based on breakbeat cutting, the opcode can be
-- applied to any type of source audio.
--
--
bbcutm :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : bbcuts
-- - syntax :
--
--
--
-- a1,a2 bbcuts asource1, asource2, ibps, isubdiv, ibarlength, iphrasebars,
-- inumrepeats [, istutterspeed] [, istutterchance] [, ienvchoice]
--
--
--
--
-- The BreakBeat Cutter automatically generates cut-ups of a source audio
-- stream in the style of drum and bass/jungle breakbeat manipulations.
-- There are two versions, for mono (bbcutm) or stereo (bbcuts) sources.
-- Whilst originally based on breakbeat cutting, the opcode can be
-- applied to any type of source audio.
--
--
bbcuts :: [Irate] -> Arate -> Arate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : flooper
-- - syntax :
--
--
--
-- asig flooper kamp, kpitch, istart, idur, ifad, ifn
--
--
--
--
-- This opcode reads audio from a function table and plays it back in a
-- loop with user-defined start time, duration and crossfade time. It
-- also allows the pitch of the loop to be controlled, including reversed
-- playback. It accepts non-power-of-two tables, such as
-- deferred-allocation GEN01 tables.
--
--
flooper :: (K k0, K k1) => k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : flooper2
-- - syntax :
--
--
--
-- asig flooper2 kamp, kpitch, kloopstart, kloopend, kcrossfade, ifn
-- [, istart, imode, ifenv, iskip]
--
--
--
--
-- This opcode implements a crossfading looper with variable loop
-- parameters and three looping modes, optionally using a table for its
-- crossfade shape. It accepts non-power-of-two tables for its source
-- sounds, such as deferred-allocation GEN01 tables.
--
--
flooper2 :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> Irate -> Arate
-- |
-- - opcode : loscil
-- - syntax :
--
--
--
-- ar1 [,ar2] loscil xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1]
-- [, imod2] [, ibeg2] [, iend2]
--
--
--
--
-- Read sampled sound (mono or stereo) from a table, with optional
-- sustain and release looping.
--
--
loscil :: (X x0, K k0) => [Irate] -> x0 -> k0 -> Irate -> MultiOut
-- |
-- - opcode : loscil3
-- - syntax :
--
--
--
-- ar1 [,ar2] loscil3 xamp, kcps, ifn [, ibas] [, imod1] [, ibeg1] [, iend1]
-- [, imod2] [, ibeg2] [, iend2]
--
--
--
--
-- Read sampled sound (mono or stereo) from a table, with optional
-- sustain and release looping, using cubic interpolation.
--
--
loscil3 :: (X x0, K k0) => [Irate] -> x0 -> k0 -> Irate -> MultiOut
-- |
-- - opcode : loscilx
-- - syntax :
--
--
--
-- ar1 [, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14,
-- ar15, ar16] loscilx xamp, kcps, ifn
-- [, iwsize, ibas, istrt, imod1, ibeg1, iend1]
--
--
--
--
-- This file is currently a stub, but the syntax should be correct.
--
--
loscilx :: (X x0, K k0) => [Irate] -> x0 -> k0 -> Irate -> MultiOut
-- |
-- - opcode : lphasor
-- - syntax :
--
--
--
-- ares lphasor xtrns [, ilps] [, ilpe] [, imode] [, istrt] [, istor]
--
--
--
--
-- This opcode can be used to generate table index for sample playback
-- (e.g. tablexkt).
--
--
lphasor :: X x0 => [Irate] -> x0 -> Arate
-- |
-- - opcode : lposcil
-- - syntax :
--
--
--
-- ares lposcil kamp, kfreqratio, kloop, kend, ifn [, iphs]
--
--
--
--
-- Read sampled sound (mono or stereo) from a table, with optional
-- sustain and release looping, and high precision.
--
--
lposcil :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> k2 -> k3 -> Irate -> Arate
-- |
-- - opcode : lposcil3
-- - syntax :
--
--
--
-- ares lposcil3 kamp, kfreqratio, kloop, kend, ifn [, iphs]
--
--
--
--
-- Read sampled sound (mono or stereo) from a table, with optional
-- sustain and release looping, and high precision. lposcil3 uses cubic
-- interpolation.
--
--
lposcil3 :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> k2 -> k3 -> Irate -> Arate
-- |
-- - opcode : lposcila
-- - syntax :
--
--
--
-- ar lposcila aamp, kfreqratio, kloop, kend, ift [,iphs]
--
--
--
--
-- lposcila reads sampled sound from a table with optional looping and
-- high precision.
--
--
lposcila :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Irate -> Arate
-- |
-- - opcode : lposcilsa
-- - syntax :
--
--
--
-- ar1, ar2 lposcilsa aamp, kfreqratio, kloop, kend, ift [,iphs]
--
--
--
--
-- lposcilsa reads stereo sampled sound from a table with optional
-- looping and high precision.
--
--
lposcilsa :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Irate -> MultiOut
-- |
-- - opcode : lposcilsa2
-- - syntax :
--
--
--
-- ar1, ar2 lposcilsa2 aamp, kfreqratio, kloop, kend, ift [,iphs]
--
--
--
--
-- lposcilsa2 reads stereo sampled sound from a table with optional
-- looping and high precision.
--
--
lposcilsa2 :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Irate -> MultiOut
-- |
-- - opcode : sndloop
-- - syntax :
--
--
--
-- asig, krec sndloop ain, kpitch, ktrig, idur, ifad
--
--
--
--
-- This opcode records input audio and plays it back in a loop with
-- user-defined duration and crossfade time. It also allows the pitch of
-- the loop to be controlled, including reversed playback.
--
--
sndloop :: (K k0, K k1) => Arate -> k0 -> k1 -> Irate -> Irate -> (Arate, Krate)
-- |
-- - opcode : waveset
-- - syntax :
--
--
--
-- ares waveset ain, krep [, ilen]
--
--
--
--
-- A simple time stretch by repeating cycles.
--
--
waveset :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : fluidAllOut
-- - syntax :
--
--
--
-- aleft, aright fluidAllOut
--
--
--
--
-- Collects all audio from all Fluidsynth engines in a performance
--
--
fluidAllOut :: MultiOut
-- |
-- - opcode : fluidCCi
-- - syntax :
--
--
--
-- fluidCCi iEngineNumber, iChannelNumber, iControllerNumber, iValue
--
--
--
--
-- Sends a MIDI controller data (MIDI controller number and value to use)
-- message to a fluid engine by number on the user specified MIDI channel
-- number.
--
--
fluidCCi :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : fluidCCk
-- - syntax :
--
--
--
-- fluidCCk iEngineNumber, iChannelNumber, iControllerNumber, kValue
--
--
--
--
-- Sends a MIDI controller data (MIDI controller number and value to use)
-- message to a fluid engine by number on the user specified MIDI channel
-- number.
--
--
fluidCCk :: K k0 => Irate -> Irate -> Irate -> k0 -> SignalOut
-- |
-- - opcode : fluidControl
-- - syntax :
--
--
--
-- fluidControl ienginenum, kstatus, kchannel, kdata1, kdata2
--
--
--
--
-- The fluid opcodes provide a simple Csound opcode wrapper around Peter
-- Hanappe's Fluidsynth SoundFont2 synthesizer. This implementation
-- accepts any MIDI note on, note off, controller, pitch bend, or program
-- change message at k-rate. Maximum polyphony is 4096 simultaneously
-- sounding voices. Any number of SoundFonts may be loaded and played
-- simultaneously.
--
--
fluidControl :: (K k0, K k1, K k2, K k3) => Irate -> k0 -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : fluidEngine
-- - syntax :
--
--
--
-- ienginenum fluidEngine [iReverbEnabled] [, iChorusEnabled] [,iNumChannels] [, iPolyphony]
--
--
--
--
-- Instantiates a fluidsynth engine, and returns ienginenum to identify
-- the engine. ienginenum is passed to other other opcodes for loading
-- and playing SoundFonts and gathering the generated sound.
--
--
fluidEngine :: [Irate] -> Irate
-- |
-- - opcode : fluidLoad
-- - syntax :
--
--
--
-- isfnum fluidLoad soundfont, ienginenum[, ilistpresets]
--
--
--
--
-- Loads a SoundFont into an instance of a fluidEngine, optionally
-- listing banks and presets for SoundFont.
--
--
fluidLoad :: [Irate] -> String -> Irate -> Irate
-- |
-- - opcode : fluidNote
-- - syntax :
--
--
--
-- fluidNote ienginenum, ichannelnum, imidikey, imidivel
--
--
--
--
-- Plays a note at imidikey pitch and imidivel velocity on ichannelnum
-- channel of number ienginenum fluidEngine.
--
--
fluidNote :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : fluidOut
-- - syntax :
--
--
--
-- aleft, aright fluidOut ienginenum
--
--
--
--
-- Outputs the sound from a fluidEngine.
--
--
fluidOut :: Irate -> MultiOut
-- |
-- - opcode : fluidProgramSelect
-- - syntax :
--
--
--
-- fluidProgramSelect ienginenum, ichannelnum, isfnum, ibanknum, ipresetnum
--
--
--
--
-- Assigns a preset from a SoundFont to a channel on a fluidEngine.
--
--
fluidProgramSelect :: Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : fluidSetInterpMethod
-- - syntax :
--
--
--
-- fluidSetInterpMethod ienginenum, ichannelnum, iInterpMethod
--
--
--
--
-- Set interpolation method for channel in Fluid Engine. Lower order
-- interpolation methods will render faster at lower fidelity while
-- higher order interpolation methods will render slower at higher
-- fidelity. Default interpolation for a channel is 4th order
-- interpolation.
--
--
fluidSetInterpMethod :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : sfilist
-- - syntax :
--
--
--
-- sfilist ifilhandle
--
--
--
--
-- Prints a list of all instruments of a previously loaded SoundFont2
-- (SF2) sample file. These opcodes allow management the sample-structure
-- of SF2 files. In order to understand the usage of these opcodes, the
-- user must have some knowledge of the SF2 format, so a brief
-- description of this format can be found in the SoundFont2 File Format
-- Appendix.
--
--
sfilist :: Irate -> SignalOut
-- |
-- - opcode : sfinstr
-- - syntax :
--
--
--
-- ar1, ar2 sfinstr ivel, inotenum, xamp, xfreq, instrnum, ifilhandle
-- [, iflag] [, ioffset]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound.
-- These opcodes allow management the sample-structure of SF2 files. In
-- order to understand the usage of these opcodes, the user must have
-- some knowledge of the SF2 format, so a brief description of this
-- format can be found in the SoundFont2 File Format Appendix.
--
--
sfinstr :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : sfinstr3
-- - syntax :
--
--
--
-- ar1, ar2 sfinstr3 ivel, inotenum, xamp, xfreq, instrnum, ifilhandle
-- [, iflag] [, ioffset]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample instrument, generating a stereo sound
-- with cubic interpolation. These opcodes allow management the
-- sample-structure of SF2 files. In order to understand the usage of
-- these opcodes, the user must have some knowledge of the SF2 format, so
-- a brief description of this format can be found in the SoundFont2 File
-- Format Appendix.
--
--
sfinstr3 :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : sfinstr3m
-- - syntax :
--
--
--
-- ares sfinstr3m ivel, inotenum, xamp, xfreq, instrnum, ifilhandle
-- [, iflag] [, ioffset]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample instrument, generating a mono sound
-- with cubic interpolation. These opcodes allow management the
-- sample-structure of SF2 files. In order to understand the usage of
-- these opcodes, the user must have some knowledge of the SF2 format, so
-- a brief description of this format can be found in the SoundFont2 File
-- Format Appendix.
--
--
sfinstr3m :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> Irate -> Arate
-- |
-- - opcode : sfinstrm
-- - syntax :
--
--
--
-- ares sfinstrm ivel, inotenum, xamp, xfreq, instrnum, ifilhandle
-- [, iflag] [, ioffset]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample instrument, generating a mono sound.
-- These opcodes allow management the sample-structure of SF2 files. In
-- order to understand the usage of these opcodes, the user must have
-- some knowledge of the SF2 format, so a brief description of this
-- format can be found in the SoundFont2 File Format Appendix.
--
--
sfinstrm :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> Irate -> Arate
-- |
-- - opcode : sfload
-- - syntax :
--
--
--
-- ir sfload "filename"
--
--
--
--
-- Loads an entire SoundFont2 (SF2) sample file into memory. These
-- opcodes allow management the sample-structure of SF2 files. In order
-- to understand the usage of these opcodes, the user must have some
-- knowledge of the SF2 format, so a brief description of this format can
-- be found in the SoundFont2 File Format Appendix.
--
--
sfload :: String -> Irate
-- |
-- - opcode : sfpassign
-- - syntax :
--
--
--
-- sfpassign istartindex, ifilhandle[, imsgs]
--
--
--
--
-- Assigns all presets of a previously loaded SoundFont2 (SF2) sample
-- file to a sequence of progressive index numbers. These opcodes allow
-- management the sample-structure of SF2 files. In order to understand
-- the usage of these opcodes, the user must have some knowledge of the
-- SF2 format, so a brief description of this format can be found in the
-- SoundFont2 File Format Appendix.
--
--
sfpassign :: [Irate] -> Irate -> Irate -> SignalOut
-- |
-- - opcode : sfplay
-- - syntax :
--
--
--
-- ar1, ar2 sfplay ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample preset, generating a stereo sound.
-- These opcodes allow management the sample-structure of SF2 files. In
-- order to understand the usage of these opcodes, the user must have
-- some knowledge of the SF2 format, so a brief description of this
-- format can be found in the SoundFont2 File Format Appendix.
--
--
sfplay :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> MultiOut
-- |
-- - opcode : sfplay3
-- - syntax :
--
--
--
-- ar1, ar2 sfplay3 ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample preset, generating a stereo sound with
-- cubic interpolation. These opcodes allow management the
-- sample-structure of SF2 files. In order to understand the usage of
-- these opcodes, the user must have some knowledge of the SF2 format, so
-- a brief description of this format can be found in the SoundFont2 File
-- Format Appendix.
--
--
sfplay3 :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> MultiOut
-- |
-- - opcode : sfplay3m
-- - syntax :
--
--
--
-- ares sfplay3m ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample preset, generating a mono sound with
-- cubic interpolation. These opcodes allow management the
-- sample-structure of SF2 files. In order to understand the usage of
-- these opcodes, the user must have some knowledge of the SF2 format, so
-- a brief description of this format can be found in the SoundFont2 File
-- Format Appendix.
--
--
sfplay3m :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> Arate
-- |
-- - opcode : sfplaym
-- - syntax :
--
--
--
-- ares sfplaym ivel, inotenum, xamp, xfreq, ipreindex [, iflag] [, ioffset] [, ienv]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample preset, generating a mono sound. These
-- opcodes allow management the sample-structure of SF2 files. In order
-- to understand the usage of these opcodes, the user must have some
-- knowledge of the SF2 format, so a brief description of this format can
-- be found in the SoundFont2 File Format Appendix.
--
--
sfplaym :: (X x0, X x1) => [Irate] -> Irate -> Irate -> x0 -> x1 -> Irate -> Arate
-- |
-- - opcode : sflooper
-- - syntax :
--
--
--
-- ar1, ar2 sflooper ivel, inotenum, kamp, kpitch, ipreindex, kloopstart, kloopend, kcrossfade, ifn
-- [, istart, imode, ifenv, iskip]
--
--
--
--
-- Plays a SoundFont2 (SF2) sample preset, generating a stereo sound,
-- similarly to sfplay. Unlike that opcode, though, it ignores the
-- looping points set in the SF2 file and substitutes them for a
-- user-defined crossfade loop. It is a cross between sfplay and
-- flooper2.
--
--
sflooper :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> Irate -> Irate -> k0 -> k1 -> Irate -> k2 -> k3 -> k4 -> Irate -> MultiOut
-- |
-- - opcode : sfplist
-- - syntax :
--
--
--
-- sfplist ifilhandle
--
--
--
--
-- Prints a list of all presets of a previously loaded SoundFont2 (SF2)
-- sample file. These opcodes allow management the sample-structure of
-- SF2 files. In order to understand the usage of these opcodes, the user
-- must have some knowledge of the SF2 format, so a brief description of
-- this format can be found in the SoundFont2 File Format Appendix.
--
--
sfplist :: Irate -> SignalOut
-- |
-- - opcode : sfpreset
-- - syntax :
--
--
--
-- ir sfpreset iprog, ibank, ifilhandle, ipreindex
--
--
--
--
-- Assigns an existing preset of a previously loaded SoundFont2 (SF2)
-- sample file to an index number. These opcodes allow management the
-- sample-structure of SF2 files. In order to understand the usage of
-- these opcodes, the user must have some knowledge of the SF2 format, so
-- a brief description of this format can be found in the SoundFont2 File
-- Format Appendix.
--
--
sfpreset :: Irate -> Irate -> Irate -> Irate -> Irate
-- | Scanned Synthesis
module CsoundExpr.Opcodes.Siggen.ScanTop
-- |
-- - opcode : scanhammer
-- - syntax :
--
--
--
-- scanhammer isrc, idst, ipos, imult
--
--
--
--
-- This is is a variant of tablecopy, copying from one table to another,
-- starting at ipos, and with a gain control. The number of points copied
-- is determined by the length of the source. Other points are not
-- changed. This opcode can be used to hit a string in the scanned
-- synthesis code.
--
--
scanhammer :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : scans
-- - syntax :
--
--
--
-- ares scans kamp, kfreq, ifn, id [, iorder]
--
--
--
--
-- Generate audio output using scanned synthesis.
--
--
scans :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Arate
-- |
-- - opcode : scantable
-- - syntax :
--
--
--
-- aout scantable kamp, kpch, ipos, imass, istiff, idamp, ivel
--
--
--
--
-- A simpler scanned synthesis implementation. This is an implementation
-- of a circular string scanned using external tables. This opcode will
-- allow direct modification and reading of values with the table
-- opcodes.
--
--
scantable :: (K k0, K k1) => k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : scanu
-- - syntax :
--
--
--
-- scanu init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass,
-- kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id
--
--
--
--
-- Compute the waveform and the wavetable for use in scanned synthesis.
--
--
scanu :: (K k0, K k1, K k2, K k3, K k4, K k5) => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> k4 -> k5 -> Arate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : xscanmap
-- - syntax :
--
--
--
-- kpos, kvel xscanmap iscan, kamp, kvamp [, iwhich]
--
--
--
--
-- Allows the position and velocity of a node in a scanned process to be
-- read.
--
--
xscanmap :: (K k0, K k1) => [Irate] -> Irate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : xscans
-- - syntax :
--
--
--
-- ares xscans kamp, kfreq, ifntraj, id [, iorder]
--
--
--
--
-- Experimental version of scans. Allows much larger matrices and is
-- faster and smaller but removes some (unused?) flexibility. If liked,
-- it will replace the older opcode as it is syntax compatible but
-- extended.
--
--
xscans :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Arate
-- |
-- - opcode : xscansmap
-- - syntax :
--
--
--
-- xscansmap kpos, kvel, iscan, kamp, kvamp [, iwhich]
--
--
--
--
-- Allows the position and velocity of a node in a scanned process to be
-- read.
--
--
xscansmap :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> Irate -> k2 -> k3 -> SignalOut
-- |
-- - opcode : xscanu
-- - syntax :
--
--
--
-- xscanu init, irate, ifnvel, ifnmass, ifnstif, ifncentr, ifndamp, kmass,
-- kstif, kcentr, kdamp, ileft, iright, kpos, kstrngth, ain, idisp, id
--
--
--
--
-- Experimental version of scanu. Allows much larger matrices and is
-- faster and smaller but removes some (unused?) flexibility. If liked,
-- it will replace the older opcode as it is syntax compatible but
-- extended.
--
--
xscanu :: (K k0, K k1, K k2, K k3, K k4, K k5) => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> k4 -> k5 -> Arate -> Irate -> Irate -> SignalOut
-- | Table Access
module CsoundExpr.Opcodes.Siggen.Tableacc
-- |
-- - opcode : oscil1
-- - syntax :
--
--
--
-- kres oscil1 idel, kamp, idur, ifn
--
--
--
--
-- Accesses table values by incremental sampling.
--
--
oscil1 :: K k0 => Irate -> k0 -> Irate -> Irate -> Krate
-- |
-- - opcode : oscil1i
-- - syntax :
--
--
--
-- kres oscil1i idel, kamp, idur, ifn
--
--
--
--
-- Accesses table values by incremental sampling with linear
-- interpolation.
--
--
oscil1i :: K k0 => Irate -> k0 -> Irate -> Irate -> Krate
-- |
-- - opcode : table
-- - syntax :
--
--
--
-- ares table andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires table indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing.
--
--
tableA :: [Irate] -> Arate -> Irate -> Arate
-- |
-- - opcode : table
-- - syntax :
--
--
--
-- ares table andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires table indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing.
--
--
tableI :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : table
-- - syntax :
--
--
--
-- ares table andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires table indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing.
--
--
tableK :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : table3
-- - syntax :
--
--
--
-- ares table3 andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires table3 indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres table3 kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing with cubic interpolation.
--
--
table3A :: [Irate] -> Arate -> Irate -> Arate
-- |
-- - opcode : table3
-- - syntax :
--
--
--
-- ares table3 andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires table3 indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres table3 kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing with cubic interpolation.
--
--
table3I :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : table3
-- - syntax :
--
--
--
-- ares table3 andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires table3 indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres table3 kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing with cubic interpolation.
--
--
table3K :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : tablei
-- - syntax :
--
--
--
-- ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing with linear interpolation.
--
--
tableiA :: [Irate] -> Arate -> Irate -> Arate
-- |
-- - opcode : tablei
-- - syntax :
--
--
--
-- ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing with linear interpolation.
--
--
tableiI :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : tablei
-- - syntax :
--
--
--
-- ares tablei andx, ifn [, ixmode] [, ixoff] [, iwrap]
-- ires tablei indx, ifn [, ixmode] [, ixoff] [, iwrap]
-- kres tablei kndx, ifn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Accesses table values by direct indexing with linear interpolation.
--
--
tableiK :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : tab
-- - syntax :
--
--
--
-- ir tab_i indx, ifn[, ixmode]
-- kr tab kndx, ifn[, ixmode]
-- ar tab xndx, ifn[, ixmode]
-- tabw_i isig, indx, ifn [,ixmode]
-- tabw ksig, kndx, ifn [,ixmode]
-- tabw asig, andx, ifn [,ixmode]
--
--
--
--
-- Fast table opcodes. Faster than table and tablew because don't allow
-- wrap-around and limit and don't check index validity. Have been
-- implemented in order to provide fast access to arrays. Support
-- non-power of two tables (can be generated by any GEN function by
-- giving a negative length value).
--
--
tabA :: X x0 => [Irate] -> x0 -> Irate -> Arate
-- |
-- - opcode : tab
-- - syntax :
--
--
--
-- ir tab_i indx, ifn[, ixmode]
-- kr tab kndx, ifn[, ixmode]
-- ar tab xndx, ifn[, ixmode]
-- tabw_i isig, indx, ifn [,ixmode]
-- tabw ksig, kndx, ifn [,ixmode]
-- tabw asig, andx, ifn [,ixmode]
--
--
--
--
-- Fast table opcodes. Faster than table and tablew because don't allow
-- wrap-around and limit and don't check index validity. Have been
-- implemented in order to provide fast access to arrays. Support
-- non-power of two tables (can be generated by any GEN function by
-- giving a negative length value).
--
--
tabK :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : tab_i
-- - syntax :
--
--
--
-- ir tab_i indx, ifn[, ixmode]
-- kr tab kndx, ifn[, ixmode]
-- ar tab xndx, ifn[, ixmode]
-- tabw_i isig, indx, ifn [,ixmode]
-- tabw ksig, kndx, ifn [,ixmode]
-- tabw asig, andx, ifn [,ixmode]
--
--
--
--
-- Fast table opcodes. Faster than table and tablew because don't allow
-- wrap-around and limit and don't check index validity. Have been
-- implemented in order to provide fast access to arrays. Support
-- non-power of two tables (can be generated by any GEN function by
-- giving a negative length value).
--
--
tab_i :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : tabw
-- - syntax :
--
--
--
-- ir tab_i indx, ifn[, ixmode]
-- kr tab kndx, ifn[, ixmode]
-- ar tab xndx, ifn[, ixmode]
-- tabw_i isig, indx, ifn [,ixmode]
-- tabw ksig, kndx, ifn [,ixmode]
-- tabw asig, andx, ifn [,ixmode]
--
--
--
--
-- Fast table opcodes. Faster than table and tablew because don't allow
-- wrap-around and limit and don't check index validity. Have been
-- implemented in order to provide fast access to arrays. Support
-- non-power of two tables (can be generated by any GEN function by
-- giving a negative length value).
--
--
tabwA :: [Irate] -> Arate -> Arate -> Irate -> SignalOut
-- |
-- - opcode : tabw
-- - syntax :
--
--
--
-- ir tab_i indx, ifn[, ixmode]
-- kr tab kndx, ifn[, ixmode]
-- ar tab xndx, ifn[, ixmode]
-- tabw_i isig, indx, ifn [,ixmode]
-- tabw ksig, kndx, ifn [,ixmode]
-- tabw asig, andx, ifn [,ixmode]
--
--
--
--
-- Fast table opcodes. Faster than table and tablew because don't allow
-- wrap-around and limit and don't check index validity. Have been
-- implemented in order to provide fast access to arrays. Support
-- non-power of two tables (can be generated by any GEN function by
-- giving a negative length value).
--
--
tabwK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> SignalOut
-- |
-- - opcode : tabw_i
-- - syntax :
--
--
--
-- ir tab_i indx, ifn[, ixmode]
-- kr tab kndx, ifn[, ixmode]
-- ar tab xndx, ifn[, ixmode]
-- tabw_i isig, indx, ifn [,ixmode]
-- tabw ksig, kndx, ifn [,ixmode]
-- tabw asig, andx, ifn [,ixmode]
--
--
--
--
-- Fast table opcodes. Faster than table and tablew because don't allow
-- wrap-around and limit and don't check index validity. Have been
-- implemented in order to provide fast access to arrays. Support
-- non-power of two tables (can be generated by any GEN function by
-- giving a negative length value).
--
--
tabw_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- | Wave Terrain Synthesis
module CsoundExpr.Opcodes.Siggen.Waveterr
-- |
-- - opcode : wterrain
-- - syntax :
--
--
--
-- aout wterrain kamp, kpch, k_xcenter, k_ycenter, k_xradius, k_yradius,
-- itabx, itaby
--
--
--
--
-- A simple wave-terrain synthesis opcode.
--
--
wterrain :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Irate -> Arate
-- | Waveguide Physical Modeling
module CsoundExpr.Opcodes.Siggen.Wavguide
-- |
-- - opcode : pluck
-- - syntax :
--
--
--
-- ares pluck kamp, kcps, icps, ifn, imeth [, iparm1] [, iparm2]
--
--
--
--
-- Audio output is a naturally decaying plucked string or drum sound
-- based on the Karplus-Strong algorithms.
--
--
pluck :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : repluck
-- - syntax :
--
--
--
-- ares repluck iplk, kamp, icps, kpick, krefl, axcite
--
--
--
--
-- repluck is an implementation of the physical model of the plucked
-- string. A user can control the pluck point, the pickup point, the
-- filter, and an additional audio signal, axcite. axcite is used to
-- excite the string. Based on the Karplus-Strong algorithm.
--
--
repluck :: (K k0, K k1, K k2) => Irate -> k0 -> Irate -> k1 -> k2 -> Arate -> Arate
-- |
-- - opcode : wgbow
-- - syntax :
--
--
--
-- ares wgbow kamp, kfreq, kpres, krat, kvibf, kvamp, ifn [, iminfreq]
--
--
--
--
-- Audio output is a tone similar to a bowed string, using a physical
-- model developed from Perry Cook, but re-coded for Csound.
--
--
wgbow :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Arate
-- |
-- - opcode : wgbowedbar
-- - syntax :
--
--
--
-- ares wgbowedbar kamp, kfreq, kpos, kbowpres, kgain [, iconst] [, itvel]
-- [, ibowpos] [, ilow]
--
--
--
--
-- A physical model of a bowed bar, belonging to the Perry Cook family of
-- waveguide instruments.
--
--
wgbowedbar :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> k0 -> k1 -> k2 -> k3 -> k4 -> Arate
-- |
-- - opcode : wgbrass
-- - syntax :
--
--
--
-- ares wgbrass kamp, kfreq, ktens, iatt, kvibf, kvamp, ifn [, iminfreq]
--
--
--
--
-- Audio output is a tone related to a brass instrument, using a physical
-- model developed from Perry Cook, but re-coded for Csound.
--
--
wgbrass :: (K k0, K k1, K k2, K k3, K k4) => [Irate] -> k0 -> k1 -> k2 -> Irate -> k3 -> k4 -> Irate -> Arate
-- |
-- - opcode : wgclar
-- - syntax :
--
--
--
-- ares wgclar kamp, kfreq, kstiff, iatt, idetk, kngain, kvibf, kvamp, ifn
-- [, iminfreq]
--
--
--
--
-- Audio output is a tone similar to a clarinet, using a physical model
-- developed from Perry Cook, but re-coded for Csound.
--
--
wgclar :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> k0 -> k1 -> k2 -> Irate -> Irate -> k3 -> k4 -> k5 -> Irate -> Arate
-- |
-- - opcode : wgflute
-- - syntax :
--
--
--
-- ares wgflute kamp, kfreq, kjet, iatt, idetk, kngain, kvibf, kvamp, ifn
-- [, iminfreq] [, ijetrf] [, iendrf]
--
--
--
--
-- Audio output is a tone similar to a flute, using a physical model
-- developed from Perry Cook, but re-coded for Csound.
--
--
wgflute :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> k0 -> k1 -> k2 -> Irate -> Irate -> k3 -> k4 -> k5 -> Irate -> Arate
-- |
-- - opcode : wgpluck
-- - syntax :
--
--
--
-- ares wgpluck icps, iamp, kpick, iplk, idamp, ifilt, axcite
--
--
--
--
-- A high fidelity simulation of a plucked string, using interpolating
-- delay-lines.
--
--
wgpluck :: K k0 => Irate -> Irate -> k0 -> Irate -> Irate -> Irate -> Arate -> Arate
-- |
-- - opcode : wgpluck2
-- - syntax :
--
--
--
-- ares wgpluck2 iplk, kamp, icps, kpick, krefl
--
--
--
--
-- wgpluck2 is an implementation of the physical model of the plucked
-- string, with control over the pluck point, the pickup point and the
-- filter. Based on the Karplus-Strong algorithm.
--
--
wgpluck2 :: (K k0, K k1, K k2) => Irate -> k0 -> Irate -> k1 -> k2 -> Arate
-- |
-- - opcode : wguide1
-- - syntax :
--
--
--
-- ares wguide1 asig, xfreq, kcutoff, kfeedback
--
--
--
--
-- A simple waveguide model consisting of one delay-line and one
-- first-order lowpass filter.
--
--
wguide1 :: (X x0, K k0, K k1) => Arate -> x0 -> k0 -> k1 -> Arate
-- |
-- - opcode : wguide2
-- - syntax :
--
--
--
-- ares wguide2 asig, xfreq1, xfreq2, kcutoff1, kcutoff2,
-- kfeedback1, kfeedback2
--
--
--
--
-- A model of beaten plate consisting of two parallel delay-lines and two
-- first-order lowpass filters.
--
--
wguide2 :: (X x0, X x1, K k0, K k1, K k2, K k3) => Arate -> x0 -> x1 -> k0 -> k1 -> k2 -> k3 -> Arate
-- | Signal Generators
module CsoundExpr.Opcodes.Siggen
-- | File Input and Output
module CsoundExpr.Opcodes.Sigio.FileIO
-- |
-- - opcode : fiopen
-- - syntax :
--
--
--
-- ihandle fiopen ifilename, imode
--
--
--
--
-- fiopen can be used to open a file in one of the specified modes.
--
--
fiopen :: Irate -> Irate -> Irate
-- |
-- - opcode : ficlose
-- - syntax :
--
--
--
-- ficlose ihandle
-- ficlose Sfilename
--
--
--
--
-- ficlose can be used to close a file which was opened with fiopen.
--
--
ficloseI :: Irate -> SignalOut
-- |
-- - opcode : ficlose
-- - syntax :
--
--
--
-- ficlose ihandle
-- ficlose Sfilename
--
--
--
--
-- ficlose can be used to close a file which was opened with fiopen.
--
--
ficloseS :: String -> SignalOut
-- |
-- - opcode : dumpk
-- - syntax :
--
--
--
-- dumpk ksig, ifilname, iformat, iprd
--
--
--
--
-- Periodically writes an orchestra control-signal value to a named
-- external file in a specific format.
--
--
dumpk :: K k0 => k0 -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : dumpk2
-- - syntax :
--
--
--
-- dumpk2 ksig1, ksig2, ifilname, iformat, iprd
--
--
--
--
-- Periodically writes two orchestra control-signal values to a named
-- external file in a specific format.
--
--
dumpk2 :: (K k0, K k1) => k0 -> k1 -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : dumpk3
-- - syntax :
--
--
--
-- dumpk3 ksig1, ksig2, ksig3, ifilname, iformat, iprd
--
--
--
--
-- Periodically writes three orchestra control-signal values to a named
-- external file in a specific format.
--
--
dumpk3 :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : dumpk4
-- - syntax :
--
--
--
-- dumpk4 ksig1, ksig2, ksig3, ksig4, ifilname, iformat, iprd
--
--
--
--
-- Periodically writes four orchestra control-signal values to a named
-- external file in a specific format.
--
--
dumpk4 :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : fout
-- - syntax :
--
--
--
-- fout ifilename, iformat, aout1 [, aout2, aout3,...,aoutN]
--
--
--
--
-- fout outputs N a-rate signals to a specified file of N channels.
--
--
fout :: String -> Irate -> [Arate] -> SignalOut
-- |
-- - opcode : fouti
-- - syntax :
--
--
--
-- fouti ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN]
--
--
--
--
-- fouti output N i-rate signals to a specified file of N channels.
--
--
fouti :: Irate -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : foutir
-- - syntax :
--
--
--
-- foutir ihandle, iformat, iflag, iout1 [, iout2, iout3,....,ioutN]
--
--
--
--
-- foutir output N i-rate signals to a specified file of N channels.
--
--
foutir :: Irate -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : foutk
-- - syntax :
--
--
--
-- foutk ifilename, iformat, kout1 [, kout2, kout3,....,koutN]
--
--
--
--
-- foutk outputs N k-rate signals to a specified file of N channels.
--
--
foutk :: K k0 => String -> Irate -> [k0] -> SignalOut
-- |
-- - opcode : readk
-- - syntax :
--
--
--
-- kres readk ifilname, iformat, iprd
--
--
--
--
-- Periodically reads an orchestra control-signal value from a named
-- external file in a specific format.
--
--
readk :: Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : readk2
-- - syntax :
--
--
--
-- kr1, kr2 readk2 ifilname, iformat, iprd
--
--
--
--
-- Periodically reads two orchestra control-signal values from an
-- external file.
--
--
readk2 :: Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : readk3
-- - syntax :
--
--
--
-- kr1, kr2, kr3 readk3 ifilname, iformat, iprd
--
--
--
--
-- Periodically reads three orchestra control-signal values from an
-- external file.
--
--
readk3 :: Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : readk4
-- - syntax :
--
--
--
-- kr1, kr2, kr3, kr4 readk4 ifilname, iformat, iprd
--
--
--
--
-- Periodically reads four orchestra control-signal values from an
-- external file.
--
--
readk4 :: Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : fin
-- - syntax :
--
--
--
-- fin ifilename, iskipframes, iformat, ain1 [, ain2] [, ain3] [,...]
--
--
--
--
-- Read signals from a file at a-rate.
--
--
fin :: String -> Irate -> Irate -> [Arate] -> SignalOut
-- |
-- - opcode : fini
-- - syntax :
--
--
--
-- fini ifilename, iskipframes, iformat, in1 [, in2] [, in3] [,...]
--
--
--
--
-- Read signals from a file at i-rate.
--
--
fini :: String -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : fink
-- - syntax :
--
--
--
-- fink ifilename, iskipframes, iformat, kin1 [, kin2] [, kin3] [,...]
--
--
--
--
-- Read signals from a file at k-rate.
--
--
fink :: K k0 => String -> Irate -> Irate -> [k0] -> SignalOut
-- |
-- - opcode : clear
-- - syntax :
--
--
--
-- clear avar1 [, avar2] [, avar3] [...]
--
--
--
--
-- clear zeroes a list of audio signals.
--
--
clear :: [Arate] -> SignalOut
-- |
-- - opcode : vincr
-- - syntax :
--
--
--
-- vincr accum, aincr
--
--
--
--
-- vincr increments one audio variable with another signal, i.e. it
-- accumulates output.
--
--
vincr :: Arate -> Arate -> SignalOut
-- |
-- - opcode : fprints
-- - syntax :
--
--
--
-- fprints "filename", "string" [, ival1] [, ival2] [...]
--
--
--
--
-- Similar to prints but prints to a file.
--
--
fprints :: String -> String -> [Irate] -> SignalOut
-- |
-- - opcode : fprintks
-- - syntax :
--
--
--
-- fprintks "filename", "string", [, kval1] [, kval2] [...]
--
--
--
--
-- Similar to printks but prints to a file.
--
--
fprintks :: K k0 => String -> String -> [k0] -> SignalOut
-- | Signal Input
module CsoundExpr.Opcodes.Sigio.Input
-- |
-- - opcode : in
-- - syntax :
--
--
--
-- ar1 in
--
--
--
--
-- Reads mono audio data from an external device or stream.
--
--
in' :: Arate
-- |
-- - opcode : in32
-- - syntax :
--
--
--
-- ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12, ar13, ar14,
-- ar15, ar16, ar17, ar18, ar19, ar20, ar21, ar22, ar23, ar24, ar25, ar26,
-- ar27, ar28, ar29, ar30, ar31, ar32 in32
--
--
--
--
-- Reads a 32-channel audio signal from an external device or stream.
--
--
in32 :: MultiOut
-- |
-- - opcode : inch
-- - syntax :
--
--
--
-- ain inch kchan
--
--
--
--
-- Reads from a numbered channel in an external audio signal or stream.
--
--
inch :: K k0 => k0 -> Arate
-- |
-- - opcode : inh
-- - syntax :
--
--
--
-- ar1, ar2, ar3, ar4, ar5, ar6 inh
--
--
--
--
-- Reads six-channel audio data from an external device or stream.
--
--
inh :: MultiOut
-- |
-- - opcode : ino
-- - syntax :
--
--
--
-- ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8 ino
--
--
--
--
-- Reads eight-channel audio data from an external device or stream.
--
--
ino :: MultiOut
-- |
-- - opcode : inq
-- - syntax :
--
--
--
-- ar1, ar2, ar3, a4 inq
--
--
--
--
-- Reads quad audio data from an external device or stream.
--
--
inq :: MultiOut
-- |
-- - opcode : inrg
-- - syntax :
--
--
--
-- inrg kstart, ain1 [,ain2, ain3,..., ainN]
--
--
--
--
-- inrg reads audio from a range of adjacent audio channels from the
-- audio input device.
--
--
inrg :: K k0 => k0 -> [Arate] -> SignalOut
-- |
-- - opcode : ins
-- - syntax :
--
--
--
-- ar1, ar2 ins
--
--
--
--
-- Reads stereo audio data from an external device or stream.
--
--
ins :: MultiOut
-- |
-- - opcode : inx
-- - syntax :
--
--
--
-- ar1, ar2, ar3, ar4, ar5, ar6, ar7, ar8, ar9, ar10, ar11, ar12,
-- ar13, ar14, ar15, ar16 inx
--
--
--
--
-- Reads a 16-channel audio signal from an external device or stream.
--
--
inx :: MultiOut
-- |
-- - opcode : diskin
-- - syntax :
--
--
--
-- ar1 [, ar2 [, ar3 [,... ar24]]] diskin ifilcod, kpitch [, iskiptim]
-- [, iwraparound] [, iformat] [, iskipinit]
--
--
--
--
-- Deprecated. Reads audio data from an external device or stream and can
-- alter its pitch.
--
--
diskin :: K k0 => [Irate] -> String -> k0 -> MultiOut
-- |
-- - opcode : diskin2
-- - syntax :
--
--
--
-- a1[, a2[,... a24]] diskin2 ifilcod, kpitch[, iskiptim
-- [, iwrap[, iformat [, iwsize[, ibufsize[, iskipinit]]]]]]
--
--
--
--
-- Reads audio data from a file, and can alter its pitch using one of
-- several available interpolation types, as well as convert the sample
-- rate to match the orchestra sr setting. diskin2 can also read
-- multichannel files with any number of channels in the range 1 to 24.
-- diskin2 allows more control and higher sound quality than diskin, but
-- there is also the disadvantage of higher CPU usage.
--
--
diskin2 :: K k0 => [Irate] -> String -> k0 -> MultiOut
-- |
-- - opcode : soundin
-- - syntax :
--
--
--
-- ar1[, ar2[, ar3[,... a24]]] soundin ifilcod [, iskptim] [, iformat]
-- [, iskipinit] [, ibufsize]
--
--
--
--
-- Reads audio data from an external device or stream. Up to 24 channels
-- may be read.
--
--
soundin :: [Irate] -> String -> MultiOut
-- |
-- - opcode : invalue
-- - syntax :
--
--
--
-- kvalue invalue "channel name"
-- Sname invalue "channel name"
--
--
--
--
-- Reads a k-rate signal or string from a user-defined channel.
--
--
invalueK :: String -> Krate
-- |
-- - opcode : invalue
-- - syntax :
--
--
--
-- kvalue invalue "channel name"
-- Sname invalue "channel name"
--
--
--
--
-- Reads a k-rate signal or string from a user-defined channel.
--
--
invalueS :: String -> String
-- |
-- - opcode : inz
-- - syntax :
--
--
--
-- inz ksig1
--
--
--
--
-- Reads multi-channel audio samples into a ZAK array from an external
-- device or stream.
--
--
inz :: K k0 => k0 -> SignalOut
-- | Signal Output
module CsoundExpr.Opcodes.Sigio.Output
-- |
-- - opcode : out
-- - syntax :
--
--
--
-- out asig
--
--
--
--
-- Writes mono audio data to an external device or stream.
--
--
out :: Arate -> SignalOut
-- |
-- - opcode : out32
-- - syntax :
--
--
--
-- out32 asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8, asig10,
-- asig11, asig12, asig13, asig14, asig15, asig16, asig17, asig18,
-- asig19, asig20, asig21, asig22, asig23, asig24, asig25, asig26,
-- asig27, asig28, asig29, asig30, asig31, asig32
--
--
--
--
-- Writes 32-channel audio data to an external device or stream.
--
--
out32 :: Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> SignalOut
-- |
-- - opcode : outc
-- - syntax :
--
--
--
-- outc asig1 [, asig2] [...]
--
--
--
--
-- Writes audio data with an arbitrary number of channels to an external
-- device or stream.
--
--
outc :: K k0 => k0 -> [Arate] -> SignalOut
-- |
-- - opcode : outch
-- - syntax :
--
--
--
-- outch kchan1, asig1 [, kchan2] [, asig2] [...]
--
--
--
--
-- Writes multi-channel audio data, with user-controllable channels, to
-- an external device or stream.
--
--
outch :: K k0 => k0 -> [Arate] -> SignalOut
-- |
-- - opcode : outh
-- - syntax :
--
--
--
-- outh asig1, asig2, asig3, asig4, asig5, asig6
--
--
--
--
-- Writes 6-channel audio data to an external device or stream.
--
--
outh :: Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> SignalOut
-- |
-- - opcode : outo
-- - syntax :
--
--
--
-- outo asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8
--
--
--
--
-- Writes 8-channel audio data to an external device or stream.
--
--
outo :: Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> SignalOut
-- |
-- - opcode : outrg
-- - syntax :
--
--
--
-- outrg kstart, aout1 [,aout2, aout3,..., aoutN]
--
--
--
--
-- outrg outputs audio to a range of adjacent audio channels on the audio
-- output device.
--
--
outrg :: K k0 => k0 -> [Arate] -> SignalOut
-- |
-- - opcode : outq
-- - syntax :
--
--
--
-- outq asig1, asig2, asig3, asig4
--
--
--
--
-- Writes 4-channel audio data to an external device or stream.
--
--
outq :: Arate -> Arate -> Arate -> Arate -> SignalOut
-- |
-- - opcode : outq1
-- - syntax :
--
--
--
-- outq1 asig
--
--
--
--
-- Writes samples to quad channel 1 of an external device or stream.
--
--
outq1 :: Arate -> SignalOut
-- |
-- - opcode : outq2
-- - syntax :
--
--
--
-- outq2 asig
--
--
--
--
-- Writes samples to quad channel 2 of an external device or stream.
--
--
outq2 :: Arate -> SignalOut
-- |
-- - opcode : outq3
-- - syntax :
--
--
--
-- outq3 asig
--
--
--
--
-- Writes samples to quad channel 3 of an external device or stream.
--
--
outq3 :: Arate -> SignalOut
-- |
-- - opcode : outq4
-- - syntax :
--
--
--
-- outq4 asig
--
--
--
--
-- Writes samples to quad channel 4 of an external device or stream.
--
--
outq4 :: Arate -> SignalOut
-- |
-- - opcode : outs
-- - syntax :
--
--
--
-- outs asig1, asig2
--
--
--
--
-- Writes stereo audio data to an external device or stream.
--
--
outs :: Arate -> Arate -> SignalOut
-- |
-- - opcode : outs1
-- - syntax :
--
--
--
-- outs1 asig
--
--
--
--
-- Writes samples to stereo channel 1 of an external device or stream.
--
--
outs1 :: Arate -> SignalOut
-- |
-- - opcode : outs2
-- - syntax :
--
--
--
-- outs2 asig
--
--
--
--
-- Writes samples to stereo channel 2 of an external device or stream.
--
--
outs2 :: Arate -> SignalOut
-- |
-- - opcode : outx
-- - syntax :
--
--
--
-- outx asig1, asig2, asig3, asig4, asig5, asig6, asig7, asig8,
-- asig9, asig10, asig11, asig12, asig13, asig14, asig15, asig16
--
--
--
--
-- Writes 16-channel audio data to an external device or stream.
--
--
outx :: Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> SignalOut
-- |
-- - opcode : soundout
-- - syntax :
--
--
--
-- soundout asig1, ifilcod [, iformat]
--
--
--
--
-- The usage of soundout is discouraged. Please use fout instead.
--
--
soundout :: [Irate] -> Arate -> String -> SignalOut
-- |
-- - opcode : soundouts
-- - syntax :
--
--
--
-- soundouts asigl, asigr, ifilcod [, iformat]
--
--
--
--
-- The usage of soundouts is discouraged. Please use fout instead.
--
--
soundouts :: [Irate] -> Arate -> Arate -> String -> SignalOut
-- |
-- - opcode : outvalue
-- - syntax :
--
--
--
-- outvalue "channel name", kvalue
-- outvalue "channel name", "string"
--
--
--
--
-- Sends a k-rate signal or string to a user-defined channel.
--
--
outvalueK :: K k0 => String -> k0 -> SignalOut
-- |
-- - opcode : outvalue
-- - syntax :
--
--
--
-- outvalue "channel name", kvalue
-- outvalue "channel name", "string"
--
--
--
--
-- Sends a k-rate signal or string to a user-defined channel.
--
--
outvalueS :: String -> String -> SignalOut
-- |
-- - opcode : outz
-- - syntax :
--
--
--
-- outz ksig1
--
--
--
--
-- Writes multi-channel audio data from a ZAK array to an external device
-- or stream.
--
--
outz :: K k0 => k0 -> SignalOut
-- | Software Bus
module CsoundExpr.Opcodes.Sigio.SoftwareBus
-- |
-- - opcode : chn_k
-- - syntax :
--
--
--
-- chn_k Sname, imode[, itype, idflt, imin, imax]
-- chn_a Sname, imode
-- chn_S Sname, imode
--
--
--
--
-- Declare a channel of the named software bus, with setting optional
-- parameters in the case of a control channel. If the channel does not
-- exist yet, it is created, with an inital value of zero or empty
-- string. Otherwise, the type (control, audio, or string) of the
-- existing channel must match the declaration, or an init error occurs.
-- The input/output mode of an existing channel is updated so that it
-- becomes the bitwise OR of the previous and the newly specified value.
--
--
chn_k :: [Irate] -> String -> Irate -> SignalOut
-- |
-- - opcode : chn_a
-- - syntax :
--
--
--
-- chn_k Sname, imode[, itype, idflt, imin, imax]
-- chn_a Sname, imode
-- chn_S Sname, imode
--
--
--
--
-- Declare a channel of the named software bus, with setting optional
-- parameters in the case of a control channel. If the channel does not
-- exist yet, it is created, with an inital value of zero or empty
-- string. Otherwise, the type (control, audio, or string) of the
-- existing channel must match the declaration, or an init error occurs.
-- The input/output mode of an existing channel is updated so that it
-- becomes the bitwise OR of the previous and the newly specified value.
--
--
chn_a :: String -> Irate -> SignalOut
-- |
-- - opcode : chn_S
-- - syntax :
--
--
--
-- chn_k Sname, imode[, itype, idflt, imin, imax]
-- chn_a Sname, imode
-- chn_S Sname, imode
--
--
--
--
-- Declare a channel of the named software bus, with setting optional
-- parameters in the case of a control channel. If the channel does not
-- exist yet, it is created, with an inital value of zero or empty
-- string. Otherwise, the type (control, audio, or string) of the
-- existing channel must match the declaration, or an init error occurs.
-- The input/output mode of an existing channel is updated so that it
-- becomes the bitwise OR of the previous and the newly specified value.
--
--
chn_S :: String -> Irate -> SignalOut
-- |
-- - opcode : chnget
-- - syntax :
--
--
--
-- ival chnget Sname
-- kval chnget Sname
-- aval chnget Sname
-- Sval chnget Sname
--
--
--
--
-- Reads data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chngetA :: String -> Arate
-- |
-- - opcode : chnget
-- - syntax :
--
--
--
-- ival chnget Sname
-- kval chnget Sname
-- aval chnget Sname
-- Sval chnget Sname
--
--
--
--
-- Reads data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chngetI :: String -> Irate
-- |
-- - opcode : chnget
-- - syntax :
--
--
--
-- ival chnget Sname
-- kval chnget Sname
-- aval chnget Sname
-- Sval chnget Sname
--
--
--
--
-- Reads data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chngetK :: String -> Krate
-- |
-- - opcode : chnget
-- - syntax :
--
--
--
-- ival chnget Sname
-- kval chnget Sname
-- aval chnget Sname
-- Sval chnget Sname
--
--
--
--
-- Reads data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chngetS :: String -> String
-- |
-- - opcode : chnset
-- - syntax :
--
--
--
-- chnset ival, Sname
-- chnset kval, Sname
-- chnset aval, Sname
-- chnset Sval, Sname
--
--
--
--
-- Write to a channel of the named software bus. Implies declaring the
-- channel with imod=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsetA :: Arate -> String -> SignalOut
-- |
-- - opcode : chnset
-- - syntax :
--
--
--
-- chnset ival, Sname
-- chnset kval, Sname
-- chnset aval, Sname
-- chnset Sval, Sname
--
--
--
--
-- Write to a channel of the named software bus. Implies declaring the
-- channel with imod=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsetI :: Irate -> String -> SignalOut
-- |
-- - opcode : chnset
-- - syntax :
--
--
--
-- chnset ival, Sname
-- chnset kval, Sname
-- chnset aval, Sname
-- chnset Sval, Sname
--
--
--
--
-- Write to a channel of the named software bus. Implies declaring the
-- channel with imod=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsetK :: K k0 => k0 -> String -> SignalOut
-- |
-- - opcode : chnset
-- - syntax :
--
--
--
-- chnset ival, Sname
-- chnset kval, Sname
-- chnset aval, Sname
-- chnset Sval, Sname
--
--
--
--
-- Write to a channel of the named software bus. Implies declaring the
-- channel with imod=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsetS :: String -> String -> SignalOut
-- |
-- - opcode : chnsend
-- - syntax :
--
--
--
-- chnsend ival, Sname
-- chnsend kval, Sname
-- chnsend aval, Sname
-- chnsend Sval, Sname
--
--
--
--
-- Send to a channel of the named software bus. Implies declaring the
-- channel with imode=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsendA :: Arate -> String -> SignalOut
-- |
-- - opcode : chnsend
-- - syntax :
--
--
--
-- chnsend ival, Sname
-- chnsend kval, Sname
-- chnsend aval, Sname
-- chnsend Sval, Sname
--
--
--
--
-- Send to a channel of the named software bus. Implies declaring the
-- channel with imode=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsendI :: Irate -> String -> SignalOut
-- |
-- - opcode : chnsend
-- - syntax :
--
--
--
-- chnsend ival, Sname
-- chnsend kval, Sname
-- chnsend aval, Sname
-- chnsend Sval, Sname
--
--
--
--
-- Send to a channel of the named software bus. Implies declaring the
-- channel with imode=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsendK :: K k0 => k0 -> String -> SignalOut
-- |
-- - opcode : chnsend
-- - syntax :
--
--
--
-- chnsend ival, Sname
-- chnsend kval, Sname
-- chnsend aval, Sname
-- chnsend Sval, Sname
--
--
--
--
-- Send to a channel of the named software bus. Implies declaring the
-- channel with imode=2 (see also chn_k, chn_a, and chn_S).
--
--
chnsendS :: String -> String -> SignalOut
-- |
-- - opcode : chnrecv
-- - syntax :
--
--
--
-- ival chnrecv Sname
-- kval chnrecv Sname
-- aval chnrecv Sname
-- Sval chnrecv Sname
--
--
--
--
-- Receives data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chnrecvA :: String -> Arate
-- |
-- - opcode : chnrecv
-- - syntax :
--
--
--
-- ival chnrecv Sname
-- kval chnrecv Sname
-- aval chnrecv Sname
-- Sval chnrecv Sname
--
--
--
--
-- Receives data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chnrecvI :: String -> Irate
-- |
-- - opcode : chnrecv
-- - syntax :
--
--
--
-- ival chnrecv Sname
-- kval chnrecv Sname
-- aval chnrecv Sname
-- Sval chnrecv Sname
--
--
--
--
-- Receives data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chnrecvK :: String -> Krate
-- |
-- - opcode : chnrecv
-- - syntax :
--
--
--
-- ival chnrecv Sname
-- kval chnrecv Sname
-- aval chnrecv Sname
-- Sval chnrecv Sname
--
--
--
--
-- Receives data from a channel of the inward named software bus. Implies
-- declaring the channel with imode=1 (see also chn_k, chn_a, and chn_S).
--
--
chnrecvS :: String -> String
-- |
-- - opcode : chnclear
-- - syntax :
--
--
--
-- chnclear Sname
--
--
--
--
-- Clears an audio channel of the named software bus to zero. Implies
-- declaring the channel with imode=2 (see also chn_a).
--
--
chnclear :: String -> SignalOut
-- |
-- - opcode : chnmix
-- - syntax :
--
--
--
-- chnmix aval, Sname
--
--
--
--
-- Adds an audio signal to a channel of the named software bus. Implies
-- declaring the channel with imode=2 (see also chn_a).
--
--
chnmix :: Arate -> String -> SignalOut
-- |
-- - opcode : chnparams
-- - syntax :
--
--
--
-- itype, imode, ictltype, idflt, imin, imax chnparams
--
--
--
--
-- Query parameters of a channel (if it does not exist, all returned
-- values are zero).
--
--
chnparams :: MultiOut
-- | Printing and Display
module CsoundExpr.Opcodes.Sigio.Pdisplay
-- |
-- - opcode : dispfft
-- - syntax :
--
--
--
-- dispfft xsig, iprd, iwsiz [, iwtyp] [, idbout] [, iwtflg]
--
--
--
--
-- These units will print orchestra init-values, or produce graphic
-- display of orchestra control signals and audio signals. Uses X11
-- windows if enabled, else (or if -g flag is set) displays are
-- approximated in ASCII characters.
--
--
dispfft :: X x0 => [Irate] -> x0 -> Irate -> Irate -> SignalOut
-- |
-- - opcode : display
-- - syntax :
--
--
--
-- display xsig, iprd [, inprds] [, iwtflg]
--
--
--
--
-- These units will print orchestra init-values, or produce graphic
-- display of orchestra control signals and audio signals. Uses X11
-- windows if enabled, else (or if -g flag is set) displays are
-- approximated in ASCII characters.
--
--
display :: X x0 => [Irate] -> x0 -> Irate -> SignalOut
-- |
-- - opcode : flashtxt
-- - syntax :
--
--
--
-- flashtxt iwhich, String
--
--
--
--
-- Allows text to be displayed from instruments like sliders etc. (only
-- on Unix and Windows at present)
--
--
flashtxt :: Irate -> String -> SignalOut
-- |
-- - opcode : print
-- - syntax :
--
--
--
-- print iarg [, iarg1] [, iarg2] [...]
--
--
--
--
-- These units will print orchestra init-values.
--
--
print' :: [Irate] -> SignalOut
-- |
-- - opcode : printf
-- - syntax :
--
--
--
-- printf_i Sfmt, itrig, [iarg1[, iarg2[,... ]]]
-- printf Sfmt, ktrig, [xarg1[, xarg2[,... ]]]
--
--
--
--
-- printf and printf_i write formatted output, similarly to the C
-- function printf(). printf_i runs at i-time only, while printf runs
-- both at initialization and performance time.
--
--
printf :: (K k0, X x0) => String -> k0 -> [x0] -> SignalOut
-- |
-- - opcode : printf_i
-- - syntax :
--
--
--
-- printf_i Sfmt, itrig, [iarg1[, iarg2[,... ]]]
-- printf Sfmt, ktrig, [xarg1[, xarg2[,... ]]]
--
--
--
--
-- printf and printf_i write formatted output, similarly to the C
-- function printf(). printf_i runs at i-time only, while printf runs
-- both at initialization and performance time.
--
--
printf_i :: String -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : printk
-- - syntax :
--
--
--
-- printk itime, kval [, ispace]
--
--
--
--
-- Prints one k-rate value at specified intervals.
--
--
printk :: K k0 => [Irate] -> Irate -> k0 -> SignalOut
-- |
-- - opcode : printk2
-- - syntax :
--
--
--
-- printk2 kvar [, inumspaces]
--
--
--
--
-- Prints a new value every time a control variable changes.
--
--
printk2 :: K k0 => [Irate] -> k0 -> SignalOut
-- |
-- - opcode : printks
-- - syntax :
--
--
--
-- printks "string", itime [, kval1] [, kval2] [...]
--
--
--
--
-- Prints at k-rate using a printf() style syntax.
--
--
printks :: K k0 => String -> Irate -> [k0] -> SignalOut
-- |
-- - opcode : prints
-- - syntax :
--
--
--
-- prints "string" [, kval1] [, kval2] [...]
--
--
--
--
-- Prints at init-time using a printf() style syntax.
--
--
prints :: K k0 => String -> [k0] -> SignalOut
-- | Sound File Queries
module CsoundExpr.Opcodes.Sigio.Queries
-- |
-- - opcode : filelen
-- - syntax :
--
--
--
-- ir filelen ifilcod, [iallowraw]
--
--
--
--
-- Returns the length of a sound file.
--
--
filelen :: [Irate] -> String -> Irate
-- |
-- - opcode : filenchnls
-- - syntax :
--
--
--
-- ir filenchnls ifilcod [, iallowraw]
--
--
--
--
-- Returns the number of channels in a sound file.
--
--
filenchnls :: [Irate] -> String -> Irate
-- |
-- - opcode : filepeak
-- - syntax :
--
--
--
-- ir filepeak ifilcod [, ichnl]
--
--
--
--
-- Returns the peak absolute value of a sound file.
--
--
filepeak :: [Irate] -> String -> Irate
-- |
-- - opcode : filesr
-- - syntax :
--
--
--
-- ir filesr ifilcod [, iallowraw]
--
--
--
--
-- Returns the sample rate of a sound file.
--
--
filesr :: [Irate] -> String -> Irate
-- | Signal Input and Output
module CsoundExpr.Opcodes.Sigio
-- | Amplitude Modifiers and Dynamic processing
module CsoundExpr.Opcodes.Sigmod.SigProcAmpMod
-- |
-- - opcode : balance
-- - syntax :
--
--
--
-- ares balance asig, acomp [, ihp] [, iskip]
--
--
--
--
-- The rms power of asig can be interrogated, set, or adjusted to match
-- that of a comparator signal.
--
--
balance :: [Irate] -> Arate -> Arate -> Arate
-- |
-- - opcode : compress
-- - syntax :
--
--
--
-- ar compress aasig, acsig, kthresh, kloknee, khiknee, kratio, katt, krel, ilook
--
--
--
--
-- This unit functions as an audio compressor, limiter, expander, or
-- noise gate, using either soft-knee or hard-knee mapping, and with
-- dynamically variable performance characteristics. It takes two audio
-- input signals, aasig and acsig, the first of which is modified by a
-- running analysis of the second. Both signals can be the same, or the
-- first can be modified by a different controlling signal.
--
--
compress :: (K k0, K k1, K k2, K k3, K k4, K k5) => Arate -> Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Irate -> Arate
-- |
-- - opcode : clip
-- - syntax :
--
--
--
-- ares clip asig, imeth, ilimit [, iarg]
--
--
--
--
-- Clips an a-rate signal to a predefined limit, in a soft manner, using
-- one of three methods.
--
--
clip :: [Irate] -> Arate -> Irate -> Irate -> Arate
-- |
-- - opcode : dam
-- - syntax :
--
--
--
-- ares dam asig, kthreshold, icomp1, icomp2, irtime, iftime
--
--
--
--
-- This opcode dynamically modifies a gain value applied to the input
-- sound ain by comparing its power level to a given threshold level. The
-- signal will be compressed/expanded with different factors regarding
-- that it is over or under the threshold.
--
--
dam :: K k0 => Arate -> k0 -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : gain
-- - syntax :
--
--
--
-- ares gain asig, krms [, ihp] [, iskip]
--
--
--
--
-- Adjusts the amplitude audio signal according to a root-mean-square
-- value.
--
--
gain :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- | Convolution and Morphing
module CsoundExpr.Opcodes.Sigmod.SigProcConmorph
-- |
-- - opcode : convolve
-- - syntax :
--
--
--
-- ar1 [, ar2] [, ar3] [, ar4] convolve ain, ifilcod [, ichannel]
--
--
--
--
-- Output is the convolution of signal ain and the impulse response
-- contained in ifilcod. If more than one output signal is supplied, each
-- will be convolved with the same impulse response. Note that it is
-- considerably more efficient to use one instance of the operator when
-- processing a mono input to create stereo, or quad, outputs.
--
--
convolve :: [Irate] -> Arate -> String -> MultiOut
-- |
-- - opcode : cross2
-- - syntax :
--
--
--
-- ares cross2 ain1, ain2, isize, ioverlap, iwin, kbias
--
--
--
--
-- This is an implementation of cross synthesis using FFT's.
--
--
cross2 :: K k0 => Arate -> Arate -> Irate -> Irate -> Irate -> k0 -> Arate
-- |
-- - opcode : dconv
-- - syntax :
--
--
--
-- ares dconv asig, isize, ifn
--
--
--
--
-- A direct convolution opcode.
--
--
dconv :: Arate -> Irate -> Irate -> Arate
-- |
-- - opcode : ftconv
-- - syntax :
--
--
--
-- a1[, a2[, a3[,... a8]]] ftconv ain, ift, iplen[, iskipsamples
-- [, iirlen[, iskipinit]]]
--
--
--
--
-- Low latency multichannel convolution, using a function table as
-- impulse response source. The algorithm is to split the impulse
-- response to partitions of length determined by the iplen parameter,
-- and delay and mix partitions so that the original, full length impulse
-- response is reconstructed without gaps. The output delay (latency) is
-- iplen samples, and does not depend on the control rate, unlike in the
-- case of other convolve opcodes.
--
--
ftconv :: [Irate] -> Arate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : ftmorf
-- - syntax :
--
--
--
-- ftmorf kftndx, iftfn, iresfn
--
--
--
--
-- Uses an index into a table of ftable numbers to morph between adjacent
-- tables in the list.This morphed function is written into the table
-- referenced by iresfn on every k-cycle.
--
--
ftmorf :: K k0 => k0 -> Irate -> Irate -> SignalOut
-- |
-- - opcode : pconvolve
-- - syntax :
--
--
--
-- ar1 [, ar2] [, ar3] [, ar4] pconvolve ain, ifilcod [, ipartitionsize, ichannel]
--
--
--
--
-- Convolution based on a uniformly partitioned overlap-save algorithm.
-- Compared to the convolve opcode, pconvolve has these benefits:
--
--
pconvolve :: [Irate] -> Arate -> String -> MultiOut
-- | Delay
module CsoundExpr.Opcodes.Sigmod.Delay
-- |
-- - opcode : delay
-- - syntax :
--
--
--
-- ares delay asig, idlt [, iskip]
--
--
--
--
-- A signal can be read from or written into a delay path, or it can be
-- automatically delayed by some time interval.
--
--
delay :: [Irate] -> Arate -> Irate -> Arate
-- |
-- - opcode : delay1
-- - syntax :
--
--
--
-- ares delay1 asig [, iskip]
--
--
--
--
-- Delays an input signal by one sample.
--
--
delay1 :: [Irate] -> Arate -> Arate
-- |
-- - opcode : delayk
-- - syntax :
--
--
--
-- kr delayk ksig, idel[, imode]
-- kr vdel_k ksig, kdel, imdel[, imode]
--
--
--
--
-- k-rate delay opcodes
--
--
delayk :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : delayr
-- - syntax :
--
--
--
-- ares delayr idlt [, iskip]
--
--
--
--
-- Reads from an automatically established digital delay line.
--
--
delayr :: [Irate] -> Irate -> Arate
-- |
-- - opcode : delayw
-- - syntax :
--
--
--
-- delayw asig
--
--
--
--
-- Writes the audio signal to a digital delay line.
--
--
delayw :: Arate -> SignalOut
-- |
-- - opcode : deltap
-- - syntax :
--
--
--
-- ares deltap kdlt
--
--
--
--
-- Tap a delay line at variable offset times.
--
--
deltap :: K k0 => k0 -> Arate
-- |
-- - opcode : deltap3
-- - syntax :
--
--
--
-- ares deltap3 xdlt
--
--
--
--
-- Taps a delay line at variable offset times, uses cubic interpolation.
--
--
deltap3 :: X x0 => x0 -> Arate
-- |
-- - opcode : deltapi
-- - syntax :
--
--
--
-- ares deltapi xdlt
--
--
--
--
-- Taps a delay line at variable offset times, uses interpolation.
--
--
deltapi :: X x0 => x0 -> Arate
-- |
-- - opcode : deltapn
-- - syntax :
--
--
--
-- ares deltapn xnumsamps
--
--
--
--
-- Tap a delay line at variable offset times.
--
--
deltapn :: X x0 => x0 -> Arate
-- |
-- - opcode : deltapx
-- - syntax :
--
--
--
-- aout deltapx adel, iwsize
--
--
--
--
-- deltapx is similar to deltapi or deltap3. However, it allows higher
-- quality interpolation. This opcode can read from and write to a
-- delayr/delayw delay line with interpolation.
--
--
deltapx :: Arate -> Irate -> Arate
-- |
-- - opcode : deltapxw
-- - syntax :
--
--
--
-- deltapxw ain, adel, iwsize
--
--
--
--
-- deltapxw mixes the input signal to a delay line. This opcode can be
-- mixed with reading units (deltap, deltapn, deltapi, deltap3, and
-- deltapx) in any order; the actual delay time is the difference of the
-- read and write time. This opcode can read from and write to a
-- delayr/delayw delay line with interpolation.
--
--
deltapxw :: Arate -> Arate -> Irate -> SignalOut
-- |
-- - opcode : vdelay
-- - syntax :
--
--
--
-- ares vdelay asig, adel, imaxdel [, iskip]
--
--
--
--
-- This is an interpolating variable time delay, it is not very different
-- from the existing implementation (deltapi), it is only easier to use.
--
--
vdelay :: [Irate] -> Arate -> Arate -> Irate -> Arate
-- |
-- - opcode : vdelay3
-- - syntax :
--
--
--
-- ares vdelay3 asig, adel, imaxdel [, iskip]
--
--
--
--
-- vdelay3 is experimental. It is the same as vdelay except that it uses
-- cubic interpolation. (New in Version 3.50.)
--
--
vdelay3 :: [Irate] -> Arate -> Arate -> Irate -> Arate
-- |
-- - opcode : vdelayx
-- - syntax :
--
--
--
-- aout vdelayx ain, adl, imd, iws [, ist]
--
--
--
--
-- A variable delay opcode with high quality interpolation.
--
--
vdelayx :: [Irate] -> Arate -> Arate -> Irate -> Irate -> Arate
-- |
-- - opcode : vdelayxs
-- - syntax :
--
--
--
-- aout1, aout2 vdelayxs ain1, ain2, adl, imd, iws [, ist]
--
--
--
--
-- A stereo variable delay opcode with high quality interpolation.
--
--
vdelayxs :: [Irate] -> Arate -> Arate -> Arate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : vdelayxq
-- - syntax :
--
--
--
-- aout1, aout2, aout3, aout4 vdelayxq ain1, ain2, ain3, ain4, adl, imd, iws [, ist]
--
--
--
--
-- A 4-channel variable delay opcode with high quality interpolation.
--
--
vdelayxq :: [Irate] -> Arate -> Arate -> Arate -> Arate -> Arate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : vdelayxw
-- - syntax :
--
--
--
-- aout vdelayxw ain, adl, imd, iws [, ist]
--
--
--
--
-- Variable delay opcodes with high quality interpolation.
--
--
vdelayxw :: [Irate] -> Arate -> Arate -> Irate -> Irate -> Arate
-- |
-- - opcode : vdelayxwq
-- - syntax :
--
--
--
-- aout1, aout2, aout3, aout4 vdelayxwq ain1, ain2, ain3, ain4, adl,
-- imd, iws [, ist]
--
--
--
--
-- Variable delay opcodes with high quality interpolation.
--
--
vdelayxwq :: [Irate] -> Arate -> Arate -> Arate -> Arate -> Arate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : vdelayxws
-- - syntax :
--
--
--
-- aout1, aout2 vdelayxws ain1, ain2, adl, imd, iws [, ist]
--
--
--
--
-- Variable delay opcodes with high quality interpolation.
--
--
vdelayxws :: [Irate] -> Arate -> Arate -> Arate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : multitap
-- - syntax :
--
--
--
-- ares multitap asig [, itime1] [, igain1] [, itime2] [, igain2] [...]
--
--
--
--
-- Multitap delay line implementation.
--
--
multitap :: Arate -> [Irate] -> Arate
-- | Panning and Spatialization
module CsoundExpr.Opcodes.Sigmod.Panspatl
-- |
-- - opcode : locsend
-- - syntax :
--
--
--
-- a1, a2 locsend
-- a1, a2, a3, a4 locsend
--
--
--
--
-- locsend depends upon the existence of a previously defined locsig. The
-- number of output signals must match the number in the previous locsig.
-- The output signals from locsend are derived from the values given for
-- distance and reverb in the locsig and are ready to be sent to local or
-- global reverb units (see example below). The reverb amount and the
-- balance between the 2 or 4 channels are calculated in the same way as
-- described in the Dodge book (an essential text!).
--
--
locsend :: MultiOut
-- |
-- - opcode : locsig
-- - syntax :
--
--
--
-- a1, a2 locsig asig, kdegree, kdistance, kreverbsend
-- a1, a2, a3, a4 locsig asig, kdegree, kdistance, kreverbsend
--
--
--
--
-- locsig takes an input signal and distributes it among 2 or 4 channels
-- using values in degrees to calculate the balance between adjacent
-- channels. It also takes arguments for distance (used to attenuate
-- signals that are to sound as if they are some distance further than
-- the loudspeaker itself), and for the amount the signal that will be
-- sent to reverberators. This unit is based upon the example in the
-- Charles Dodge/Thomas Jerse book, Computer Music, page 320.
--
--
locsig :: (K k0, K k1, K k2) => Arate -> k0 -> k1 -> k2 -> MultiOut
-- |
-- - opcode : pan
-- - syntax :
--
--
--
-- a1, a2, a3, a4 pan asig, kx, ky, ifn [, imode] [, ioffset]
--
--
--
--
-- Distribute an audio signal amongst four channels with localization
-- control.
--
--
pan :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Irate -> MultiOut
-- |
-- - opcode : pan2
-- - syntax :
--
--
--
-- a1, a2 pan2 asig, xp [, imode]
--
--
--
--
-- Distribute an audio signal across two channels with a choice of
-- methods.
--
--
pan2 :: X x0 => [Irate] -> Arate -> x0 -> MultiOut
-- |
-- - opcode : space
-- - syntax :
--
--
--
-- a1, a2, a3, a4 space asig, ifn, ktime, kreverbsend, kx, ky
--
--
--
--
-- space takes an input signal and distributes it among 4 channels using
-- Cartesian xy coordinates to calculate the balance of the outputs. The
-- xy coordinates can be defined in a separate text file and accessed
-- through a Function statement in the score using Gen28, or they can be
-- specified using the optional kx, ky arguments. The advantages to the
-- former are:
--
--
space :: (K k0, K k1, K k2, K k3) => Arate -> Irate -> k0 -> k1 -> k2 -> k3 -> MultiOut
-- |
-- - opcode : spdist
-- - syntax :
--
--
--
-- k1 spdist ifn, ktime, kx, ky
--
--
--
--
-- spdist uses the same xy data as space, also either from a text file
-- using Gen28 or from x and y arguments given to the unit directly. The
-- purpose of this unit is to make available the values for distance that
-- are calculated from the xy coordinates.
--
--
spdist :: (K k0, K k1, K k2) => Irate -> k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : spsend
-- - syntax :
--
--
--
-- a1, a2, a3, a4 spsend
--
--
--
--
-- spsend depends upon the existence of a previously defined space. The
-- output signals from spsend are derived from the values given for xy
-- and reverb in the space and are ready to be sent to local or global
-- reverb units (see example below).
--
--
spsend :: MultiOut
-- |
-- - opcode : spat3d
-- - syntax :
--
--
--
-- aW, aX, aY, aZ spat3d ain, kX, kY, kZ, idist, ift, imode, imdel, iovr [, istor]
--
--
--
--
-- This opcode positions the input sound in a 3D space, with optional
-- simulation of room acoustics, in various output formats. spat3d allows
-- moving the sound at k-rate (this movement is interpolated internally
-- to eliminate zipper noise if sr not equal to kr).
--
--
spat3d :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : spat3di
-- - syntax :
--
--
--
-- aW, aX, aY, aZ spat3di ain, iX, iY, iZ, idist, ift, imode [, istor]
--
--
--
--
-- This opcode positions the input sound in a 3D space, with optional
-- simulation of room acoustics, in various output formats. With spat3di,
-- sound source position is set at i-time.
--
--
spat3di :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : spat3dt
-- - syntax :
--
--
--
-- spat3dt ioutft, iX, iY, iZ, idist, ift, imode, irlen [, iftnocl]
--
--
--
--
-- This opcode positions the input sound in a 3D space, with optional
-- simulation of room acoustics, in various output formats. spat3dt can
-- be used to render the impulse response at i-time, storing output in a
-- function table, suitable for convolution.
--
--
spat3dt :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vbap16
-- - syntax :
--
--
--
-- ar1,..., ar16 vbap16 asig, kazim [, kelev] [, kspread]
--
--
--
--
-- Distributes an audio signal among 16 channels.
--
--
vbap16 :: (K k0, K k1) => [k0] -> Arate -> k1 -> MultiOut
-- |
-- - opcode : vbap16move
-- - syntax :
--
--
--
-- ar1,..., ar16 vbap16move asig, idur, ispread, ifldnum, ifld1
-- [, ifld2] [...]
--
--
--
--
-- Distribute an audio signal among 16 channels with moving virtual
-- sources.
--
--
vbap16move :: Arate -> Irate -> Irate -> Irate -> [Irate] -> MultiOut
-- |
-- - opcode : vbap4
-- - syntax :
--
--
--
-- ar1, ar2, ar3, ar4 vbap4 asig, kazim [, kelev] [, kspread]
--
--
--
--
-- Distributes an audio signal among 4 channels.
--
--
vbap4 :: (K k0, K k1) => [k0] -> Arate -> k1 -> MultiOut
-- |
-- - opcode : vbap4move
-- - syntax :
--
--
--
-- ar1, ar2, ar3, ar4 vbap4move asig, idur, ispread, ifldnum, ifld1
-- [, ifld2] [...]
--
--
--
--
-- Distributes an audio signal among 4 channels with moving virtual
-- sources.
--
--
vbap4move :: Arate -> Irate -> Irate -> Irate -> [Irate] -> MultiOut
-- |
-- - opcode : vbap8
-- - syntax :
--
--
--
-- ar1,..., ar8 vbap8 asig, kazim [, kelev] [, kspread]
--
--
--
--
-- Distributes an audio signal among 8 channels.
--
--
vbap8 :: (K k0, K k1) => [k0] -> Arate -> k1 -> MultiOut
-- |
-- - opcode : vbap8move
-- - syntax :
--
--
--
-- ar1,..., ar8 vbap8move asig, idur, ispread, ifldnum, ifld1
-- [, ifld2] [...]
--
--
--
--
-- Distributes an audio signal among 8 channels with moving virtual
-- sources.
--
--
vbap8move :: Arate -> Irate -> Irate -> Irate -> [Irate] -> MultiOut
-- |
-- - opcode : vbaplsinit
-- - syntax :
--
--
--
-- vbaplsinit idim, ilsnum [, idir1] [, idir2] [...] [, idir32]
--
--
--
--
-- Configures VBAP output according to loudspeaker parameters.
--
--
vbaplsinit :: Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vbapz
-- - syntax :
--
--
--
-- vbapz inumchnls, istartndx, asig, kazim [, kelev] [, kspread]
--
--
--
--
-- Writes a multi-channel audio signal to a ZAK array.
--
--
vbapz :: (K k0, K k1) => [k0] -> Irate -> Irate -> Arate -> k1 -> SignalOut
-- |
-- - opcode : vbapzmove
-- - syntax :
--
--
--
-- vbapzmove inumchnls, istartndx, asig, idur, ispread, ifldnum, ifld1,
-- ifld2, [...]
--
--
--
--
-- Writes a multi-channel audio signal to a ZAK array with moving virtual
-- sources.
--
--
vbapzmove :: Irate -> Irate -> Arate -> Irate -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : hrtfer
-- - syntax :
--
--
--
-- aleft, aright hrtfer asig, kaz, kelev, HRTFcompact
--
--
--
--
-- Output is binaural (headphone) 3D audio.
--
--
hrtfer :: (K k0, K k1) => Arate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : hrtfmove
-- - syntax :
--
--
--
-- aleft, aright hrtfmove asrc, kAz, kElev, ifilel, ifiler [, imode, ifade, isr]
--
--
--
--
-- This opcode takes a source signal and spatialises it in the 3
-- dimensional space around a listener by convolving the source with
-- stored head related transfer function (HRTF) based filters.
--
--
hrtfmove :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : hrtfmove2
-- - syntax :
--
--
--
-- aleft, aright hrtfmove2 asrc, kAz, kElev, ifilel, ifiler [,ioverlap, iradius, isr]
--
--
--
--
-- This opcode takes a source signal and spatialises it in the 3
-- dimensional space around a listener using head related transfer
-- function (HRTF) based filters.
--
--
hrtfmove2 :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : hrtfstat
-- - syntax :
--
--
--
-- aleft, aright hrtfstat asrc, iAz, iElev, ifilel, ifiler [,iradius, isr]
--
--
--
--
-- This opcode takes a source signal and spatialises it in the 3
-- dimensional space around a listener using head related transfer
-- function (HRTF) based filters. It produces a static output (azimuth
-- and elevation parameters are i-rate), because a static source allows
-- much more efficient processing than hrtfmove and hrtfmove2,.
--
--
hrtfstat :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : bformdec
-- - syntax :
--
--
--
-- ao1, ao2 bformdec isetup, aw, ax, ay, az [, ar, as, at, au, av
-- [, abk, al, am, an, ao, ap, aq]]
-- ao1, ao2, ao3, ao4 bformdec isetup, aw, ax, ay, az [, ar, as, at,
-- au, av [, abk, al, am, an, ao, ap, aq]]
-- ao1, ao2, ao3, ao4, ao5 bformdec isetup, aw, ax, ay, az [, ar, as,
-- at, au, av [, abk, al, am, an, ao, ap, aq]]
-- ao1, ao2, ao3, ao4, ao5, ao6, ao7, ao8 bformdec isetup, aw, ax, ay, az
-- [, ar, as, at, au, av [, abk, al, am, an, ao, ap, aq]]]
--
--
--
--
-- Decodes an ambisonic B format signal into loudspeaker specific
-- signals. Note that this opcode is deprecated as it is inaccurate, and
-- is replaced by the much better opcode bformdec1 which replicates all
-- the important features.
--
--
bformdec :: [Arate] -> Irate -> Arate -> Arate -> Arate -> Arate -> MultiOut
-- |
-- - opcode : bformenc
-- - syntax :
--
--
--
-- aw, ax, ay, az bformenc asig, kalpha, kbeta, kord0, kord1
-- aw, ax, ay, az, ar, as, at, au, av bformenc asig, kalpha, kbeta,
-- kord0, kord1, kord2
-- aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc
-- asig, kalpha, kbeta, kord0, kord1, kord2, kord3
--
--
--
--
-- Codes a signal into the ambisonic B format. Note that this opcode is
-- deprecated as it is inaccurate, and is replaced by the much better
-- opcode bformenc1 which replicates all the important features; also
-- note that the gain arguments are not available in bformenc1.
--
--
bformenc :: (K k0, K k1, K k2, K k3) => Arate -> k0 -> k1 -> k2 -> k3 -> MultiOut
-- |
-- - opcode : bformenc
-- - syntax :
--
--
--
-- aw, ax, ay, az bformenc asig, kalpha, kbeta, kord0, kord1
-- aw, ax, ay, az, ar, as, at, au, av bformenc asig, kalpha, kbeta,
-- kord0, kord1, kord2
-- aw, ax, ay, az, ar, as, at, au, av, ak, al, am, an, ao, ap, aq bformenc
-- asig, kalpha, kbeta, kord0, kord1, kord2, kord3
--
--
--
--
-- Codes a signal into the ambisonic B format. Note that this opcode is
-- deprecated as it is inaccurate, and is replaced by the much better
-- opcode bformenc1 which replicates all the important features; also
-- note that the gain arguments are not available in bformenc1.
--
--
bformencK :: (K k0, K k1, K k2, K k3, K k4) => Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> MultiOut
-- | Reverberation
module CsoundExpr.Opcodes.Sigmod.Reverbtn
-- |
-- - opcode : alpass
-- - syntax :
--
--
--
-- ares alpass asig, krvt, ilpt [, iskip] [, insmps]
--
--
--
--
-- Reverberates an input signal with a flat frequency response.
--
--
alpass :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
-- |
-- - opcode : babo
-- - syntax :
--
--
--
-- a1, a2 babo asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno]
--
--
--
--
-- babo stands for ball-within-the-box. It is a physical model
-- reverberator based on the paper by Davide Rocchesso The Ball within
-- the Box: a sound-processing metaphor, Computer Music Journal, Vol
-- 19, N.4, pp.45-47, Winter 1995.
--
--
babo :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : comb
-- - syntax :
--
--
--
-- ares comb asig, krvt, ilpt [, iskip] [, insmps]
--
--
--
--
-- Reverberates an input signal with a colored frequency response.
--
--
comb :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
-- |
-- - opcode : freeverb
-- - syntax :
--
--
--
-- aoutL, aoutR freeverb ainL, ainR, kRoomSize, kHFDamp[, iSRate[, iSkip]]
--
--
--
--
-- freeverb is a stereo reverb unit based on Jezar's public domain C++
-- sources, composed of eight parallel comb filters on both channels,
-- followed by four allpass units in series. The filters on the right
-- channel are slightly detuned compared to the left channel in order to
-- create a stereo effect.
--
--
freeverb :: (K k0, K k1) => [Irate] -> Arate -> Arate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : nestedap
-- - syntax :
--
--
--
-- ares nestedap asig, imode, imaxdel, idel1, igain1 [, idel2] [, igain2]
-- [, idel3] [, igain3] [, istor]
--
--
--
--
-- Three different nested all-pass filters, useful for implementing
-- reverbs.
--
--
nestedap :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : nreverb
-- - syntax :
--
--
--
-- ares nreverb asig, ktime, khdif [, iskip] [,inumCombs] [, ifnCombs]
-- [, inumAlpas] [, ifnAlpas]
--
--
--
--
-- This is a reverberator consisting of 6 parallel comb-lowpass filters
-- being fed into a series of 5 allpass filters. nreverb replaces reverb2
-- (version 3.48) and so both opcodes are identical.
--
--
nreverb :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : reverb2
-- - syntax :
--
--
--
-- ares reverb2 asig, ktime, khdif [, iskip] [,inumCombs]
-- [, ifnCombs] [, inumAlpas] [, ifnAlpas]
--
--
--
--
-- Same as the nreverb opcode.
--
--
reverb2 :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : reverb
-- - syntax :
--
--
--
-- ares reverb asig, krvt [, iskip]
--
--
--
--
-- Reverberates an input signal with a natural room frequency response.
--
--
reverb :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : reverbsc
-- - syntax :
--
--
--
-- aoutL, aoutR reverbsc ainL, ainR, kfblvl, kfco[, israte[, ipitchm[, iskip]]]
--
--
--
--
-- 8 delay line stereo FDN reverb, with feedback matrix based upon
-- physical modeling scattering junction of 8 lossless waveguides of
-- equal characteristic impedance. Based on Csound orchestra version by
-- Sean Costello.
--
--
reverbsc :: (K k0, K k1) => [Irate] -> Arate -> Arate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : valpass
-- - syntax :
--
--
--
-- ares valpass asig, krvt, xlpt, imaxlpt [, iskip] [, insmps]
--
--
--
--
-- Variably reverberates an input signal with a flat frequency response.
--
--
valpass :: (K k0, X x0) => [Irate] -> Arate -> k0 -> x0 -> Irate -> Arate
-- |
-- - opcode : vcomb
-- - syntax :
--
--
--
-- ares vcomb asig, krvt, xlpt, imaxlpt [, iskip] [, insmps]
--
--
--
--
-- Variably reverberates an input signal with a colored frequency
-- response.
--
--
vcomb :: (K k0, X x0) => [Irate] -> Arate -> k0 -> x0 -> Irate -> Arate
-- | Sample Level Operators
module CsoundExpr.Opcodes.Sigmod.Sample
-- |
-- - opcode : denorm
-- - syntax :
--
--
--
-- denorm a1[, a2[, a3[,... ]]]
--
--
--
--
-- Mixes low level (~1e-20 for floats, and ~1e-56 for doubles) noise to a
-- list of a-rate signals. Can be used before IIR filters and reverbs to
-- avoid denormalized numbers which may otherwise result in significantly
-- increased CPU usage.
--
--
denorm :: [Arate] -> SignalOut
-- |
-- - opcode : diff
-- - syntax :
--
--
--
-- ares diff asig [, iskip]
-- kres diff ksig [, iskip]
--
--
--
--
-- Modify a signal by differentiation.
--
--
diffA :: [Irate] -> Arate -> Arate
-- |
-- - opcode : diff
-- - syntax :
--
--
--
-- ares diff asig [, iskip]
-- kres diff ksig [, iskip]
--
--
--
--
-- Modify a signal by differentiation.
--
--
diffK :: K k0 => [Irate] -> k0 -> Krate
-- |
-- - opcode : downsamp
-- - syntax :
--
--
--
-- kres downsamp asig [, iwlen]
--
--
--
--
-- Modify a signal by down-sampling.
--
--
downsamp :: [Irate] -> Arate -> Krate
-- |
-- - opcode : fold
-- - syntax :
--
--
--
-- ares fold asig, kincr
--
--
--
--
-- Adds artificial foldover to an audio signal.
--
--
fold :: K k0 => Arate -> k0 -> Arate
-- |
-- - opcode : integ
-- - syntax :
--
--
--
-- ares integ asig [, iskip]
-- kres integ ksig [, iskip]
--
--
--
--
-- Modify a signal by integration.
--
--
integA :: [Irate] -> Arate -> Arate
-- |
-- - opcode : integ
-- - syntax :
--
--
--
-- ares integ asig [, iskip]
-- kres integ ksig [, iskip]
--
--
--
--
-- Modify a signal by integration.
--
--
integK :: K k0 => [Irate] -> k0 -> Krate
-- |
-- - opcode : interp
-- - syntax :
--
--
--
-- ares interp ksig [, iskip] [, imode]
--
--
--
--
-- Converts a control signal to an audio signal using linear
-- interpolation.
--
--
interp :: K k0 => [Irate] -> k0 -> Arate
-- |
-- - opcode : ntrpol
-- - syntax :
--
--
--
-- ares ntrpol asig1, asig2, kpoint [, imin] [, imax]
-- ires ntrpol isig1, isig2, ipoint [, imin] [, imax]
-- kres ntrpol ksig1, ksig2, kpoint [, imin] [, imax]
--
--
--
--
-- Calculates the weighted mean value (i.e. linear interpolation) of two
-- input signals
--
--
ntrpolA :: K k0 => [Irate] -> Arate -> Arate -> k0 -> Arate
-- |
-- - opcode : ntrpol
-- - syntax :
--
--
--
-- ares ntrpol asig1, asig2, kpoint [, imin] [, imax]
-- ires ntrpol isig1, isig2, ipoint [, imin] [, imax]
-- kres ntrpol ksig1, ksig2, kpoint [, imin] [, imax]
--
--
--
--
-- Calculates the weighted mean value (i.e. linear interpolation) of two
-- input signals
--
--
ntrpolI :: [Irate] -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : ntrpol
-- - syntax :
--
--
--
-- ares ntrpol asig1, asig2, kpoint [, imin] [, imax]
-- ires ntrpol isig1, isig2, ipoint [, imin] [, imax]
-- kres ntrpol ksig1, ksig2, kpoint [, imin] [, imax]
--
--
--
--
-- Calculates the weighted mean value (i.e. linear interpolation) of two
-- input signals
--
--
ntrpolK :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : samphold
-- - syntax :
--
--
--
-- ares samphold asig, agate [, ival] [, ivstor]
-- kres samphold ksig, kgate [, ival] [, ivstor]
--
--
--
--
-- Performs a sample-and-hold operation on its input.
--
--
sampholdA :: [Irate] -> Arate -> Arate -> Arate
-- |
-- - opcode : samphold
-- - syntax :
--
--
--
-- ares samphold asig, agate [, ival] [, ivstor]
-- kres samphold ksig, kgate [, ival] [, ivstor]
--
--
--
--
-- Performs a sample-and-hold operation on its input.
--
--
sampholdK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : upsamp
-- - syntax :
--
--
--
-- ares upsamp ksig
--
--
--
--
-- Modify a signal by up-sampling.
--
--
upsamp :: K k0 => k0 -> Arate
-- |
-- - opcode : vaget
-- - syntax :
--
--
--
-- kval vaget kndx, avar
--
--
--
--
-- Access values of the current buffer of an a-rate variable by indexing.
-- Useful for doing sample-by-sample manipulation at k-rate without using
-- setksmps 1.
--
--
vaget :: K k0 => k0 -> Arate -> Krate
-- |
-- - opcode : vaset
-- - syntax :
--
--
--
-- vaset kval, kndx, avar
--
--
--
--
-- Write values into the current buffer of an a-rate variable at the
-- given index. Useful for doing sample-by-sample manipulation at k-rate
-- without using setksmps 1.
--
--
vaset :: (K k0, K k1) => k0 -> k1 -> Arate -> SignalOut
-- | Signal Limiters
module CsoundExpr.Opcodes.Sigmod.Siglimit
-- |
-- - opcode : limit
-- - syntax :
--
--
--
-- ares limit asig, klow, khigh
-- ires limit isig, ilow, ihigh
-- kres limit ksig, klow, khigh
--
--
--
--
-- Sets the lower and upper limits of the value it processes.
--
--
limitA :: (K k0, K k1) => Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : limit
-- - syntax :
--
--
--
-- ares limit asig, klow, khigh
-- ires limit isig, ilow, ihigh
-- kres limit ksig, klow, khigh
--
--
--
--
-- Sets the lower and upper limits of the value it processes.
--
--
limitI :: Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : limit
-- - syntax :
--
--
--
-- ares limit asig, klow, khigh
-- ires limit isig, ilow, ihigh
-- kres limit ksig, klow, khigh
--
--
--
--
-- Sets the lower and upper limits of the value it processes.
--
--
limitK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : mirror
-- - syntax :
--
--
--
-- ares mirror asig, klow, khigh
-- ires mirror isig, ilow, ihigh
-- kres mirror ksig, klow, khigh
--
--
--
--
-- Reflects the signal that exceeds the low and high thresholds.
--
--
mirrorA :: (K k0, K k1) => Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : mirror
-- - syntax :
--
--
--
-- ares mirror asig, klow, khigh
-- ires mirror isig, ilow, ihigh
-- kres mirror ksig, klow, khigh
--
--
--
--
-- Reflects the signal that exceeds the low and high thresholds.
--
--
mirrorI :: Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : mirror
-- - syntax :
--
--
--
-- ares mirror asig, klow, khigh
-- ires mirror isig, ilow, ihigh
-- kres mirror ksig, klow, khigh
--
--
--
--
-- Reflects the signal that exceeds the low and high thresholds.
--
--
mirrorK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : wrap
-- - syntax :
--
--
--
-- ares wrap asig, klow, khigh
-- ires wrap isig, ilow, ihigh
-- kres wrap ksig, klow, khigh
--
--
--
--
-- Wraps-around the signal that exceeds the low and high thresholds.
--
--
wrapA :: (K k0, K k1) => Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : wrap
-- - syntax :
--
--
--
-- ares wrap asig, klow, khigh
-- ires wrap isig, ilow, ihigh
-- kres wrap ksig, klow, khigh
--
--
--
--
-- Wraps-around the signal that exceeds the low and high thresholds.
--
--
wrapI :: Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : wrap
-- - syntax :
--
--
--
-- ares wrap asig, klow, khigh
-- ires wrap isig, ilow, ihigh
-- kres wrap ksig, klow, khigh
--
--
--
--
-- Wraps-around the signal that exceeds the low and high thresholds.
--
--
wrapK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- | Special Effects
module CsoundExpr.Opcodes.Sigmod.Speciale
-- |
-- - opcode : distort
-- - syntax :
--
--
--
-- ar distort asig, kdist, ifn[, ihp, istor]
--
--
--
distort :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Arate
-- |
-- - opcode : distort1
-- - syntax :
--
--
--
-- ares distort1 asig, kpregain, kpostgain, kshape1, kshape2[, imode]
--
--
--
--
-- Implementation of modified hyperbolic tangent distortion. distort1 can
-- be used to generate wave shaping distortion based on a modification of
-- the tanh function.
--
--
distort1 :: (K k0, K k1, K k2, K k3) => [Irate] -> Arate -> k0 -> k1 -> k2 -> k3 -> Arate
-- |
-- - opcode : flanger
-- - syntax :
--
--
--
-- ares flanger asig, adel, kfeedback [, imaxd]
--
--
--
--
-- A user controlled flanger.
--
--
flanger :: K k0 => [Irate] -> Arate -> Arate -> k0 -> Arate
-- |
-- - opcode : harmon
-- - syntax :
--
--
--
-- ares harmon asig, kestfrq, kmaxvar, kgenfreq1, kgenfreq2, imode,
-- iminfrq, iprd
--
--
--
--
-- Analyze an audio input and generate harmonizing voices in synchrony.
--
--
harmon :: (K k0, K k1, K k2, K k3) => Arate -> k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : phaser1
-- - syntax :
--
--
--
-- ares phaser1 asig, kfreq, kord, kfeedback [, iskip]
--
--
--
--
-- An implementation of iord number of first-order allpass filters in
-- series.
--
--
phaser1 :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : phaser2
-- - syntax :
--
--
--
-- ares phaser2 asig, kfreq, kq, kord, kmode, ksep, kfeedback
--
--
--
--
-- An implementation of iord number of second-order allpass filters in
-- series.
--
--
phaser2 :: (K k0, K k1, K k2, K k3, K k4, K k5) => Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Arate
-- | Standard Filters
module CsoundExpr.Opcodes.Sigmod.Standard
-- |
-- - opcode : areson
-- - syntax :
--
--
--
-- ares areson asig, kcf, kbw [, iscl] [, iskip]
--
--
--
--
-- A notch filter whose transfer functions are the complements of the
-- reson opcode.
--
--
areson :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : lowpass2
-- - syntax :
--
--
--
-- ares lowpass2 asig, kcf, kq [, iskip]
--
--
--
--
-- Implementation of a resonant second-order lowpass filter.
--
--
lowpass2 :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : lowres
-- - syntax :
--
--
--
-- ares lowres asig, kcutoff, kresonance [, iskip]
--
--
--
--
-- lowres is a resonant lowpass filter.
--
--
lowres :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : lowresx
-- - syntax :
--
--
--
-- ares lowresx asig, kcutoff, kresonance [, inumlayer] [, iskip]
--
--
--
--
-- lowresx is equivalent to more layers of lowres with the same arguments
-- serially connected.
--
--
lowresx :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : lpf18
-- - syntax :
--
--
--
-- ares lpf18 asig, kfco, kres, kdist
--
--
--
--
-- Implementation of a 3 pole sweepable resonant lowpass filter.
--
--
lpf18 :: (K k0, K k1, K k2) => Arate -> k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : moogvcf
-- - syntax :
--
--
--
-- ares moogvcf asig, xfco, xres [,iscale, iskip]
--
--
--
--
-- A digital emulation of the Moog diode ladder filter configuration.
--
--
moogvcf :: (X x0, X x1) => [Irate] -> Arate -> x0 -> x1 -> Arate
-- |
-- - opcode : moogladder
-- - syntax :
--
--
--
-- asig moogladder ain, kcf, kres[, istor]
--
--
--
--
-- Moogladder is an new digital implementation of the Moog ladder filter
-- based on the work of Antti Huovilainen, described in the paper
-- Non-Linear Digital Implementation of the Moog Ladder Filter
-- (Proceedings of DaFX04, Univ of Napoli). This implementation is
-- probably a more accurate digital representation of the original
-- analogue filter.
--
--
moogladder :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : reson
-- - syntax :
--
--
--
-- ares reson asig, kcf, kbw [, iscl] [, iskip]
--
--
--
--
-- A second-order resonant filter.
--
--
reson :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : resonr
-- - syntax :
--
--
--
-- ares resonr asig, kcf, kbw [, iscl] [, iskip]
--
--
--
--
-- Implementations of a second-order, two-pole two-zero bandpass filter
-- with variable frequency response.
--
--
resonr :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : resonx
-- - syntax :
--
--
--
-- ares resonx asig, kcf, kbw [, inumlayer] [, iscl] [, iskip]
--
--
--
--
-- resonx is equivalent to a filters consisting of more layers of reson
-- with the same arguments, serially connected. Using a stack of a larger
-- number of filters allows a sharper cutoff. They are faster than using
-- a larger number instances in a Csound orchestra of the old opcodes,
-- because only one initialization and k- cycle are needed at time and
-- the audio loop falls entirely inside the cache memory of processor.
--
--
resonx :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : resony
-- - syntax :
--
--
--
-- ares resony asig, kbf, kbw, inum, ksep [, isepmode] [, iscl] [, iskip]
--
--
--
--
-- A bank of second-order bandpass filters, connected in parallel.
--
--
resony :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> Irate -> k2 -> Arate
-- |
-- - opcode : resonz
-- - syntax :
--
--
--
-- ares resonz asig, kcf, kbw [, iscl] [, iskip]
--
--
--
--
-- Implementations of a second-order, two-pole two-zero bandpass filter
-- with variable frequency response.
--
--
resonz :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : rezzy
-- - syntax :
--
--
--
-- ares rezzy asig, xfco, xres [, imode, iskip]
--
--
--
--
-- A resonant low-pass filter.
--
--
rezzy :: (X x0, X x1) => [Irate] -> Arate -> x0 -> x1 -> Arate
-- |
-- - opcode : statevar
-- - syntax :
--
--
--
-- ahp,alp,abp,abr statevar ain, kcf, kq [, iosamps, istor]
--
--
--
--
-- Statevar is a new digital implementation of the analogue
-- state-variable filter. This filter has four simultaneous outputs:
-- high-pass, low-pass, band-pass and band-reject. This filter uses
-- oversampling for sharper resonance (default: 3 times oversampling). It
-- includes a resonance limiter that prevents the filter from getting
-- unstable.
--
--
statevar :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : svfilter
-- - syntax :
--
--
--
-- alow, ahigh, aband svfilter asig, kcf, kq [, iscl]
--
--
--
--
-- Implementation of a resonant second order filter, with simultaneous
-- lowpass, highpass and bandpass outputs.
--
--
svfilter :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : tbvcf
-- - syntax :
--
--
--
-- ares tbvcf asig, xfco, xres, kdist, kasym [, iskip]
--
--
--
--
-- This opcode attempts to model some of the filter characteristics of a
-- Roland TB303 voltage-controlled filter. Euler's method is used to
-- approximate the system, rather than traditional filter methods. Cutoff
-- frequency, Q, and distortion are all coupled. Empirical methods were
-- used to try to unentwine, but frequency is only approximate as a
-- result. Future fixes for some problems with this opcode may break
-- existing orchestras relying on this version of tbvcf.
--
--
tbvcf :: (X x0, X x1, K k0, K k1) => [Irate] -> Arate -> x0 -> x1 -> k0 -> k1 -> Arate
-- |
-- - opcode : vlowres
-- - syntax :
--
--
--
-- ares vlowres asig, kfco, kres, iord, ksep
--
--
--
--
-- A bank of filters in which the cutoff frequency can be separated under
-- user control
--
--
vlowres :: (K k0, K k1, K k2) => Arate -> k0 -> k1 -> Irate -> k2 -> Arate
-- |
-- - opcode : bqrez
-- - syntax :
--
--
--
-- ares bqrez asig, xfco, xres [, imode] [, iskip]
--
--
--
--
-- A second-order multi-mode filter.
--
--
bqrez :: (X x0, X x1) => [Irate] -> Arate -> x0 -> x1 -> Arate
-- |
-- - opcode : atone
-- - syntax :
--
--
--
-- ares atone asig, khp [, iskip]
--
--
--
--
-- A hi-pass filter whose transfer functions are the complements of the
-- tone opcode.
--
--
atone :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : atonex
-- - syntax :
--
--
--
-- ares atonex asig, khp [, inumlayer] [, iskip]
--
--
--
--
-- atonex is equivalent to a filter consisting of more layers of atone
-- with the same arguments, serially connected. Using a stack of a larger
-- number of filters allows a sharper cutoff. They are faster than using
-- a larger number instances in a Csound orchestra of the old opcodes,
-- because only one initialization and k- cycle are needed at time and
-- the audio loop falls entirely inside the cache memory of processor.
--
--
atonex :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : tone
-- - syntax :
--
--
--
-- ares tone asig, khp [, iskip]
--
--
--
--
-- A first-order recursive low-pass filter with variable frequency
-- response.
--
--
tone :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : tonex
-- - syntax :
--
--
--
-- ares tonex asig, khp [, inumlayer] [, iskip]
--
--
--
--
-- tonex is equivalent to a filter consisting of more layers of tone with
-- the same arguments, serially connected. Using a stack of a larger
-- number of filters allows a sharper cutoff. They are faster than using
-- a larger number instances in a Csound orchestra of the old opcodes,
-- because only one initialization and k- cycle are needed at time and
-- the audio loop falls entirely inside the cache memory of processor.
--
--
tonex :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : biquad
-- - syntax :
--
--
--
-- ares biquad asig, kb0, kb1, kb2, ka0, ka1, ka2 [, iskip]
--
--
--
--
-- A sweepable general purpose biquadratic digital filter.
--
--
biquad :: (K k0, K k1, K k2, K k3, K k4, K k5) => [Irate] -> Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Arate
-- |
-- - opcode : biquada
-- - syntax :
--
--
--
-- ares biquada asig, ab0, ab1, ab2, aa0, aa1, aa2 [, iskip]
--
--
--
--
-- A sweepable general purpose biquadratic digital filter.
--
--
biquada :: [Irate] -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate -> Arate
-- |
-- - opcode : butterbp
-- - syntax :
--
--
--
-- ares butterbp asig, kfreq, kband [, iskip]
--
--
--
--
-- Implementation of a second-order band-pass Butterworth filter. This
-- opcode can also be written as butbp.
--
--
butterbp :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : butterbr
-- - syntax :
--
--
--
-- ares butterbr asig, kfreq, kband [, iskip]
--
--
--
--
-- Implementation of a second-order band-reject Butterworth filter. This
-- opcode can also be written as butbr.
--
--
butterbr :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : butterhp
-- - syntax :
--
--
--
-- ares butterhp asig, kfreq [, iskip]
--
--
--
--
-- Implementation of second-order high-pass Butterworth filter. This
-- opcode can also be written as buthp.
--
--
butterhp :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : butterlp
-- - syntax :
--
--
--
-- ares butterlp asig, kfreq [, iskip]
--
--
--
--
-- Implementation of a second-order low-pass Butterworth filter. This
-- opcode can also be written as butlp.
--
--
butterlp :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : butbp
-- - syntax :
--
--
--
-- ares butbp asig, kfreq, kband [, iskip]
--
--
--
--
-- Same as the butterbp opcode.
--
--
butbp :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : butbr
-- - syntax :
--
--
--
-- ares butbr asig, kfreq, kband [, iskip]
--
--
--
--
-- Same as the butterbr opcode.
--
--
butbr :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : buthp
-- - syntax :
--
--
--
-- ares buthp asig, kfreq [, iskip]
--
--
--
--
-- Same as the butterhp opcode.
--
--
buthp :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : butlp
-- - syntax :
--
--
--
-- ares butlp asig, kfreq [, iskip]
--
--
--
--
-- Same as the butterlp opcode.
--
--
butlp :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : clfilt
-- - syntax :
--
--
--
-- ares clfilt asig, kfreq, itype, inpol [, ikind] [, ipbr] [, isba] [, iskip]
--
--
--
--
-- Implements the classical standard analog filter types: low-pass and
-- high-pass. They are implemented with the four classical kinds of
-- filters: Butterworth, Chebyshev Type I, Chebyshev Type II, and
-- Elliptical. The number of poles may be any even number from 2 to 80.
--
--
clfilt :: K k0 => [Irate] -> Arate -> k0 -> Irate -> Irate -> Arate
-- |
-- - opcode : aresonk
-- - syntax :
--
--
--
-- kres aresonk ksig, kcf, kbw [, iscl] [, iskip]
--
--
--
--
-- A notch filter whose transfer functions are the complements of the
-- reson opcode.
--
--
aresonk :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : atonek
-- - syntax :
--
--
--
-- kres atonek ksig, khp [, iskip]
--
--
--
--
-- A hi-pass filter whose transfer functions are the complements of the
-- tonek opcode.
--
--
atonek :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : lineto
-- - syntax :
--
--
--
-- kres lineto ksig, ktime
--
--
--
--
-- Generate glissandos starting from a control signal.
--
--
lineto :: (K k0, K k1) => k0 -> k1 -> Krate
-- |
-- - opcode : port
-- - syntax :
--
--
--
-- kres port ksig, ihtim [, isig]
--
--
--
--
-- Applies portamento to a step-valued control signal.
--
--
port :: K k0 => [Irate] -> k0 -> Irate -> Krate
-- |
-- - opcode : portk
-- - syntax :
--
--
--
-- kres portk ksig, khtim [, isig]
--
--
--
--
-- Applies portamento to a step-valued control signal.
--
--
portk :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : resonk
-- - syntax :
--
--
--
-- kres resonk ksig, kcf, kbw [, iscl] [, iskip]
--
--
--
--
-- A second-order resonant filter.
--
--
resonk :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : resonxk
-- - syntax :
--
--
--
-- kres resonxk ksig, kcf, kbw[, inumlayer, iscl, istor]
--
--
--
--
-- resonxk is equivalent to a group of resonk filters, with the same
-- arguments, serially connected. Using a stack of a larger number of
-- filters allows a sharper cutoff.
--
--
resonxk :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : tlineto
-- - syntax :
--
--
--
-- kres tlineto ksig, ktime, ktrig
--
--
--
--
-- Generate glissandos starting from a control signal with a trigger.
--
--
tlineto :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : tonek
-- - syntax :
--
--
--
-- kres tonek ksig, khp [, iskip]
--
--
--
--
-- A first-order recursive low-pass filter with variable frequency
-- response.
--
--
tonek :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- | Specialized Filters
module CsoundExpr.Opcodes.Sigmod.Speciali
-- |
-- - opcode : dcblock
-- - syntax :
--
--
--
-- ares dcblock ain [, igain]
--
--
--
--
-- Implements the DC blocking filter
--
--
dcblock :: [Irate] -> Arate -> Arate
-- |
-- - opcode : dcblock2
-- - syntax :
--
--
--
-- ares dcblock2 ain [, iorder] [, iskip]
--
--
--
--
-- Implements a DC blocking filter with improved DC attenuation.
--
--
dcblock2 :: [Irate] -> Arate -> Arate
-- |
-- - opcode : pareq
-- - syntax :
--
--
--
-- ares pareq asig, kc, kv, kq [, imode] [, iskip]
--
--
--
--
-- Implementation of Zoelzer's parametric equalizer filters, with some
-- modifications by the author.
--
--
pareq :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : rbjeq
-- - syntax :
--
--
--
-- ar rbjeq asig, kfco, klvl, kQ, kS[, imode]
--
--
--
--
-- Parametric equalizer and filter opcode with 7 filter types, based on
-- algorithm by Robert Bristow-Johnson.
--
--
rbjeq :: (K k0, K k1, K k2, K k3) => [Irate] -> Arate -> k0 -> k1 -> k2 -> k3 -> Arate
-- |
-- - opcode : eqfil
-- - syntax :
--
--
--
-- asig eqfil ain, kcf, kbw, kgain[, istor]
--
--
--
--
-- The opcode eqfil is a 2nd order tunable equalisation filter based on
-- Regalia and Mitra design (Tunable Digital Frequency Response
-- Equalization Filters, IEEE Trans. on Ac., Sp. and Sig Proc., 35
-- (1), 1987). It provides a peak/notch filter for building
-- parametric/graphic equalisers.
--
--
eqfil :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : nlfilt
-- - syntax :
--
--
--
-- ares nlfilt ain, ka, kb, kd, kC, kL
--
--
--
--
-- Implements the filter:
--
--
nlfilt :: (K k0, K k1, K k2, K k3, K k4) => Arate -> k0 -> k1 -> k2 -> k3 -> k4 -> Arate
-- |
-- - opcode : filter2
-- - syntax :
--
--
--
-- ares filter2 asig, iM, iN, ib0, ib1,..., ibM, ia1, ia2,..., iaN
-- kres filter2 ksig, iM, iN, ib0, ib1,..., ibM, ia1, ia2,..., iaN
--
--
--
--
-- General purpose custom filter with time-varying pole control. The
-- filter coefficients implement the following difference equation:
--
--
filter2A :: Arate -> Irate -> Irate -> [Irate] -> [Irate] -> Arate
-- |
-- - opcode : filter2
-- - syntax :
--
--
--
-- ares filter2 asig, iM, iN, ib0, ib1,..., ibM, ia1, ia2,..., iaN
-- kres filter2 ksig, iM, iN, ib0, ib1,..., ibM, ia1, ia2,..., iaN
--
--
--
--
-- General purpose custom filter with time-varying pole control. The
-- filter coefficients implement the following difference equation:
--
--
filter2K :: K k0 => k0 -> Irate -> Irate -> [Irate] -> [Irate] -> Krate
-- |
-- - opcode : fofilter
-- - syntax :
--
--
--
-- asig fofilter ain, kcf, kris, kdec[, istor]
--
--
--
--
-- Fofilter generates a stream of overlapping sinewave grains, when fed
-- with a pulse train. Each grain is the impulse response of a
-- combination of two BP filters. The grains are defined by their attack
-- time (determining the skirtwidth of the formant region at -60dB) and
-- decay time (-6dB bandwidth). Overlapping will occur when 1/freq <
-- decay, but, unlike FOF, there is no upper limit on the number of
-- overlaps. The original idea for this opcode came from J McCartney's
-- formlet class in SuperCollider, but this is possibly implemented
-- differently(?).
--
--
fofilter :: (K k0, K k1, K k2) => [Irate] -> Arate -> k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : hilbert
-- - syntax :
--
--
--
-- ar1, ar2 hilbert asig
--
--
--
--
-- An IIR implementation of a Hilbert transformer.
--
--
hilbert :: Arate -> MultiOut
-- |
-- - opcode : zfilter2
-- - syntax :
--
--
--
-- ares zfilter2 asig, kdamp, kfreq, iM, iN, ib0, ib1,..., ibM,
-- ia1,ia2,..., iaN
--
--
--
--
-- General purpose custom filter with time-varying pole control. The
-- filter coefficients implement the following difference equation:
--
--
zfilter2 :: (K k0, K k1) => Arate -> k0 -> k1 -> Irate -> Irate -> [Irate] -> [Irate] -> Arate
-- | Waveguides
module CsoundExpr.Opcodes.Sigmod.Wavguide
-- |
-- - opcode : streson
-- - syntax :
--
--
--
-- ares streson asig, kfr, ifdbgain
--
--
--
--
-- An audio signal is modified by a string resonator with variable
-- fundamental frequency.
--
--
streson :: K k0 => Arate -> k0 -> Irate -> Arate
-- | Waveshaping and Phase Distortion
module CsoundExpr.Opcodes.Sigmod.Wavshape
-- |
-- - opcode : chebyshevpoly
-- - syntax :
--
--
--
-- aout chebyshevpoly ain, k0 [, k1 [, k2 [...]]]
--
--
--
--
-- The chebyshevpoly opcode calculates the value of a polynomial
-- expression with a single a-rate input variable that is made up of a
-- linear combination of the first N Chebyshev polynomials of the first
-- kind. Each Chebyshev polynomial, Tn(x), is weighted by a k-rate
-- coefficient, kn, so that the opcode is calculating a sum of any number
-- of terms in the form kn*Tn(x). Thus, the chebyshevpoly opcode allows
-- for the waveshaping of an audio signal with a dynamic transfer
-- function that gives precise control over the harmonic content of the
-- output.
--
--
chebyshevpoly :: K k0 => Arate -> [k0] -> Arate
-- |
-- - opcode : polynomial
-- - syntax :
--
--
--
-- aout polynomial ain, k0 [, k1 [, k2 [...]]]
--
--
--
--
-- The polynomial opcode calculates a polynomial with a single a-rate
-- input variable. The polynomial is a sum of any number of terms in the
-- form kn*x^n where kn is the nth coefficient of the expression. These
-- coefficients are k-rate values.
--
--
polynomial :: K k0 => Arate -> [k0] -> Arate
-- |
-- - opcode : powershape
-- - syntax :
--
--
--
-- aout powershape ain, kShapeAmount [, ifullscale]
--
--
--
--
-- The powershape opcode raises an input signal to a power with pre- and
-- post-scaling of the signal so that the output will be in a predictable
-- range. It also processes negative inputs in a symmetrical way to
-- positive inputs, calculating a dynamic transfer function that is
-- useful for waveshaping.
--
--
powershape :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : pdclip
-- - syntax :
--
--
--
-- aout pdclip ain, kWidth, kCenter [, ibipolar [, ifullscale]]
--
--
--
--
-- The pdclip opcode allows a percentage of the input range of a signal
-- to be clipped to fullscale. It is similar to simply multiplying the
-- signal and limiting the range of the result, but pdclip allows you to
-- think about how much of the signal range is being distorted instead of
-- the scalar factor and has a offset parameter for assymetric clipping
-- of the signal range. pdclip is also useful for remapping phasors for
-- phase distortion synthesis.
--
--
pdclip :: (K k0, K k1) => [Irate] -> Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : pdhalf
-- - syntax :
--
--
--
-- aout pdhalf ain, kShapeAmount [, ibipolar [, ifullscale]]
--
--
--
--
-- The pdhalf opcode is designed to emulate the classic phase
-- distortion synthesis method of the Casio CZ-series of synthesizers
-- from the mid-1980's. This technique reads the first and second halves
-- of a function table at different rates in order to warp the waveform.
-- For example, pdhalf can smoothly transform a sine wave into something
-- approximating the shape of a saw wave.
--
--
pdhalf :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : pdhalfy
-- - syntax :
--
--
--
-- aout pdhalfy ain, kShapeAmount [, ibipolar [, ifullscale]]
--
--
--
--
-- The pdhalfy opcode is a variation on the phase distortion synthesis
-- method of the pdhalf opcode. It is useful for distorting a phasor in
-- order to read two unequal portions of a table in the same number of
-- samples.
--
--
pdhalfy :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- | Signal Modifiers
module CsoundExpr.Opcodes.Sigmod
-- | Clock Control
module CsoundExpr.Opcodes.Control.Clockctl
-- |
-- - opcode : clockoff
-- - syntax :
--
--
--
-- clockoff inum
--
--
--
--
-- Stops one of a number of internal clocks.
--
--
clockoff :: Irate -> SignalOut
-- |
-- - opcode : clockon
-- - syntax :
--
--
--
-- clockon inum
--
--
--
--
-- Starts one of a number of internal clocks.
--
--
clockon :: Irate -> SignalOut
-- | Duration Control Statements
module CsoundExpr.Opcodes.Control.Durctl
-- |
-- - opcode : ihold
-- - syntax :
--
--
--
-- ihold
--
--
--
--
-- Causes a finite-duration note to become a held note
--
--
ihold :: SignalOut
-- |
-- - opcode : turnoff
-- - syntax :
--
--
--
-- turnoff
--
--
--
--
-- Enables an instrument to turn itself off.
--
--
turnoff :: SignalOut
-- |
-- - opcode : turnoff2
-- - syntax :
--
--
--
-- turnoff2 kinsno, kmode, krelease
--
--
--
--
-- Turn off instance(s) of other instruments at performance time.
--
--
turnoff2 :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SignalOut
-- |
-- - opcode : turnon
-- - syntax :
--
--
--
-- turnon insnum [, itime]
--
--
--
--
-- Activate an instrument for an indefinite time.
--
--
turnon :: [Irate] -> Irate -> SignalOut
-- | FLTK Widgets and GUI controllers
module CsoundExpr.Opcodes.Control.FltkIntro
-- |
-- - opcode : FLrun
-- - syntax :
--
--
--
-- FLrun
--
--
--
--
-- Starts the FLTK widget thread.
--
--
flRun :: SignalOut
-- |
-- - opcode : FLgetsnap
-- - syntax :
--
--
--
-- inumsnap FLgetsnap index [, igroup]
--
--
--
--
-- Retrieves a previously stored snapshot (in memory), i.e. sets all
-- valuator to the corresponding values stored in that snaphot.
--
--
flGetsnap :: [Irate] -> Irate -> Irate
-- |
-- - opcode : FLloadsnap
-- - syntax :
--
--
--
-- FLloadsnap "filename" [, igroup]
--
--
--
--
-- FLloadsnap loads all the snapshots contained in a file into the memory
-- bank of the current orchestra.
--
--
flLoadsnap :: [Irate] -> String -> SignalOut
-- |
-- - opcode : FLsavesnap
-- - syntax :
--
--
--
-- FLsavesnap "filename" [, igroup]
--
--
--
--
-- FLsavesnap saves all snapshots currently created (i.e. the entire
-- memory bank) into a file.
--
--
flSavesnap :: [Irate] -> String -> SignalOut
-- |
-- - opcode : FLsetsnap
-- - syntax :
--
--
--
-- inumsnap, inumval FLsetsnap index [, ifn, igroup]
--
--
--
--
-- FLsetsnap stores the current status of all valuators present in the
-- orchestra into a snapshot location (in memory).
--
--
flSetsnap :: [Irate] -> Irate -> MultiOut
-- |
-- - opcode : FLsetSnapGroup
-- - syntax :
--
--
--
-- FLsetSnapGroup igroup
--
--
--
--
-- FLsetSnapGroup determines the snapshot group of valuators declared
-- after it.
--
--
flSetSnapGroup :: Irate -> SignalOut
-- |
-- - opcode : FLgroup
-- - syntax :
--
--
--
-- FLgroup "label", iwidth, iheight, ix, iy [, iborder] [, image]
--
--
--
--
-- A FLTK container opcode that groups child widgets.
--
--
flGroup :: [Irate] -> String -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLgroupEnd
-- - syntax :
--
--
--
-- FLgroupEnd
--
--
--
--
-- Marks the end of a group of FLTK child widgets.
--
--
flGroupEnd :: SignalOut
-- |
-- - opcode : FLpack
-- - syntax :
--
--
--
-- FLpack iwidth, iheight, ix, iy, itype, ispace, iborder
--
--
--
--
-- FLpack provides the functionality of compressing and aligning widgets.
--
--
flPack :: Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLpackEnd
-- - syntax :
--
--
--
-- FLpackEnd
--
--
--
--
-- Marks the end of a group of compressed or aligned FLTK widgets.
--
--
flPackEnd :: SignalOut
-- |
-- - opcode : FLpanel
-- - syntax :
--
--
--
-- FLpanel "label", iwidth, iheight [, ix] [, iy] [, iborder] [, ikbdcapture] [, iclose]
--
--
--
--
-- Creates a window that contains FLTK widgets.
--
--
flPanel :: [Irate] -> String -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLpanelEnd
-- - syntax :
--
--
--
-- FLpanelEnd
--
--
--
--
-- Marks the end of a group of FLTK widgets contained inside of a window
-- (panel).
--
--
flPanelEnd :: SignalOut
-- |
-- - opcode : FLscroll
-- - syntax :
--
--
--
-- FLscroll iwidth, iheight [, ix] [, iy]
--
--
--
--
-- FLscroll adds scroll bars to an area.
--
--
flScroll :: [Irate] -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLscrollEnd
-- - syntax :
--
--
--
-- FLscrollEnd
--
--
--
--
-- A FLTK opcode that marks the end of an area with scrollbars.
--
--
flScrollEnd :: SignalOut
-- |
-- - opcode : FLtabs
-- - syntax :
--
--
--
-- FLtabs iwidth, iheight, ix, iy
--
--
--
--
-- FLtabs is a file card tabs interface that is useful to display several
-- areas containing widgets in the same windows, alternatively. It must
-- be used together with FLgroup, another container that groups child
-- widgets.
--
--
flTabs :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLtabsEnd
-- - syntax :
--
--
--
-- FLtabsEnd
--
--
--
--
-- Marks the end of a tabbed FLTK interface.
--
--
flTabsEnd :: SignalOut
-- | FLTK Valuators
module CsoundExpr.Opcodes.Control.FltkValuators
-- |
-- - opcode : FLcount
-- - syntax :
--
--
--
-- kout, ihandle FLcount "label", imin, imax, istep1, istep2, itype,
-- iwidth, iheight, ix, iy, iopcode [, kp1] [, kp2] [, kp3] [...] [, kpN]
--
--
--
--
-- Allows the user to increase/decrease a value with mouse clicks on a
-- corresponding arrow button.
--
--
flCount :: K k0 => String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
-- |
-- - opcode : FLjoy
-- - syntax :
--
--
--
-- koutx, kouty, ihandlex, ihandley FLjoy "label", iminx, imaxx, iminy,
-- imaxy, iexpx, iexpy, idispx, idispy, iwidth, iheight, ix, iy
--
--
--
--
-- FLjoy is a squared area that allows the user to modify two output
-- values at the same time. It acts like a joystick.
--
--
flJoy :: String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> (Krate, Krate, Irate, Irate)
-- |
-- - opcode : FLknob
-- - syntax :
--
--
--
-- kout, ihandle FLknob "label", imin, imax, iexp, itype, idisp, iwidth,
-- ix, iy [, icursorsize]
--
--
--
--
-- A FLTK widget opcode that creates a knob.
--
--
flKnob :: [Irate] -> String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> (Krate, Irate)
-- |
-- - opcode : FLroller
-- - syntax :
--
--
--
-- kout, ihandle FLroller "label", imin, imax, istep, iexp, itype, idisp,
-- iwidth, iheight, ix, iy
--
--
--
--
-- FLroller is a sort of knob, but put transversally.
--
--
flRoller :: String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> (Krate, Irate)
-- |
-- - opcode : FLslider
-- - syntax :
--
--
--
-- kout, ihandle FLslider "label", imin, imax, iexp, itype, idisp, iwidth,
-- iheight, ix, iy
--
--
--
--
-- FLslider puts a slider into the corresponding container.
--
--
flSlider :: String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> (Krate, Irate)
-- |
-- - opcode : FLtext
-- - syntax :
--
--
--
-- kout, ihandle FLtext "label", imin, imax, istep, itype, iwidth,
-- iheight, ix, iy
--
--
--
--
-- FLtext allows the user to modify a parameter value by directly typing
-- it into a text field.
--
--
flText :: String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> (Krate, Irate)
-- | Other FLTK Widgets
module CsoundExpr.Opcodes.Control.FltkOther
-- |
-- - opcode : FLbox
-- - syntax :
--
--
--
-- ihandle FLbox "label", itype, ifont, isize, iwidth, iheight, ix, iy [, image]
--
--
--
--
-- A FLTK widget that displays text inside of a box.
--
--
flBox :: [Irate] -> String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : FLbutBank
-- - syntax :
--
--
--
-- kout, ihandle FLbutBank itype, inumx, inumy, iwidth, iheight, ix, iy,
-- iopcode [, kp1] [, kp2] [, kp3] [, kp4] [, kp5] [....] [, kpN]
--
--
--
--
-- A FLTK widget opcode that creates a bank of buttons.
--
--
flButBank :: K k0 => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
-- |
-- - opcode : FLbutton
-- - syntax :
--
--
--
-- kout, ihandle FLbutton "label", ion, ioff, itype, iwidth, iheight, ix,
-- iy, iopcode [, kp1] [, kp2] [, kp3] [, kp4] [, kp5] [....] [, kpN]
--
--
--
--
-- A FLTK widget opcode that creates a button.
--
--
flButton :: K k0 => String -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> [k0] -> (Krate, Irate)
-- |
-- - opcode : FLkeyIn
-- - syntax :
--
--
--
-- kascii FLkeyIn [ifn]
--
--
--
--
-- FLkeyIn informs about the status of a key pressed by the user on the
-- alphanumeric keyboard when an FLTK panel has got the focus.
--
--
flKeyIn :: [Irate] -> Krate
-- |
-- - opcode : FLhvsBox
-- - syntax :
--
--
--
-- ihandle FLhvsBox inumlinesX, inumlinesY, iwidth, iheight, ix, iy [, image]
--
--
--
--
-- FLhvsBox displays a box with a grid useful for visualizing
-- two-dimensional Hyper Vectorial Synthesis.
--
--
flHvsBox :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : FLmouse
-- - syntax :
--
--
--
-- kx, ky, kb1, kb2, kb3 FLmouse [imode]
--
--
--
--
-- FLmouse returns the coordinates of the mouse position within an FLTK
-- panel and the state of the three mouse buttons.
--
--
flMouse :: [Irate] -> MultiOut
-- |
-- - opcode : FLprintk
-- - syntax :
--
--
--
-- FLprintk itime, kval, idisp
--
--
--
--
-- FLprintk is similar to printk but shows values of a k-rate signal in a
-- text field instead of on the console.
--
--
flPrintk :: K k0 => Irate -> k0 -> Irate -> SignalOut
-- |
-- - opcode : FLprintk2
-- - syntax :
--
--
--
-- FLprintk2 kval, idisp
--
--
--
--
-- FLprintk2 is similar to FLprintk but shows a k-rate variable's value
-- only when it changes.
--
--
flPrintk2 :: K k0 => k0 -> Irate -> SignalOut
-- |
-- - opcode : FLslidBnk
-- - syntax :
--
--
--
-- FLslidBnk "names", inumsliders [, ioutable] [, iwidth] [, iheight] [, ix]
-- [, iy] [, itypetable] [, iexptable] [, istart_index] [, iminmaxtable]
--
--
--
--
-- FLslidBnk is a widget containing a bank of horizontal sliders.
--
--
flSlidBnk :: [Irate] -> String -> Irate -> SignalOut
-- |
-- - opcode : FLslidBnk2
-- - syntax :
--
--
--
-- FLslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index]
--
--
--
--
-- FLslidBnk2 is a widget containing a bank of horizontal sliders.
--
--
flSlidBnk2 :: [Irate] -> String -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLslidBnkGetHandle
-- - syntax :
--
--
--
-- ihandle FLslidBnkGetHandle
--
--
--
--
-- FLslidBnkGetHandle gets the handle of last slider bank created.
--
--
flSlidBnkGetHandle :: Irate
-- |
-- - opcode : FLslidBnkSet
-- - syntax :
--
--
--
-- FLslidBnkSet ihandle, ifn [, istartIndex, istartSlid, inumSlid]
--
--
--
--
-- FLslidBnkSet modifies the values of a slider bank according to an
-- array of values stored in a table.
--
--
flSlidBnkSet :: [Irate] -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLslidBnk2Set
-- - syntax :
--
--
--
-- FLslidBnk2Set ihandle, ifn [, istartIndex, istartSlid, inumSlid]
--
--
--
--
-- FLslidBnk2Set modifies the values of a slider bank according to an
-- array of values stored in a table.
--
--
flSlidBnk2Set :: [Irate] -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLslidBnk2Setk
-- - syntax :
--
--
--
-- FLslidBnk2Setk ktrig, ihandle, ifn [, istartIndex, istartSlid, inumSlid]
--
--
--
--
-- FLslidBnk2Setk modifies the values of a slider bank according to an
-- array of values stored in a table.
--
--
flSlidBnk2Setk :: K k0 => [Irate] -> k0 -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLvalue
-- - syntax :
--
--
--
-- ihandle FLvalue "label", iwidth, iheight, ix, iy
--
--
--
--
-- FLvalue shows current the value of a valuator in a text field.
--
--
flValue :: String -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : FLvslidBnk
-- - syntax :
--
--
--
-- FLvslidBnk "names", inumsliders [, ioutable] [, iwidth] [, iheight] [, ix]
-- [, iy] [, itypetable] [, iexptable] [, istart_index] [, iminmaxtable]
--
--
--
--
-- FLvslidBnk is a widget containing a bank of vertical sliders.
--
--
flVslidBnk :: [Irate] -> String -> Irate -> SignalOut
-- |
-- - opcode : FLvslidBnk2
-- - syntax :
--
--
--
-- FLvslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index]
--
--
--
--
-- FLvslidBnk2 is a widget containing a bank of vertical sliders.
--
--
flVslidBnk2 :: [Irate] -> String -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLxyin
-- - syntax :
--
--
--
-- koutx, kouty, kinside FLxyin ioutx_min, ioutx_max, iouty_min, iouty_max,
-- iwindx_min, iwindx_max, iwindy_min, iwindy_max [, iexpx, iexpy, ioutx, iouty]
--
--
--
--
-- Similar to xyin, sense the mouse cursor position in a user-defined
-- area inside an FLpanel.
--
--
flXyin :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- | Modifying FLTK Widget Appearance
module CsoundExpr.Opcodes.Control.FltkAppearance
-- |
-- - opcode : FLcolor
-- - syntax :
--
--
--
-- FLcolor ired, igreen, iblue [, ired2, igreen2, iblue2]
--
--
--
--
-- Sets the primary colors to RGB values given by the user.
--
--
flColor :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLcolor2
-- - syntax :
--
--
--
-- FLcolor2 ired, igreen, iblue
--
--
--
--
-- FLcolor2 is the same of FLcolor except it affects the secondary
-- (selection) color.
--
--
flColor2 :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLhide
-- - syntax :
--
--
--
-- FLhide ihandle
--
--
--
--
-- Hides the target FLTK widget, making it invisible.
--
--
flHide :: Irate -> SignalOut
-- |
-- - opcode : FLlabel
-- - syntax :
--
--
--
-- FLlabel isize, ifont, ialign, ired, igreen, iblue
--
--
--
--
-- Modifies a set of parameters related to the text label appearence of a
-- widget (i.e. size, font, alignment and color of corresponding text).
--
--
flLabel :: Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetAlign
-- - syntax :
--
--
--
-- FLsetAlign ialign, ihandle
--
--
--
--
-- FLsetAlign sets the text alignment of the label of the target widget.
--
--
flSetAlign :: Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetBox
-- - syntax :
--
--
--
-- FLsetBox itype, ihandle
--
--
--
--
-- FLsetBox sets the appearance of a box surrounding the target widget.
--
--
flSetBox :: Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetColor
-- - syntax :
--
--
--
-- FLsetColor ired, igreen, iblue, ihandle
--
--
--
--
-- FLsetColor sets the primary color of the target widget.
--
--
flSetColor :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetColor2
-- - syntax :
--
--
--
-- FLsetColor2 ired, igreen, iblue, ihandle
--
--
--
--
-- FLsetColor2 sets the secondary (or selection) color of the target
-- widget.
--
--
flSetColor2 :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetFont
-- - syntax :
--
--
--
-- FLsetFont ifont, ihandle
--
--
--
--
-- FLsetFont sets the font type of the target widget.
--
--
flSetFont :: Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetPosition
-- - syntax :
--
--
--
-- FLsetPosition ix, iy, ihandle
--
--
--
--
-- FLsetPosition sets the position of the target widget according to the
-- ix and iy arguments.
--
--
flSetPosition :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetSize
-- - syntax :
--
--
--
-- FLsetSize iwidth, iheight, ihandle
--
--
--
--
-- FLsetSize resizes the target widget (not the size of its text)
-- according to the iwidth and iheight arguments.
--
--
flSetSize :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetText
-- - syntax :
--
--
--
-- FLsetText "itext", ihandle
--
--
--
--
-- FLsetText sets the label of the target widget to the double-quoted
-- text string provided with the itext argument.
--
--
flSetText :: String -> Irate -> SignalOut
-- |
-- - opcode : FLsetTextColor
-- - syntax :
--
--
--
-- FLsetTextColor ired, iblue, igreen, ihandle
--
--
--
--
-- FLsetTextColor sets the color of the text label of the target widget.
--
--
flSetTextColor :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetTextSize
-- - syntax :
--
--
--
-- FLsetTextSize isize, ihandle
--
--
--
--
-- FLsetTextSize sets the size of the text label of the target widget.
--
--
flSetTextSize :: Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetTextType
-- - syntax :
--
--
--
-- FLsetTextType itype, ihandle
--
--
--
--
-- FLsetTextType sets some attributes related to the fonts of the text
-- label of the target widget.
--
--
flSetTextType :: Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetVal_i
-- - syntax :
--
--
--
-- FLsetVal_i ivalue, ihandle
--
--
--
--
-- FLsetVal_i forces the value of a valuator to a number provided by the
-- user.
--
--
flSetVal_i :: Irate -> Irate -> SignalOut
-- |
-- - opcode : FLsetVal
-- - syntax :
--
--
--
-- FLsetVal ktrig, kvalue, ihandle
--
--
--
--
-- FLsetVal is almost identical to FLsetVal_i. Except it operates at
-- k-rate and it affects the target valuator only when ktrig is set to a
-- non-zero value.
--
--
flSetVal :: (K k0, K k1) => k0 -> k1 -> Irate -> SignalOut
-- |
-- - opcode : FLshow
-- - syntax :
--
--
--
-- FLshow ihandle
--
--
--
--
-- FLshow restores the visibility of a previously hidden widget.
--
--
flShow :: Irate -> SignalOut
-- | General FLTK Widget-related Opcodes
module CsoundExpr.Opcodes.Control.FltkGeneral
-- |
-- - opcode : FLupdate
-- - syntax :
--
--
--
-- FLupdate
--
--
--
--
-- Same as the FLrun opcode.
--
--
flUpdate :: SignalOut
-- | Instrument Invocation
module CsoundExpr.Opcodes.Control.Invocat
-- |
-- - opcode : scoreline_i
-- - syntax :
--
--
--
-- scoreline_i Sin
--
--
--
--
-- scoreline_i will issue score events at i-time. It can handle strings
-- in the same conditions as the standard score. Multi-line strings are
-- accepted, using {{ }} to enclose the string.
--
--
scoreline_i :: String -> SignalOut
-- |
-- - opcode : scoreline
-- - syntax :
--
--
--
-- scoreline Sin, ktrig
--
--
--
--
-- Scoreline will issue one or more score events, if ktrig is 1 every
-- k-period. It can handle strings in the same conditions as the standard
-- score. Multi-line strings are accepted, using {{ }} to enclose the
-- string.
--
--
scoreline :: K k0 => String -> k0 -> SignalOut
-- | Program Flow Control
module CsoundExpr.Opcodes.Control.Pgmctl
-- |
-- - opcode : else
-- - syntax :
--
--
--
-- else
--
--
--
--
-- Executes a block of code when an if...then condition is false.
--
--
else' :: SignalOut
-- |
-- - opcode : endif
-- - syntax :
--
--
--
-- endif
--
--
--
--
-- Closes a block of code that begins with an if...then statement.
--
--
endif :: SignalOut
-- | Real-time Performance Control
module CsoundExpr.Opcodes.Control.Realtime
-- |
-- - opcode : active
-- - syntax :
--
--
--
-- ir active insnum
-- kres active kinsnum
--
--
--
--
-- Returns the number of active instances of an instrument.
--
--
activeI :: Irate -> Irate
-- |
-- - opcode : active
-- - syntax :
--
--
--
-- ir active insnum
-- kres active kinsnum
--
--
--
--
-- Returns the number of active instances of an instrument.
--
--
activeK :: K k0 => k0 -> Krate
-- |
-- - opcode : cpuprc
-- - syntax :
--
--
--
-- cpuprc insnum, ipercent
--
--
--
--
-- Control allocation of cpu resources on a per-instrument basis, to
-- optimize realtime output.
--
--
cpuprc :: Irate -> Irate -> SignalOut
-- |
-- - opcode : maxalloc
-- - syntax :
--
--
--
-- maxalloc insnum, icount
--
--
--
--
-- Limits the number of allocations of an instrument.
--
--
maxalloc :: Irate -> Irate -> SignalOut
-- |
-- - opcode : prealloc
-- - syntax :
--
--
--
-- prealloc insnum, icount
-- prealloc "insname", icount
--
--
--
--
-- Creates space for instruments but does not run them.
--
--
preallocI :: Irate -> Irate -> SignalOut
-- |
-- - opcode : prealloc
-- - syntax :
--
--
--
-- prealloc insnum, icount
-- prealloc "insname", icount
--
--
--
--
-- Creates space for instruments but does not run them.
--
--
preallocS :: String -> Irate -> SignalOut
-- |
-- - opcode : jacktransport
-- - syntax :
--
--
--
-- jacktransport icommand [, ilocation]
--
--
--
--
-- Start/stop jack_transport and can optionally relocate the playback
-- head.
--
--
jacktransport :: [Irate] -> Irate -> SignalOut
-- | Initialization and Reinitialization
module CsoundExpr.Opcodes.Control.Reinitn
-- |
-- - opcode : tival
-- - syntax :
--
--
--
-- ir tival
--
--
--
--
-- Puts the value of the instrument's internal tie-in flag into the named
-- i-rate variable.
--
--
tival :: Irate
-- |
-- - opcode : passign
-- - syntax :
--
--
--
-- ivar1,... passign [istart]
--
--
--
--
-- Assigns a range of p-fields to ivariables.
--
--
passign :: [Irate] -> Irate
-- |
-- - opcode : pset
-- - syntax :
--
--
--
-- pset icon1 [, icon2] [...]
--
--
--
--
-- Defines and initializes numeric arrays at orchestra load time.
--
--
pset :: Irate -> SignalOut
-- |
-- - opcode : rireturn
-- - syntax :
--
--
--
-- rireturn
--
--
--
--
-- Terminates a reinit pass (i.e., no-op at standard i-time). This
-- statement, or an endin, will cause normal performance to be resumed.
--
--
rireturn :: SignalOut
-- | Sensing and Control
module CsoundExpr.Opcodes.Control.Sensing
-- |
-- - opcode : button
-- - syntax :
--
--
--
-- kres button knum
--
--
--
--
-- Sense on-screen controls. Requires Winsound or TCL/TK.
--
--
button :: K k0 => k0 -> Krate
-- |
-- - opcode : checkbox
-- - syntax :
--
--
--
-- kres checkbox knum
--
--
--
--
-- Sense on-screen controls. Requires Winsound or TCL/TK.
--
--
checkbox :: K k0 => k0 -> Krate
-- |
-- - opcode : control
-- - syntax :
--
--
--
-- kres control knum
--
--
--
--
-- Configurable slider controls for realtime user input. Requires
-- Winsound or TCL/TK. control reads a slider's value.
--
--
control :: K k0 => k0 -> Krate
-- |
-- - opcode : setctrl
-- - syntax :
--
--
--
-- setctrl inum, ival, itype
--
--
--
--
-- Configurable slider controls for realtime user input. Requires
-- Winsound or TCL/TK. setctrl sets a slider to a specific value, or sets
-- a minimum or maximum range.
--
--
setctrl :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : sensekey
-- - syntax :
--
--
--
-- kres[, kkeydown] sensekey
--
--
--
--
-- Returns the ASCII code of a key that has been pressed, or -1 if no key
-- has been pressed.
--
--
sensekey :: MultiOut
-- |
-- - opcode : xyin
-- - syntax :
--
--
--
-- kx, ky xyin iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit]
--
--
--
--
-- Sense the cursor position in an output window. When xyin is called the
-- position of the mouse within the output window is used to reply to the
-- request. This simple mechanism does mean that only one xyin can be
-- used accurately at once. The position of the mouse is reported in the
-- output window.
--
--
xyin :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : follow
-- - syntax :
--
--
--
-- ares follow asig, idt
--
--
--
--
-- Envelope follower unit generator.
--
--
follow :: Arate -> Irate -> Arate
-- |
-- - opcode : follow2
-- - syntax :
--
--
--
-- ares follow2 asig, katt, krel
--
--
--
--
-- A controllable envelope extractor using the algorithm attributed to
-- Jean-Marc Jot.
--
--
follow2 :: (K k0, K k1) => Arate -> k0 -> k1 -> Arate
-- |
-- - opcode : peak
-- - syntax :
--
--
--
-- kres peak asig
-- kres peak ksig
--
--
--
--
-- These opcodes maintain the output k-rate variable as the peak absolute
-- level so far received.
--
--
peakA :: Arate -> Krate
-- |
-- - opcode : peak
-- - syntax :
--
--
--
-- kres peak asig
-- kres peak ksig
--
--
--
--
-- These opcodes maintain the output k-rate variable as the peak absolute
-- level so far received.
--
--
peakK :: K k0 => k0 -> Krate
-- |
-- - opcode : rms
-- - syntax :
--
--
--
-- kres rms asig [, ihp] [, iskip]
--
--
--
--
-- Determines the root-mean-square amplitude of an audio signal. It
-- low-pass filters the actual value, to average in the manner of a VU
-- meter.
--
--
rms :: [Irate] -> Arate -> Krate
-- |
-- - opcode : ptrack
-- - syntax :
--
--
--
-- kcps, kamp ptrack asig, ihopsize[,ipeaks]
--
--
--
--
-- ptrack takes an input signal, splits it into ihopsize blocks and using
-- a STFT method, extracts an estimated pitch for its fundamental
-- frequency as well as estimating the total amplitude of the signal in
-- dB, relative to full-scale (0dB). The method implies an analysis
-- window size of 2*ihopsize samples (overlaping by 1/2 window), which
-- has to be a power-of-two, between 128 and 8192 (hopsizes between 64
-- and 4096). Smaller windows will give better time precision, but worse
-- frequency accuracy (esp. in low fundamentals).This opcode is based on
-- an original algorithm by M. Puckette.
--
--
ptrack :: [Irate] -> Arate -> Irate -> MultiOut
-- |
-- - opcode : pitch
-- - syntax :
--
--
--
-- koct, kamp pitch asig, iupdte, ilo, ihi, idbthresh [, ifrqs] [, iconf]
-- [, istrt] [, iocts] [, iq] [, inptls] [, irolloff] [, iskip]
--
--
--
--
-- Using the same techniques as spectrum and specptrk, pitch tracks the
-- pitch of the signal in octave point decimal form, and amplitude in dB.
--
--
pitch :: [Irate] -> Arate -> Irate -> Irate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : pitchamdf
-- - syntax :
--
--
--
-- kcps, krms pitchamdf asig, imincps, imaxcps [, icps] [, imedi]
-- [, idowns] [, iexcps] [, irmsmedi]
--
--
--
--
-- Follows the pitch of a signal based on the AMDF method (Average
-- Magnitude Difference Function). Outputs pitch and amplitude tracking
-- signals. The method is quite fast and should run in realtime. This
-- technique usually works best for monophonic signals.
--
--
pitchamdf :: [Irate] -> Arate -> Irate -> Irate -> MultiOut
-- |
-- - opcode : tempest
-- - syntax :
--
--
--
-- ktemp tempest kin, iprd, imindur, imemdur, ihp, ithresh, ihtim, ixfdbak,
-- istartempo, ifn [, idisprd] [, itweek]
--
--
--
--
-- Estimate the tempo of beat patterns in a control signal.
--
--
tempest :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Krate
-- |
-- - opcode : tempo
-- - syntax :
--
--
--
-- tempo ktempo, istartempo
--
--
--
--
-- Apply tempo control to an uninterpreted score.
--
--
tempo :: K k0 => k0 -> Irate -> SignalOut
-- |
-- - opcode : miditempo
-- - syntax :
--
--
--
-- ksig miditempo
--
--
--
--
-- Returns the current tempo at k-rate, of either the MIDI file (if
-- available) or the score
--
--
miditempo :: Krate
-- |
-- - opcode : tempoval
-- - syntax :
--
--
--
-- kres tempoval
--
--
--
--
-- Reads the current value of the tempo.
--
--
tempoval :: Krate
-- |
-- - opcode : seqtime
-- - syntax :
--
--
--
-- ktrig_out seqtime ktime_unit, kstart, kloop, kinitndx, kfn_times
--
--
--
--
-- Generates a trigger signal according to the values stored in a table.
--
--
seqtime :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> Krate
-- |
-- - opcode : seqtime2
-- - syntax :
--
--
--
-- ktrig_out seqtime2 ktrig_in, ktime_unit, kstart, kloop, kinitndx, kfn_times
--
--
--
--
-- Generates a trigger signal according to the values stored in a table.
--
--
seqtime2 :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> Krate
-- |
-- - opcode : trigger
-- - syntax :
--
--
--
-- kout trigger ksig, kthreshold, kmode
--
--
--
--
-- Informs when a krate signal crosses a threshold.
--
--
trigger :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : timedseq
-- - syntax :
--
--
--
-- ktrig timedseq ktimpnt, ifn, kp1 [,kp2, kp3,...,kpN]
--
--
--
--
-- An event-sequencer in which time can be controlled by a time-pointer.
-- Sequence data are stored into a table.
--
--
timedseq :: (K k0, K k1) => k0 -> Irate -> [k1] -> Krate
-- |
-- - opcode : changed
-- - syntax :
--
--
--
-- ktrig changed kvar1 [, kvar2,..., kvarN]
--
--
--
--
-- This opcode outputs a trigger signal that informs when any one of its
-- k-rate arguments has changed. Useful with valuator widgets or MIDI
-- controllers.
--
--
changed :: K k0 => [k0] -> Krate
-- |
-- - opcode : getcfg
-- - syntax :
--
--
--
-- Svalue getcfg iopt
--
--
--
--
-- Return various configuration settings in Svalue as a string at init
-- time.
--
--
getcfg :: Irate -> String
-- |
-- - opcode : rewindscore
-- - syntax :
--
--
--
-- rewindscore
--
--
--
--
-- Rewinds the playback position of the current score performance..
--
--
rewindscore :: SignalOut
-- | Stacks
module CsoundExpr.Opcodes.Control.Stacks
-- |
-- - opcode : stack
-- - syntax :
--
--
--
-- stack iStackSize
--
--
--
--
-- Initializes and sets the size of the global stack.
--
--
stack :: Irate -> SignalOut
-- |
-- - opcode : pop
-- - syntax :
--
--
--
-- xval1, [xval2,..., xval31] pop
-- ival1, [ival2,..., ival31] pop
--
--
--
--
-- Pops values from the global stack.
--
--
pop :: MultiOut
-- |
-- - opcode : push
-- - syntax :
--
--
--
-- push xval1, [xval2,..., xval31]
-- push ival1, [ival2,..., ival31]
--
--
--
--
-- Pushes a value into the global stack.
--
--
push :: X x0 => [x0] -> SignalOut
-- | Sub-instrument Control
module CsoundExpr.Opcodes.Control.Subinstrument
-- | Time Reading
module CsoundExpr.Opcodes.Control.Timeread
-- |
-- - opcode : readclock
-- - syntax :
--
--
--
-- ir readclock inum
--
--
--
--
-- Reads the value of an internal clock.
--
--
readclock :: Irate -> Irate
-- |
-- - opcode : rtclock
-- - syntax :
--
--
--
-- ires rtclock
-- kres rtclock
--
--
--
--
-- Read the real-time clock from the operating system.
--
--
rtclockI :: Irate
-- |
-- - opcode : rtclock
-- - syntax :
--
--
--
-- ires rtclock
-- kres rtclock
--
--
--
--
-- Read the real-time clock from the operating system.
--
--
rtclockK :: Krate
-- |
-- - opcode : timeinstk
-- - syntax :
--
--
--
-- kres timeinstk
--
--
--
--
-- Read absolute time, in k-rate cycles, since the start of an instance
-- of an instrument. Called at both i-time as well as k-time.
--
--
timeinstk :: Krate
-- |
-- - opcode : timeinsts
-- - syntax :
--
--
--
-- kres timeinsts
--
--
--
--
-- Read absolute time, in seconds, since the start of an instance of an
-- instrument.
--
--
timeinsts :: Krate
-- |
-- - opcode : times
-- - syntax :
--
--
--
-- ires times
-- kres times
--
--
--
--
-- Read absolute time, in seconds, since the start of the performance.
--
--
timesI :: Irate
-- |
-- - opcode : times
-- - syntax :
--
--
--
-- ires times
-- kres times
--
--
--
--
-- Read absolute time, in seconds, since the start of the performance.
--
--
timesK :: Krate
-- |
-- - opcode : timek
-- - syntax :
--
--
--
-- ires timek
-- kres timek
--
--
--
--
-- Read absolute time, in k-rate cycles, since the start of the
-- performance.
--
--
timekI :: Irate
-- |
-- - opcode : timek
-- - syntax :
--
--
--
-- ires timek
-- kres timek
--
--
--
--
-- Read absolute time, in k-rate cycles, since the start of the
-- performance.
--
--
timekK :: Krate
-- |
-- - opcode : date
-- - syntax :
--
--
--
-- ir date
--
--
--
--
-- Returns the number seconds since 1 January 1970, using the operating
-- system's clock.
--
--
date :: Irate
-- |
-- - opcode : dates
-- - syntax :
--
--
--
-- Sir dates [ itime]
--
--
--
--
-- Returns as a string the date and time specified.
--
--
dates :: [Irate] -> String
-- | Instrument Control
module CsoundExpr.Opcodes.Control
-- | Table Queries
module CsoundExpr.Opcodes.Table.Queries
-- |
-- - opcode : ftchnls
-- - syntax :
--
--
--
-- ftchnls(x) (init-rate args only)
--
--
--
--
-- Returns the number of channels in a stored function table.
--
--
ftchnls :: Irate -> Irate
-- |
-- - opcode : ftlen
-- - syntax :
--
--
--
-- ftlen(x) (init-rate args only)
--
--
--
--
-- Returns the size of a stored function table.
--
--
ftlen :: Irate -> Irate
-- |
-- - opcode : ftlptim
-- - syntax :
--
--
--
-- ftlptim(x) (init-rate args only)
--
--
--
--
-- Returns the loop segment start-time of a stored function table number.
--
--
ftlptim :: Irate -> Irate
-- |
-- - opcode : ftsr
-- - syntax :
--
--
--
-- ftsr(x) (init-rate args only)
--
--
--
--
-- Returns the sampling-rate of a stored function table.
--
--
ftsr :: Irate -> Irate
-- |
-- - opcode : nsamp
-- - syntax :
--
--
--
-- nsamp(x) (init-rate args only)
--
--
--
--
-- Returns the number of samples loaded into a stored function table
-- number.
--
--
nsamp :: Irate -> Irate
-- |
-- - opcode : tableng
-- - syntax :
--
--
--
-- ires tableng ifn
-- kres tableng kfn
--
--
--
--
-- Interrogates a function table for length.
--
--
tablengI :: Irate -> Irate
-- |
-- - opcode : tableng
-- - syntax :
--
--
--
-- ires tableng ifn
-- kres tableng kfn
--
--
--
--
-- Interrogates a function table for length.
--
--
tablengK :: K k0 => k0 -> Krate
-- | Read/Write Operations
module CsoundExpr.Opcodes.Table.Readwrit
-- |
-- - opcode : ftloadk
-- - syntax :
--
--
--
-- ftloadk "filename", ktrig, iflag, ifn1 [, ifn2] [...]
--
--
--
--
-- Load a set of previously-allocated tables from a file.
--
--
ftloadk :: K k0 => String -> k0 -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : ftload
-- - syntax :
--
--
--
-- ftload "filename", iflag, ifn1 [, ifn2] [...]
--
--
--
--
-- Load a set of previously-allocated tables from a file.
--
--
ftload :: String -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : ftsavek
-- - syntax :
--
--
--
-- ftsavek "filename", ktrig, iflag, ifn1 [, ifn2] [...]
--
--
--
--
-- Save a set of previously-allocated tables to a file.
--
--
ftsavek :: K k0 => String -> k0 -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : ftsave
-- - syntax :
--
--
--
-- ftsave "filename", iflag, ifn1 [, ifn2] [...]
--
--
--
--
-- Save a set of previously-allocated tables to a file.
--
--
ftsave :: String -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : tablecopy
-- - syntax :
--
--
--
-- tablecopy kdft, ksft
--
--
--
--
-- Simple, fast table copy opcode.
--
--
tablecopy :: (K k0, K k1) => k0 -> k1 -> SignalOut
-- |
-- - opcode : tablegpw
-- - syntax :
--
--
--
-- tablegpw kfn
--
--
--
--
-- Writes a table's guard point.
--
--
tablegpw :: K k0 => k0 -> SignalOut
-- |
-- - opcode : tableicopy
-- - syntax :
--
--
--
-- tableicopy idft, isft
--
--
--
--
-- Simple, fast table copy opcode.
--
--
tableicopy :: Irate -> Irate -> SignalOut
-- |
-- - opcode : tableigpw
-- - syntax :
--
--
--
-- tableigpw ifn
--
--
--
--
-- Writes a table's guard point.
--
--
tableigpw :: Irate -> SignalOut
-- |
-- - opcode : tableimix
-- - syntax :
--
--
--
-- tableimix idft, idoff, ilen, is1ft, is1off, is1g, is2ft, is2off, is2g
--
--
--
--
-- Mixes two tables.
--
--
tableimix :: Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : tableiw
-- - syntax :
--
--
--
-- tableiw isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]
--
--
--
--
-- This opcode operates on existing function tables, changing their
-- contents. tableiw is used when all inputs are init time variables or
-- constants and you only want to run it at the initialization of the
-- instrument. The valid combinations of variable types are shown by the
-- first letter of the variable names.
--
--
tableiw :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : tablemix
-- - syntax :
--
--
--
-- tablemix kdft, kdoff, klen, ks1ft, ks1off, ks1g, ks2ft, ks2off, ks2g
--
--
--
--
-- Mixes two tables.
--
--
tablemix :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7, K k8) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> k6 -> k7 -> k8 -> SignalOut
-- |
-- - opcode : tablera
-- - syntax :
--
--
--
-- ares tablera kfn, kstart, koff
--
--
--
--
-- These opcode reads tables in sequential locations to an a-rate
-- variable. Some thought is required before using it. It has at least
-- two major, and quite different, applications which are discussed
-- below.
--
--
tablera :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Arate
-- |
-- - opcode : tablew
-- - syntax :
--
--
--
-- tablew asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]
-- tablew isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]
-- tablew ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]
--
--
--
--
-- This opcode operates on existing function tables, changing their
-- contents. tablew is for writing at k- or at a-rates, with the table
-- number being specified at init time. The valid combinations of
-- variable types are shown by the first letter of the variable names.
--
--
tablewA :: [Irate] -> Arate -> Arate -> Irate -> SignalOut
-- |
-- - opcode : tablew
-- - syntax :
--
--
--
-- tablew asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]
-- tablew isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]
-- tablew ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]
--
--
--
--
-- This opcode operates on existing function tables, changing their
-- contents. tablew is for writing at k- or at a-rates, with the table
-- number being specified at init time. The valid combinations of
-- variable types are shown by the first letter of the variable names.
--
--
tablewI :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : tablew
-- - syntax :
--
--
--
-- tablew asig, andx, ifn [, ixmode] [, ixoff] [, iwgmode]
-- tablew isig, indx, ifn [, ixmode] [, ixoff] [, iwgmode]
-- tablew ksig, kndx, ifn [, ixmode] [, ixoff] [, iwgmode]
--
--
--
--
-- This opcode operates on existing function tables, changing their
-- contents. tablew is for writing at k- or at a-rates, with the table
-- number being specified at init time. The valid combinations of
-- variable types are shown by the first letter of the variable names.
--
--
tablewK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> SignalOut
-- |
-- - opcode : tablewa
-- - syntax :
--
--
--
-- kstart tablewa kfn, asig, koff
--
--
--
--
-- This opcode writes to a table in sequential locations to and from an
-- a-rate variable. Some thought is required before using it. It has at
-- least two major, and quite different, applications which are discussed
-- below.
--
--
tablewa :: (K k0, K k1) => k0 -> Arate -> k1 -> Krate
-- |
-- - opcode : tablewkt
-- - syntax :
--
--
--
-- tablewkt asig, andx, kfn [, ixmode] [, ixoff] [, iwgmode]
-- tablewkt ksig, kndx, kfn [, ixmode] [, ixoff] [, iwgmode]
--
--
--
--
-- This opcode operates on existing function tables, changing their
-- contents. tablewkt uses a k-rate variable for selecting the table
-- number. The valid combinations of variable types are shown by the
-- first letter of the variable names.
--
--
tablewktA :: K k0 => [Irate] -> Arate -> Arate -> k0 -> SignalOut
-- |
-- - opcode : tablewkt
-- - syntax :
--
--
--
-- tablewkt asig, andx, kfn [, ixmode] [, ixoff] [, iwgmode]
-- tablewkt ksig, kndx, kfn [, ixmode] [, ixoff] [, iwgmode]
--
--
--
--
-- This opcode operates on existing function tables, changing their
-- contents. tablewkt uses a k-rate variable for selecting the table
-- number. The valid combinations of variable types are shown by the
-- first letter of the variable names.
--
--
tablewktK :: (K k0, K k1, K k2) => [Irate] -> k0 -> k1 -> k2 -> SignalOut
-- |
-- - opcode : tabmorph
-- - syntax :
--
--
--
-- kout tabmorph kindex, kweightpoint, ktabnum1, ktabnum2,
-- ifn1, ifn2 [, ifn3, ifn4,... ifnN]
--
--
--
--
-- tabmorph allows morphing between a set of tables of the same size, by
-- means of a weighted average between two currently selected tables.
--
--
tabmorph :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> [Irate] -> Krate
-- |
-- - opcode : tabmorpha
-- - syntax :
--
--
--
-- aout tabmorpha aindex, aweightpoint, atabnum1, atabnum2,
-- ifn1, ifn2 [, ifn3, ifn4,... ifnN]
--
--
--
--
-- tabmorpha allows morphing between a set of tables of the same size, by
-- means of a weighted average between two currently selected tables.
--
--
tabmorpha :: Arate -> Arate -> Arate -> Arate -> [Irate] -> Arate
-- |
-- - opcode : tabmorphak
-- - syntax :
--
--
--
-- aout tabmorphak aindex, kweightpoint, ktabnum1, ktabnum2,
-- ifn1, ifn2 [, ifn3, ifn4,... ifnN]
--
--
--
--
-- tabmorphak allows morphing between a set of tables of the same size,
-- by means of a weighted average between two currently selected tables.
--
--
tabmorphak :: (K k0, K k1, K k2) => Arate -> k0 -> k1 -> k2 -> [Irate] -> Arate
-- |
-- - opcode : tabmorphi
-- - syntax :
--
--
--
-- kout tabmorphi kindex, kweightpoint, ktabnum1, ktabnum2,
-- ifn1, ifn2 [, ifn3, ifn4,... ifnN]
--
--
--
--
-- tabmorphi allows morphing between a set of tables of the same size, by
-- means of a weighted average between two currently selected tables.
--
--
tabmorphi :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> [Irate] -> Krate
-- |
-- - opcode : tabrec
-- - syntax :
--
--
--
-- tabrec ktrig_start, ktrig_stop, knumtics, kfn, kin1 [,kin2,...,kinN]
--
--
--
--
-- Records control-rate signals on trigger-temporization basis.
--
--
tabrec :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> [k4] -> SignalOut
-- |
-- - opcode : tabplay
-- - syntax :
--
--
--
-- tabplay ktrig, knumtics, kfn, kout1 [,kout2,..., koutN]
--
--
--
--
-- Plays-back control-rate signals on trigger-temporization basis.
--
--
tabplay :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> [k3] -> SignalOut
-- | Table Reading with Dynamic Selection
module CsoundExpr.Opcodes.Table.Select
-- |
-- - opcode : tableikt
-- - syntax :
--
--
--
-- ares tableikt xndx, kfn [, ixmode] [, ixoff] [, iwrap]
-- kres tableikt kndx, kfn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- k-rate control over table numbers.
--
--
tableiktA :: (X x0, K k0) => [Irate] -> x0 -> k0 -> Arate
-- |
-- - opcode : tableikt
-- - syntax :
--
--
--
-- ares tableikt xndx, kfn [, ixmode] [, ixoff] [, iwrap]
-- kres tableikt kndx, kfn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- k-rate control over table numbers.
--
--
tableiktK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : tablekt
-- - syntax :
--
--
--
-- ares tablekt xndx, kfn [, ixmode] [, ixoff] [, iwrap]
-- kres tablekt kndx, kfn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- k-rate control over table numbers.
--
--
tablektA :: (X x0, K k0) => [Irate] -> x0 -> k0 -> Arate
-- |
-- - opcode : tablekt
-- - syntax :
--
--
--
-- ares tablekt xndx, kfn [, ixmode] [, ixoff] [, iwrap]
-- kres tablekt kndx, kfn [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- k-rate control over table numbers.
--
--
tablektK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : tablexkt
-- - syntax :
--
--
--
-- ares tablexkt xndx, kfn, kwarp, iwsize [, ixmode] [, ixoff] [, iwrap]
--
--
--
--
-- Reads function tables with linear, cubic, or sinc interpolation.
--
--
tablexkt :: (X x0, K k0, K k1) => [Irate] -> x0 -> k0 -> k1 -> Irate -> Arate
-- | Function Table Control
module CsoundExpr.Opcodes.Table
-- | Amplitude Converters
module CsoundExpr.Opcodes.Math.Amp
-- |
-- - opcode : ampdb
-- - syntax :
--
--
--
-- ampdb(x) (no rate restriction)
--
--
--
--
-- Returns the amplitude equivalent of the decibel value x. Thus:
--
--
ampdb :: X x0 => x0 -> x0
-- |
-- - opcode : ampdbfs
-- - syntax :
--
--
--
-- ampdbfs(x) (no rate restriction)
--
--
--
--
-- Returns the amplitude equivalent of the full scale decibel (dB FS)
-- value x. The logarithmic full scale decibel values will be converted
-- to linear 16-bit signed integer values from 32,768 to +32,767.
--
--
ampdbfs :: X x0 => x0 -> x0
-- |
-- - opcode : db
-- - syntax :
--
--
--
-- db(x)
--
--
--
--
-- Returns the amplitude equivalent for a given decibel amount. This
-- opcode is the same as ampdb.
--
--
db :: X x0 => x0 -> x0
-- |
-- - opcode : dbamp
-- - syntax :
--
--
--
-- dbamp(x) (init-rate or control-rate args only)
--
--
--
--
-- Returns the decibel equivalent of the raw amplitude x.
--
--
dbamp :: K k0 => k0 -> k0
-- |
-- - opcode : dbfsamp
-- - syntax :
--
--
--
-- dbfsamp(x) (init-rate or control-rate args only)
--
--
--
--
-- Returns the decibel equivalent of the raw amplitude x, relative to
-- full scale amplitude. Full scale is assumed to be 16 bit. New is
-- Csound version 4.10.
--
--
dbfsamp :: K k0 => k0 -> k0
-- | Comparators and Accumulators
module CsoundExpr.Opcodes.Math.SigmodCompaccum
-- |
-- - opcode : max
-- - syntax :
--
--
--
-- amax max ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmax max kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The max opcode takes any number of a-rate or k-rate signals as input
-- (all of the same rate), and outputs a signal at the same rate that is
-- the maximum of all of the inputs. For a-rate signals, the inputs are
-- compared one sample at a time (i.e. max does not scan an entire ksmps
-- period of a signal for its local maximum as the max_k opcode does).
--
--
maxA :: [Arate] -> Arate
-- |
-- - opcode : max
-- - syntax :
--
--
--
-- amax max ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmax max kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The max opcode takes any number of a-rate or k-rate signals as input
-- (all of the same rate), and outputs a signal at the same rate that is
-- the maximum of all of the inputs. For a-rate signals, the inputs are
-- compared one sample at a time (i.e. max does not scan an entire ksmps
-- period of a signal for its local maximum as the max_k opcode does).
--
--
maxK :: K k0 => [k0] -> Krate
-- |
-- - opcode : max_k
-- - syntax :
--
--
--
-- knumkout max_k asig, ktrig, itype
--
--
--
--
-- max_k outputs the local maximum (or minimum) value of the incoming
-- asig signal, checked in the time interval between ktrig has become
-- true twice.
--
--
max_k :: K k0 => Arate -> k0 -> Irate -> Krate
-- |
-- - opcode : maxabs
-- - syntax :
--
--
--
-- amax maxabs ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmax maxabs kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The maxabs opcode takes any number of a-rate or k-rate signals as
-- input (all of the same rate), and outputs a signal at the same rate
-- that is the maximum of all of the inputs. It is identical to the max
-- opcode except that it takes the absolute value of each input before
-- comparing them. Therefore, the output is always non-negative. For
-- a-rate signals, the inputs are compared one sample at a time (i.e.
-- maxabs does not scan an entire ksmps period of a signal for its local
-- maximum as the max_k opcode does).
--
--
maxabsA :: [Arate] -> Arate
-- |
-- - opcode : maxabs
-- - syntax :
--
--
--
-- amax maxabs ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmax maxabs kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The maxabs opcode takes any number of a-rate or k-rate signals as
-- input (all of the same rate), and outputs a signal at the same rate
-- that is the maximum of all of the inputs. It is identical to the max
-- opcode except that it takes the absolute value of each input before
-- comparing them. Therefore, the output is always non-negative. For
-- a-rate signals, the inputs are compared one sample at a time (i.e.
-- maxabs does not scan an entire ksmps period of a signal for its local
-- maximum as the max_k opcode does).
--
--
maxabsK :: K k0 => [k0] -> Krate
-- |
-- - opcode : maxabsaccum
-- - syntax :
--
--
--
-- maxabsaccum aAccumulator, aInput
--
--
--
--
-- maxabsaccum compares two audio-rate variables and stores the maximum
-- of their absolute values into the first.
--
--
maxabsaccum :: Arate -> Arate -> SignalOut
-- |
-- - opcode : maxaccum
-- - syntax :
--
--
--
-- maxaccum aAccumulator, aInput
--
--
--
--
-- maxaccum compares two audio-rate variables and stores the maximum
-- value between them into the first.
--
--
maxaccum :: Arate -> Arate -> SignalOut
-- |
-- - opcode : min
-- - syntax :
--
--
--
-- amin min ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmin min kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The min opcode takes any number of a-rate or k-rate signals as input
-- (all of the same rate), and outputs a signal at the same rate that is
-- the minimum of all of the inputs. For a-rate signals, the inputs are
-- compared one sample at a time (i.e. min does not scan an entire ksmps
-- period of a signal for its local minimum as the max_k opcode does).
--
--
minA :: [Arate] -> Arate
-- |
-- - opcode : min
-- - syntax :
--
--
--
-- amin min ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmin min kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The min opcode takes any number of a-rate or k-rate signals as input
-- (all of the same rate), and outputs a signal at the same rate that is
-- the minimum of all of the inputs. For a-rate signals, the inputs are
-- compared one sample at a time (i.e. min does not scan an entire ksmps
-- period of a signal for its local minimum as the max_k opcode does).
--
--
minK :: K k0 => [k0] -> Krate
-- |
-- - opcode : minabs
-- - syntax :
--
--
--
-- amin minabs ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmin minabs kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The minabs opcode takes any number of a-rate or k-rate signals as
-- input (all of the same rate), and outputs a signal at the same rate
-- that is the minimum of all of the inputs. It is identical to the min
-- opcode except that it takes the absolute value of each input before
-- comparing them. Therefore, the output is always non-negative. For
-- a-rate signals, the inputs are compared one sample at a time (i.e.
-- minabs does not scan an entire ksmps period of a signal for its local
-- minimum as the max_k opcode does).
--
--
minabsA :: [Arate] -> Arate
-- |
-- - opcode : minabs
-- - syntax :
--
--
--
-- amin minabs ain1 [, ain2] [, ain3] [, ain4] [...]
-- kmin minabs kin1 [, kin2] [, kin3] [, kin4] [...]
--
--
--
--
-- The minabs opcode takes any number of a-rate or k-rate signals as
-- input (all of the same rate), and outputs a signal at the same rate
-- that is the minimum of all of the inputs. It is identical to the min
-- opcode except that it takes the absolute value of each input before
-- comparing them. Therefore, the output is always non-negative. For
-- a-rate signals, the inputs are compared one sample at a time (i.e.
-- minabs does not scan an entire ksmps period of a signal for its local
-- minimum as the max_k opcode does).
--
--
minabsK :: K k0 => [k0] -> Krate
-- |
-- - opcode : minabsaccum
-- - syntax :
--
--
--
-- minabsaccum aAccumulator, aInput
--
--
--
--
-- minabsaccum compares two audio-rate variables and stores the minimum
-- of their absolute values into the first.
--
--
minabsaccum :: Arate -> Arate -> SignalOut
-- |
-- - opcode : minaccum
-- - syntax :
--
--
--
-- minaccum aAccumulator, aInput
--
--
--
--
-- minaccum compares two audio-rate variables and stores the minimum
-- value between them into the first.
--
--
minaccum :: Arate -> Arate -> SignalOut
-- | Mathematical Functions
module CsoundExpr.Opcodes.Math.Matfunc
-- |
-- - opcode : abs
-- - syntax :
--
--
--
-- abs(x) (no rate restriction)
--
--
--
--
-- Returns the absolute value of x.
--
--
abs' :: X x0 => x0 -> x0
-- |
-- - opcode : ceil
-- - syntax :
--
--
--
-- ceil(x) (init-, control-, or audio-rate arg allowed)
--
--
--
--
-- Returns the smallest integer not less than x
--
--
ceil :: X x0 => x0 -> x0
-- |
-- - opcode : exp
-- - syntax :
--
--
--
-- exp(x) (no rate restriction)
--
--
--
--
-- Returns e raised to the xth power.
--
--
exp' :: X x0 => x0 -> x0
-- |
-- - opcode : floor
-- - syntax :
--
--
--
-- floor(x) (init-, control-, or audio-rate arg allowed)
--
--
--
--
-- Returns the largest integer not greater than x
--
--
floor' :: X x0 => x0 -> x0
-- |
-- - opcode : frac
-- - syntax :
--
--
--
-- frac(x) (init-rate or control-rate args; also works at audio rate in Csound5)
--
--
--
--
-- Returns the fractional part of x.
--
--
frac :: K k0 => k0 -> k0
-- |
-- - opcode : int
-- - syntax :
--
--
--
-- int(x) (init-rate or control-rate; also works at audio rate in Csound5)
--
--
--
--
-- Returns the integer part of x.
--
--
int :: K k0 => k0 -> k0
-- |
-- - opcode : log
-- - syntax :
--
--
--
-- log(x) (no rate restriction)
--
--
--
--
-- Returns the natural log of x (x positive only).
--
--
log' :: X x0 => x0 -> x0
-- |
-- - opcode : log10
-- - syntax :
--
--
--
-- log10(x) (no rate restriction)
--
--
--
--
-- Returns the base 10 log of x (x positive only).
--
--
log10 :: X x0 => x0 -> x0
-- |
-- - opcode : logbtwo
-- - syntax :
--
--
--
-- logbtwo(x) (init-rate or control-rate args only)
--
--
--
--
-- Performs a logarithmic base two calculation.
--
--
logbtwo :: K k0 => k0 -> k0
-- |
-- - opcode : pow
-- - syntax :
--
--
--
-- ares pow aarg, kpow [, inorm]
-- ires pow iarg, ipow [, inorm]
-- kres pow karg, kpow [, inorm]
--
--
--
--
-- Computes xarg to the power of kpow (or ipow) and scales the result by
-- inorm.
--
--
powA :: K k0 => [Irate] -> Arate -> k0 -> Arate
-- |
-- - opcode : pow
-- - syntax :
--
--
--
-- ares pow aarg, kpow [, inorm]
-- ires pow iarg, ipow [, inorm]
-- kres pow karg, kpow [, inorm]
--
--
--
--
-- Computes xarg to the power of kpow (or ipow) and scales the result by
-- inorm.
--
--
powI :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : pow
-- - syntax :
--
--
--
-- ares pow aarg, kpow [, inorm]
-- ires pow iarg, ipow [, inorm]
-- kres pow karg, kpow [, inorm]
--
--
--
--
-- Computes xarg to the power of kpow (or ipow) and scales the result by
-- inorm.
--
--
powK :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Krate
-- |
-- - opcode : powoftwo
-- - syntax :
--
--
--
-- powoftwo(x) (init-rate or control-rate args only)
--
--
--
--
-- Performs a power-of-two calculation.
--
--
powoftwo :: K k0 => k0 -> k0
-- |
-- - opcode : round
-- - syntax :
--
--
--
-- round(x) (init-, control-, or audio-rate arg allowed)
--
--
--
--
-- The integer value nearest to x ; if the fractional part of x is
-- exactly 0.5, the direction of rounding is undefined.
--
--
round' :: X x0 => x0 -> x0
-- |
-- - opcode : sqrt
-- - syntax :
--
--
--
-- sqrt(x) (no rate restriction)
--
--
--
--
-- Returns the square root of x (x non-negative).
--
--
sqrt' :: X x0 => x0 -> x0
-- | Opcode Equivalents of Functions
module CsoundExpr.Opcodes.Math.Opeqfunc
-- |
-- - opcode : divz
-- - syntax :
--
--
--
-- ares divz xa, xb, ksubst
-- ires divz ia, ib, isubst
-- kres divz ka, kb, ksubst
--
--
--
--
-- Safely divides two numbers.
--
--
divzA :: (X x0, X x1, K k0) => x0 -> x1 -> k0 -> Arate
-- |
-- - opcode : divz
-- - syntax :
--
--
--
-- ares divz xa, xb, ksubst
-- ires divz ia, ib, isubst
-- kres divz ka, kb, ksubst
--
--
--
--
-- Safely divides two numbers.
--
--
divzI :: Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : divz
-- - syntax :
--
--
--
-- ares divz xa, xb, ksubst
-- ires divz ia, ib, isubst
-- kres divz ka, kb, ksubst
--
--
--
--
-- Safely divides two numbers.
--
--
divzK :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : product
-- - syntax :
--
--
--
-- ares product asig1, asig2 [, asig3] [...]
--
--
--
--
-- Multiplies any number of a-rate signals.
--
--
product' :: [Arate] -> Arate
-- |
-- - opcode : sum
-- - syntax :
--
--
--
-- ares sum asig1 [, asig2] [, asig3] [...]
--
--
--
--
-- Sums any number of a-rate signals.
--
--
sum' :: [Arate] -> Arate
-- |
-- - opcode : taninv2
-- - syntax :
--
--
--
-- ares taninv2 ay, ax
-- ires taninv2 iy, ix
-- kres taninv2 ky, kx
--
--
--
--
-- Returns the arctangent of iyix, kykx, or ay/ax.
--
--
taninv2A :: Arate -> Arate -> Arate
-- |
-- - opcode : taninv2
-- - syntax :
--
--
--
-- ares taninv2 ay, ax
-- ires taninv2 iy, ix
-- kres taninv2 ky, kx
--
--
--
--
-- Returns the arctangent of iyix, kykx, or ay/ax.
--
--
taninv2I :: Irate -> Irate -> Irate
-- |
-- - opcode : taninv2
-- - syntax :
--
--
--
-- ares taninv2 ay, ax
-- ires taninv2 iy, ix
-- kres taninv2 ky, kx
--
--
--
--
-- Returns the arctangent of iyix, kykx, or ay/ax.
--
--
taninv2K :: (K k0, K k1) => k0 -> k1 -> Krate
-- | Random Functions
module CsoundExpr.Opcodes.Math.Rndfunc
-- |
-- - opcode : birnd
-- - syntax :
--
--
--
-- birnd(x) (init- or control-rate only)
--
--
--
--
-- Returns a random number in a bi-polar range.
--
--
birnd :: K k0 => k0 -> k0
-- |
-- - opcode : rnd
-- - syntax :
--
--
--
-- rnd(x) (init- or control-rate only)
--
--
--
--
-- Returns a random number in a unipolar range at the rate given by the
-- input argument.
--
--
rnd :: K k0 => k0 -> k0
-- | Trigonometric Functions
module CsoundExpr.Opcodes.Math.Trig
-- |
-- - opcode : cos
-- - syntax :
--
--
--
-- cos(x) (no rate restriction)
--
--
--
--
-- Returns the cosine of x (x in radians).
--
--
cos' :: X x0 => x0 -> x0
-- |
-- - opcode : cosh
-- - syntax :
--
--
--
-- cosh(x) (no rate restriction)
--
--
--
--
-- Returns the hyperbolic cosine of x (x in radians).
--
--
cosh' :: X x0 => x0 -> x0
-- |
-- - opcode : cosinv
-- - syntax :
--
--
--
-- cosinv(x) (no rate restriction)
--
--
--
--
-- Returns the arccosine of x (x in radians).
--
--
cosinv :: X x0 => x0 -> x0
-- |
-- - opcode : sin
-- - syntax :
--
--
--
-- sin(x) (no rate restriction)
--
--
--
--
-- Returns the sine of x (x in radians).
--
--
sin' :: X x0 => x0 -> x0
-- |
-- - opcode : sinh
-- - syntax :
--
--
--
-- sinh(x) (no rate restriction)
--
--
--
--
-- Returns the hyperbolic sine of x (x in radians).
--
--
sinh' :: X x0 => x0 -> x0
-- |
-- - opcode : sininv
-- - syntax :
--
--
--
-- sininv(x) (no rate restriction)
--
--
--
--
-- Returns the arcsine of x (x in radians).
--
--
sininv :: X x0 => x0 -> x0
-- |
-- - opcode : tan
-- - syntax :
--
--
--
-- tan(x) (no rate restriction)
--
--
--
--
-- Returns the tangent of x (x in radians).
--
--
tan' :: X x0 => x0 -> x0
-- |
-- - opcode : tanh
-- - syntax :
--
--
--
-- tanh(x) (no rate restriction)
--
--
--
--
-- Returns the hyperbolic tangent of x (x in radians).
--
--
tanh' :: X x0 => x0 -> x0
-- |
-- - opcode : taninv
-- - syntax :
--
--
--
-- taninv(x) (no rate restriction)
--
--
--
--
-- Returns the arctangent of x (x in radians).
--
--
taninv :: X x0 => x0 -> x0
-- | Mathematical Operations
module CsoundExpr.Opcodes.Math
-- | Functions
module CsoundExpr.Opcodes.Pitch.Funcs
-- |
-- - opcode : cent
-- - syntax :
--
--
--
-- cent(x)
--
--
--
--
-- Calculates a factor to raise/lower a frequency by a given amount of
-- cents.
--
--
cent :: X x0 => x0 -> x0
-- |
-- - opcode : cpsmidinn
-- - syntax :
--
--
--
-- cpsmidinn (MidiNoteNumber) (init- or control-rate args only)
--
--
--
--
-- Converts a Midi note number value to cycles-per-second.
--
--
cpsmidinn :: K k0 => k0 -> k0
-- |
-- - opcode : cpsoct
-- - syntax :
--
--
--
-- cpsoct (oct) (no rate restriction)
--
--
--
--
-- Converts an octave-point-decimal value to cycles-per-second.
--
--
cpsoct :: X x0 => x0 -> x0
-- |
-- - opcode : cpspch
-- - syntax :
--
--
--
-- cpspch (pch) (init- or control-rate args only)
--
--
--
--
-- Converts a pitch-class value to cycles-per-second.
--
--
cpspch :: K k0 => k0 -> k0
-- |
-- - opcode : octave
-- - syntax :
--
--
--
-- octave(x)
--
--
--
--
-- Calculates a factor to raise/lower a frequency by a given amount of
-- octaves.
--
--
octave :: X x0 => x0 -> x0
-- |
-- - opcode : octcps
-- - syntax :
--
--
--
-- octcps (cps) (init- or control-rate args only)
--
--
--
--
-- Converts a cycles-per-second value to octave-point-decimal.
--
--
octcps :: K k0 => k0 -> k0
-- |
-- - opcode : octmidinn
-- - syntax :
--
--
--
-- octmidinn (MidiNoteNumber) (init- or control-rate args only)
--
--
--
--
-- Converts a Midi note number value to octave-point-decimal.
--
--
octmidinn :: K k0 => k0 -> k0
-- |
-- - opcode : octpch
-- - syntax :
--
--
--
-- octpch (pch) (init- or control-rate args only)
--
--
--
--
-- Converts a pitch-class value to octave-point-decimal.
--
--
octpch :: K k0 => k0 -> k0
-- |
-- - opcode : pchmidinn
-- - syntax :
--
--
--
-- pchmidinn (MidiNoteNumber) (init- or control-rate args only)
--
--
--
--
-- Converts a Midi note number value to octave point pitch-class units.
--
--
pchmidinn :: K k0 => k0 -> k0
-- |
-- - opcode : pchoct
-- - syntax :
--
--
--
-- pchoct (oct) (init- or control-rate args only)
--
--
--
--
-- Converts an octave-point-decimal value to pitch-class.
--
--
pchoct :: K k0 => k0 -> k0
-- |
-- - opcode : semitone
-- - syntax :
--
--
--
-- semitone(x)
--
--
--
--
-- Calculates a factor to raise/lower a frequency by a given amount of
-- semitones.
--
--
semitone :: X x0 => x0 -> x0
-- | Tuning Opcodes
module CsoundExpr.Opcodes.Pitch.Tuning
-- |
-- - opcode : cps2pch
-- - syntax :
--
--
--
-- icps cps2pch ipch, iequal
--
--
--
--
-- Converts a pitch-class value into cycles-per-second (Hz) for equal
-- divisions of the octave.
--
--
cps2pch :: Irate -> Irate -> Irate
-- |
-- - opcode : cpsxpch
-- - syntax :
--
--
--
-- icps cpsxpch ipch, iequal, irepeat, ibase
--
--
--
--
-- Converts a pitch-class value into cycles-per-second (Hz) for equal
-- divisions of any interval. There is a restriction of no more than 100
-- equal divisions.
--
--
cpsxpch :: Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : cpstun
-- - syntax :
--
--
--
-- kcps cpstun ktrig, kindex, kfn
--
--
--
--
-- Returns micro-tuning values at k-rate.
--
--
cpstun :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Krate
-- |
-- - opcode : cpstuni
-- - syntax :
--
--
--
-- icps cpstuni index, ifn
--
--
--
--
-- Returns micro-tuning values at init-rate.
--
--
cpstuni :: Irate -> Irate -> Irate
-- | Pitch Converters
module CsoundExpr.Opcodes.Pitch
-- | MIDI input
module CsoundExpr.Opcodes.Midi.Input
-- |
-- - opcode : aftouch
-- - syntax :
--
--
--
-- kaft aftouch [imin] [, imax]
--
--
--
--
-- Get the current after-touch value for this channel.
--
--
aftouch :: [Irate] -> Krate
-- |
-- - opcode : chanctrl
-- - syntax :
--
--
--
-- ival chanctrl ichnl, ictlno [, ilow] [, ihigh]
-- kval chanctrl ichnl, ictlno [, ilow] [, ihigh]
--
--
--
--
-- Get the current value of a controller and optionally map it onto
-- specified range.
--
--
chanctrlI :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : chanctrl
-- - syntax :
--
--
--
-- ival chanctrl ichnl, ictlno [, ilow] [, ihigh]
-- kval chanctrl ichnl, ictlno [, ilow] [, ihigh]
--
--
--
--
-- Get the current value of a controller and optionally map it onto
-- specified range.
--
--
chanctrlK :: [Irate] -> Irate -> Irate -> Krate
-- |
-- - opcode : polyaft
-- - syntax :
--
--
--
-- ires polyaft inote [, ilow] [, ihigh]
-- kres polyaft inote [, ilow] [, ihigh]
--
--
--
--
-- polyaft returns the polyphonic pressure of the selected note number,
-- optionally mapped to an user-specified range.
--
--
polyaftI :: [Irate] -> Irate -> Irate
-- |
-- - opcode : polyaft
-- - syntax :
--
--
--
-- ires polyaft inote [, ilow] [, ihigh]
-- kres polyaft inote [, ilow] [, ihigh]
--
--
--
--
-- polyaft returns the polyphonic pressure of the selected note number,
-- optionally mapped to an user-specified range.
--
--
polyaftK :: [Irate] -> Irate -> Krate
-- |
-- - opcode : pchbend
-- - syntax :
--
--
--
-- ibend pchbend [imin] [, imax]
-- kbend pchbend [imin] [, imax]
--
--
--
--
-- Get the current pitch-bend value for this channel.
--
--
pchbendI :: [Irate] -> Irate
-- |
-- - opcode : pchbend
-- - syntax :
--
--
--
-- ibend pchbend [imin] [, imax]
-- kbend pchbend [imin] [, imax]
--
--
--
--
-- Get the current pitch-bend value for this channel.
--
--
pchbendK :: [Irate] -> Krate
-- |
-- - opcode : veloc
-- - syntax :
--
--
--
-- ival veloc [ilow] [, ihigh]
--
--
--
--
-- Get the velocity from a MIDI event.
--
--
veloc :: [Irate] -> Irate
-- |
-- - opcode : midictrl
-- - syntax :
--
--
--
-- ival midictrl inum [, imin] [, imax]
-- kval midictrl inum [, imin] [, imax]
--
--
--
--
-- Get the current value (0-127) of a specified MIDI controller.
--
--
midictrlI :: [Irate] -> Irate -> Irate
-- |
-- - opcode : midictrl
-- - syntax :
--
--
--
-- ival midictrl inum [, imin] [, imax]
-- kval midictrl inum [, imin] [, imax]
--
--
--
--
-- Get the current value (0-127) of a specified MIDI controller.
--
--
midictrlK :: [Irate] -> Irate -> Krate
-- |
-- - opcode : notnum
-- - syntax :
--
--
--
-- ival notnum
--
--
--
--
-- Get a note number from a MIDI event.
--
--
notnum :: Irate
-- |
-- - opcode : ctrl7
-- - syntax :
--
--
--
-- idest ctrl7 ichan, ictlno, imin, imax [, ifn]
-- kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn]
-- adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff]
--
--
--
--
-- Allows a floating-point 7-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl7A :: (K k0, K k1) => [Irate] -> Irate -> Irate -> k0 -> k1 -> Arate
-- |
-- - opcode : ctrl7
-- - syntax :
--
--
--
-- idest ctrl7 ichan, ictlno, imin, imax [, ifn]
-- kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn]
-- adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff]
--
--
--
--
-- Allows a floating-point 7-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl7I :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : ctrl7
-- - syntax :
--
--
--
-- idest ctrl7 ichan, ictlno, imin, imax [, ifn]
-- kdest ctrl7 ichan, ictlno, kmin, kmax [, ifn]
-- adest ctrl7 ichan, ictlno, kmin, kmax [, ifn] [, icutoff]
--
--
--
--
-- Allows a floating-point 7-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl7K :: (K k0, K k1) => [Irate] -> Irate -> Irate -> k0 -> k1 -> Krate
-- |
-- - opcode : ctrl14
-- - syntax :
--
--
--
-- idest ctrl14 ichan, ictlno1, ictlno2, imin, imax [, ifn]
-- kdest ctrl14 ichan, ictlno1, ictlno2, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 14-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl14I :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : ctrl14
-- - syntax :
--
--
--
-- idest ctrl14 ichan, ictlno1, ictlno2, imin, imax [, ifn]
-- kdest ctrl14 ichan, ictlno1, ictlno2, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 14-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl14K :: (K k0, K k1) => [Irate] -> Irate -> Irate -> Irate -> k0 -> k1 -> Krate
-- |
-- - opcode : ctrl21
-- - syntax :
--
--
--
-- idest ctrl21 ichan, ictlno1, ictlno2, ictlno3, imin, imax [, ifn]
-- kdest ctrl21 ichan, ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 21-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl21I :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : ctrl21
-- - syntax :
--
--
--
-- idest ctrl21 ichan, ictlno1, ictlno2, ictlno3, imin, imax [, ifn]
-- kdest ctrl21 ichan, ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 21-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
ctrl21K :: (K k0, K k1) => [Irate] -> Irate -> Irate -> Irate -> Irate -> k0 -> k1 -> Krate
-- |
-- - opcode : midic7
-- - syntax :
--
--
--
-- idest midic7 ictlno, imin, imax [, ifn]
-- kdest midic7 ictlno, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 7-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
midic7I :: [Irate] -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : midic7
-- - syntax :
--
--
--
-- idest midic7 ictlno, imin, imax [, ifn]
-- kdest midic7 ictlno, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 7-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
midic7K :: (K k0, K k1) => [Irate] -> Irate -> k0 -> k1 -> Krate
-- |
-- - opcode : midic14
-- - syntax :
--
--
--
-- idest midic14 ictlno1, ictlno2, imin, imax [, ifn]
-- kdest midic14 ictlno1, ictlno2, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 14-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
midic14I :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : midic14
-- - syntax :
--
--
--
-- idest midic14 ictlno1, ictlno2, imin, imax [, ifn]
-- kdest midic14 ictlno1, ictlno2, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 14-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
midic14K :: (K k0, K k1) => [Irate] -> Irate -> Irate -> k0 -> k1 -> Krate
-- |
-- - opcode : midic21
-- - syntax :
--
--
--
-- idest midic21 ictlno1, ictlno2, ictlno3, imin, imax [, ifn]
-- kdest midic21 ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 21-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
midic21I :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> Irate
-- |
-- - opcode : midic21
-- - syntax :
--
--
--
-- idest midic21 ictlno1, ictlno2, ictlno3, imin, imax [, ifn]
-- kdest midic21 ictlno1, ictlno2, ictlno3, kmin, kmax [, ifn]
--
--
--
--
-- Allows a floating-point 21-bit MIDI signal scaled with a minimum and a
-- maximum range.
--
--
midic21K :: (K k0, K k1) => [Irate] -> Irate -> Irate -> Irate -> k0 -> k1 -> Krate
-- |
-- - opcode : initc7
-- - syntax :
--
--
--
-- initc7 ichan, ictlno, ivalue
--
--
--
--
-- Initializes MIDI controller ictlno with ivalue
--
--
initc7 :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : initc14
-- - syntax :
--
--
--
-- initc14 ichan, ictlno1, ictlno2, ivalue
--
--
--
--
-- Initializes the controllers used to create a 14-bit MIDI value.
--
--
initc14 :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : initc21
-- - syntax :
--
--
--
-- initc21 ichan, ictlno1, ictlno2, ictlno3, ivalue
--
--
--
--
-- Initializes the controllers used to create a 21-bit MIDI value.
--
--
initc21 :: Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- | MIDI Message Output
module CsoundExpr.Opcodes.Midi.Output
-- |
-- - opcode : mdelay
-- - syntax :
--
--
--
-- mdelay kstatus, kchan, kd1, kd2, kdelay
--
--
--
--
-- A MIDI delay opcode.
--
--
mdelay :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> SignalOut
-- |
-- - opcode : nrpn
-- - syntax :
--
--
--
-- nrpn kchan, kparmnum, kparmvalue
--
--
--
--
-- Sends a NPRN (Non-Registered Parameter Number) message to the MIDI OUT
-- port each time one of the input arguments changes.
--
--
nrpn :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SignalOut
-- |
-- - opcode : outiat
-- - syntax :
--
--
--
-- outiat ichn, ivalue, imin, imax
--
--
--
--
-- Sends MIDI aftertouch messages at i-rate.
--
--
outiat :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : outic
-- - syntax :
--
--
--
-- outic ichn, inum, ivalue, imin, imax
--
--
--
--
-- Sends MIDI controller output at i-rate.
--
--
outic :: Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : outic14
-- - syntax :
--
--
--
-- outic14 ichn, imsb, ilsb, ivalue, imin, imax
--
--
--
--
-- Sends 14-bit MIDI controller output at i-rate.
--
--
outic14 :: Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : outipat
-- - syntax :
--
--
--
-- outipat ichn, inotenum, ivalue, imin, imax
--
--
--
--
-- Sends polyphonic MIDI aftertouch messages at i-rate.
--
--
outipat :: Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : outipb
-- - syntax :
--
--
--
-- outipb ichn, ivalue, imin, imax
--
--
--
--
-- Sends MIDI pitch-bend messages at i-rate.
--
--
outipb :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : outipc
-- - syntax :
--
--
--
-- outipc ichn, iprog, imin, imax
--
--
--
--
-- Sends MIDI program change messages at i-rate
--
--
outipc :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : outkat
-- - syntax :
--
--
--
-- outkat kchn, kvalue, kmin, kmax
--
--
--
--
-- Sends MIDI aftertouch messages at k-rate.
--
--
outkat :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : outkc
-- - syntax :
--
--
--
-- outkc kchn, knum, kvalue, kmin, kmax
--
--
--
--
-- Sends MIDI controller messages at k-rate.
--
--
outkc :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> SignalOut
-- |
-- - opcode : outkc14
-- - syntax :
--
--
--
-- outkc14 kchn, kmsb, klsb, kvalue, kmin, kmax
--
--
--
--
-- Sends 14-bit MIDI controller output at k-rate.
--
--
outkc14 :: (K k0, K k1, K k2, K k3, K k4, K k5) => k0 -> k1 -> k2 -> k3 -> k4 -> k5 -> SignalOut
-- |
-- - opcode : outkpat
-- - syntax :
--
--
--
-- outkpat kchn, knotenum, kvalue, kmin, kmax
--
--
--
--
-- Sends polyphonic MIDI aftertouch messages at k-rate.
--
--
outkpat :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> SignalOut
-- |
-- - opcode : outkpb
-- - syntax :
--
--
--
-- outkpb kchn, kvalue, kmin, kmax
--
--
--
--
-- Sends MIDI pitch-bend messages at k-rate.
--
--
outkpb :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : outkpc
-- - syntax :
--
--
--
-- outkpc kchn, kprog, kmin, kmax
--
--
--
--
-- Sends MIDI program change messages at k-rate.
--
--
outkpc :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> SignalOut
-- | Generic Input and Output
module CsoundExpr.Opcodes.Midi.Generic
-- |
-- - opcode : midiin
-- - syntax :
--
--
--
-- kstatus, kchan, kdata1, kdata2 midiin
--
--
--
--
-- Returns a generic MIDI message received by the MIDI IN port
--
--
midiin :: MultiOut
-- |
-- - opcode : midiout
-- - syntax :
--
--
--
-- midiout kstatus, kchan, kdata1, kdata2
--
--
--
--
-- Sends a generic MIDI message to the MIDI OUT port.
--
--
midiout :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> SignalOut
-- | Converters
module CsoundExpr.Opcodes.Midi.Convert
-- |
-- - opcode : cpsmidi
-- - syntax :
--
--
--
-- icps cpsmidi
--
--
--
--
-- Get the note number of the current MIDI event, expressed in
-- cycles-per-second.
--
--
cpsmidi :: Irate
-- |
-- - opcode : cpsmidib
-- - syntax :
--
--
--
-- icps cpsmidib [irange]
-- kcps cpsmidib [irange]
--
--
--
--
-- Get the note number of the current MIDI event and modify it by the
-- current pitch-bend value, express it in cycles-per-second.
--
--
cpsmidibI :: [Irate] -> Irate
-- |
-- - opcode : cpsmidib
-- - syntax :
--
--
--
-- icps cpsmidib [irange]
-- kcps cpsmidib [irange]
--
--
--
--
-- Get the note number of the current MIDI event and modify it by the
-- current pitch-bend value, express it in cycles-per-second.
--
--
cpsmidibK :: [Irate] -> Krate
-- |
-- - opcode : cpstmid
-- - syntax :
--
--
--
-- icps cpstmid ifn
--
--
--
--
-- This unit is similar to cpsmidi, but allows fully customized
-- micro-tuning scales.
--
--
cpstmid :: Irate -> Irate
-- |
-- - opcode : octmidi
-- - syntax :
--
--
--
-- ioct octmidi
--
--
--
--
-- Get the note number, in octave-point-decimal units, of the current
-- MIDI event.
--
--
octmidi :: Irate
-- |
-- - opcode : octmidib
-- - syntax :
--
--
--
-- ioct octmidib [irange]
-- koct octmidib [irange]
--
--
--
--
-- Get the note number of the current MIDI event and modify it by the
-- current pitch-bend value, express it in octave-point-decimal.
--
--
octmidibI :: [Irate] -> Irate
-- |
-- - opcode : octmidib
-- - syntax :
--
--
--
-- ioct octmidib [irange]
-- koct octmidib [irange]
--
--
--
--
-- Get the note number of the current MIDI event and modify it by the
-- current pitch-bend value, express it in octave-point-decimal.
--
--
octmidibK :: [Irate] -> Krate
-- |
-- - opcode : pchmidi
-- - syntax :
--
--
--
-- ipch pchmidi
--
--
--
--
-- Get the note number of the current MIDI event, expressed in
-- pitch-class units.
--
--
pchmidi :: Irate
-- |
-- - opcode : pchmidib
-- - syntax :
--
--
--
-- ipch pchmidib [irange]
-- kpch pchmidib [irange]
--
--
--
--
-- Get the note number of the current MIDI event and modify it by the
-- current pitch-bend value, express it in pitch-class units.
--
--
pchmidibI :: [Irate] -> Irate
-- |
-- - opcode : pchmidib
-- - syntax :
--
--
--
-- ipch pchmidib [irange]
-- kpch pchmidib [irange]
--
--
--
--
-- Get the note number of the current MIDI event and modify it by the
-- current pitch-bend value, express it in pitch-class units.
--
--
pchmidibK :: [Irate] -> Krate
-- |
-- - opcode : ampmidi
-- - syntax :
--
--
--
-- iamp ampmidi iscal [, ifn]
--
--
--
--
-- Get the velocity of the current MIDI event.
--
--
ampmidi :: [Irate] -> Irate -> Irate
-- | Event Extenders
module CsoundExpr.Opcodes.Midi.Extender
-- |
-- - opcode : release
-- - syntax :
--
--
--
-- kflag release
--
--
--
--
-- Provides a way of knowing when a note off message for the current note
-- is received. Only a noteoff message with the same MIDI note number as
-- the one which triggered the note will be reported by release.
--
--
release :: Krate
-- |
-- - opcode : xtratim
-- - syntax :
--
--
--
-- xtratim iextradur
--
--
--
--
-- Extend the duration of real-time generated events and handle their
-- extra life (Usually for usage along with release instead of linenr,
-- linsegr, etc).
--
--
xtratim :: Irate -> SignalOut
-- | Note-on/Note-off Output
module CsoundExpr.Opcodes.Midi.Onoff
-- |
-- - opcode : midion
-- - syntax :
--
--
--
-- midion kchn, knum, kvel
--
--
--
--
-- Generates MIDI note messages at k-rate.
--
--
midion :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> SignalOut
-- |
-- - opcode : midion2
-- - syntax :
--
--
--
-- midion2 kchn, knum, kvel, ktrig
--
--
--
--
-- Sends noteon and noteoff messages to the MIDI OUT port when triggered
-- by a value different than zero.
--
--
midion2 :: (K k0, K k1, K k2, K k3) => k0 -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : moscil
-- - syntax :
--
--
--
-- moscil kchn, knum, kvel, kdur, kpause
--
--
--
--
-- Sends a stream of the MIDI notes.
--
--
moscil :: (K k0, K k1, K k2, K k3, K k4) => k0 -> k1 -> k2 -> k3 -> k4 -> SignalOut
-- |
-- - opcode : noteoff
-- - syntax :
--
--
--
-- noteoff ichn, inum, ivel
--
--
--
--
-- Send a noteoff message to the MIDI OUT port.
--
--
noteoff :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : noteon
-- - syntax :
--
--
--
-- noteon ichn, inum, ivel
--
--
--
--
-- Send a noteon message to the MIDI OUT port.
--
--
noteon :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : noteondur
-- - syntax :
--
--
--
-- noteondur ichn, inum, ivel, idur
--
--
--
--
-- Sends a noteon and a noteoff MIDI message both with the same channel,
-- number and velocity.
--
--
noteondur :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : noteondur2
-- - syntax :
--
--
--
-- noteondur2 ichn, inum, ivel, idur
--
--
--
--
-- Sends a noteon and a noteoff MIDI message both with the same channel,
-- number and velocity.
--
--
noteondur2 :: Irate -> Irate -> Irate -> Irate -> SignalOut
-- | MIDI/Score Interoperability opcodes
module CsoundExpr.Opcodes.Midi.Interop
-- |
-- - opcode : midichannelaftertouch
-- - syntax :
--
--
--
-- midichannelaftertouch xchannelaftertouch [, ilow] [, ihigh]
--
--
--
--
-- midichannelaftertouch is designed to simplify writing instruments that
-- can be used interchangeably for either score or MIDI input, and to
-- make it easier to adapt instruments originally written for score input
-- to work with MIDI input.
--
--
midichannelaftertouch :: X x0 => [Irate] -> x0 -> SignalOut
-- |
-- - opcode : midichn
-- - syntax :
--
--
--
-- ichn midichn
--
--
--
--
-- midichn returns the MIDI channel number (1 - 16) from which the note
-- was activated. In the case of score notes, it returns 0.
--
--
midichn :: Irate
-- |
-- - opcode : midicontrolchange
-- - syntax :
--
--
--
-- midicontrolchange xcontroller, xcontrollervalue [, ilow] [, ihigh]
--
--
--
--
-- midicontrolchange is designed to simplify writing instruments that can
-- be used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midicontrolchange :: (X x0, X x1) => [Irate] -> x0 -> x1 -> SignalOut
-- |
-- - opcode : mididefault
-- - syntax :
--
--
--
-- mididefault xdefault, xvalue
--
--
--
--
-- mididefault is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
mididefault :: (X x0, X x1) => x0 -> x1 -> SignalOut
-- |
-- - opcode : midinoteoff
-- - syntax :
--
--
--
-- midinoteoff xkey, xvelocity
--
--
--
--
-- midinoteoff is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midinoteoff :: (X x0, X x1) => x0 -> x1 -> SignalOut
-- |
-- - opcode : midinoteoncps
-- - syntax :
--
--
--
-- midinoteoncps xcps, xvelocity
--
--
--
--
-- midinoteoncps is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midinoteoncps :: (X x0, X x1) => x0 -> x1 -> SignalOut
-- |
-- - opcode : midinoteonkey
-- - syntax :
--
--
--
-- midinoteonkey xkey, xvelocity
--
--
--
--
-- midinoteonkey is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midinoteonkey :: (X x0, X x1) => x0 -> x1 -> SignalOut
-- |
-- - opcode : midinoteonoct
-- - syntax :
--
--
--
-- midinoteonoct xoct, xvelocity
--
--
--
--
-- midinoteonoct is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midinoteonoct :: (X x0, X x1) => x0 -> x1 -> SignalOut
-- |
-- - opcode : midinoteonpch
-- - syntax :
--
--
--
-- midinoteonpch xpch, xvelocity
--
--
--
--
-- midinoteonpch is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midinoteonpch :: (X x0, X x1) => x0 -> x1 -> SignalOut
-- |
-- - opcode : midipitchbend
-- - syntax :
--
--
--
-- midipitchbend xpitchbend [, ilow] [, ihigh]
--
--
--
--
-- midipitchbend is designed to simplify writing instruments that can be
-- used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midipitchbend :: X x0 => [Irate] -> x0 -> SignalOut
-- |
-- - opcode : midipolyaftertouch
-- - syntax :
--
--
--
-- midipolyaftertouch xpolyaftertouch, xcontrollervalue [, ilow] [, ihigh]
--
--
--
--
-- midipolyaftertouch is designed to simplify writing instruments that
-- can be used interchangeably for either score or MIDI input, and to
-- make it easier to adapt instruments originally written for score input
-- to work with MIDI input.
--
--
midipolyaftertouch :: (X x0, X x1) => [Irate] -> x0 -> x1 -> SignalOut
-- |
-- - opcode : midiprogramchange
-- - syntax :
--
--
--
-- midiprogramchange xprogram
--
--
--
--
-- midiprogramchange is designed to simplify writing instruments that can
-- be used interchangeably for either score or MIDI input, and to make it
-- easier to adapt instruments originally written for score input to work
-- with MIDI input.
--
--
midiprogramchange :: X x0 => x0 -> SignalOut
-- | System Realtime Messages
module CsoundExpr.Opcodes.Midi.Realtime
-- |
-- - opcode : mclock
-- - syntax :
--
--
--
-- mclock ifreq
--
--
--
--
-- Sends a MIDI CLOCK message.
--
--
mclock :: Irate -> SignalOut
-- |
-- - opcode : mrtmsg
-- - syntax :
--
--
--
-- mrtmsg imsgtype
--
--
--
--
-- Send system real-time messages to the MIDI OUT port.
--
--
mrtmsg :: Irate -> SignalOut
-- | Slider Banks
module CsoundExpr.Opcodes.Midi.Slidrbk
-- |
-- - opcode : slider16
-- - syntax :
--
--
--
-- i1,...,i16 slider16 ichan, ictlnum1, imin1, imax1, init1, ifn1,...,
-- ictlnum16, imin16, imax16, init16, ifn16
-- k1,...,k16 slider16 ichan, ictlnum1, imin1, imax1, init1, ifn1,...,
-- ictlnum16, imin16, imax16, init16, ifn16
--
--
--
--
-- Creates a bank of 16 different MIDI control message numbers.
--
--
slider16 :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : slider16f
-- - syntax :
--
--
--
-- k1,...,k16 slider16f ichan, ictlnum1, imin1, imax1, init1, ifn1,
-- icutoff1,..., ictlnum16, imin16, imax16, init16, ifn16, icutoff16
--
--
--
--
-- Creates a bank of 16 different MIDI control message numbers, filtered
-- before output.
--
--
slider16f :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : slider32
-- - syntax :
--
--
--
-- i1,...,i32 slider32 ichan, ictlnum1, imin1, imax1, init1, ifn1,...,
-- ictlnum32, imin32, imax32, init32, ifn32
-- k1,...,k32 slider32 ichan, ictlnum1, imin1, imax1, init1, ifn1,...,
-- ictlnum32, imin32, imax32, init32, ifn32
--
--
--
--
-- Creates a bank of 32 different MIDI control message numbers.
--
--
slider32 :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : slider32f
-- - syntax :
--
--
--
-- k1,...,k32 slider32f ichan, ictlnum1, imin1, imax1, init1, ifn1, icutoff1,
-- ..., ictlnum32, imin32, imax32, init32, ifn32, icutoff32
--
--
--
--
-- Creates a bank of 32 different MIDI control message numbers, filtered
-- before output.
--
--
slider32f :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : slider64
-- - syntax :
--
--
--
-- i1,...,i64 slider64 ichan, ictlnum1, imin1, imax1, init1, ifn1,...,
-- ictlnum64, imin64, imax64, init64, ifn64
-- k1,...,k64 slider64 ichan, ictlnum1, imin1, imax1, init1, ifn1,...,
-- ictlnum64, imin64, imax64, init64, ifn64
--
--
--
--
-- Creates a bank of 64 different MIDI control message numbers.
--
--
slider64 :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : slider64f
-- - syntax :
--
--
--
-- k1,...,k64 slider64f ichan, ictlnum1, imin1, imax1, init1, ifn1,
-- icutoff1,..., ictlnum64, imin64, imax64, init64, ifn64, icutoff64
--
--
--
--
-- Creates a bank of 64 different MIDI control message numbers, filtered
-- before output.
--
--
slider64f :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : s16b14
-- - syntax :
--
--
--
-- i1,...,i16 s16b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1,
-- initvalue1, ifn1,..., ictlno_msb16, ictlno_lsb16, imin16, imax16, initvalue16, ifn16
-- k1,...,k16 s16b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1,
-- initvalue1, ifn1,..., ictlno_msb16, ictlno_lsb16, imin16, imax16, initvalue16, ifn16
--
--
--
--
-- Creates a bank of 16 different 14-bit MIDI control message numbers.
--
--
s16b14 :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : s32b14
-- - syntax :
--
--
--
-- i1,...,i32 s32b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1,
-- initvalue1, ifn1,..., ictlno_msb32, ictlno_lsb32, imin32, imax32, initvalue32, ifn32
-- k1,...,k32 s32b14 ichan, ictlno_msb1, ictlno_lsb1, imin1, imax1,
-- initvalue1, ifn1,..., ictlno_msb32, ictlno_lsb32, imin32, imax32, initvalue32, ifn32
--
--
--
--
-- Creates a bank of 32 different 14-bit MIDI control message numbers.
--
--
s32b14 :: Irate -> [Irate] -> MultiOut
-- |
-- - opcode : sliderKawai
-- - syntax :
--
--
--
-- k1, k2,...., k16 sliderKawai imin1, imax1, init1, ifn1,
-- imin2, imax2, init2, ifn2,..., imin16, imax16, init16, ifn16
--
--
--
--
-- Creates a bank of 16 different MIDI control message numbers from a
-- KAWAI MM-16 midi mixer.
--
--
sliderKawai :: [Irate] -> MultiOut
-- |
-- - opcode : slider8table
-- - syntax :
--
--
--
-- kflag slider8table ichan, ioutTable, ioffset, ictlnum1, imin1, imax1,
-- init1, ifn1,..., ictlnum8, imin8, imax8, init8, ifn8
--
--
--
--
-- Stores a bank of 8 different MIDI control messages to a table.
--
--
slider8table :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider8tablef
-- - syntax :
--
--
--
-- kflag slider8tablef ichan, ioutTable, ioffset, ictlnum1, imin1, imax1,
-- init1, ifn1, icutoff1,...., ictlnum8, imin8, imax8, init8, ifn8, icutoff8
--
--
--
--
-- Stores a bank of 8 different MIDI control messages to a table,
-- filtered before output.
--
--
slider8tablef :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider16table
-- - syntax :
--
--
--
-- kflag slider16table ichan, ioutTable, ioffset, ictlnum1, imin1, imax1,
-- init1, ifn1,...., ictlnum16, imin16, imax16, init16, ifn16
--
--
--
--
-- Stores a bank of 16 different MIDI control messages to a table.
--
--
slider16table :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider16tablef
-- - syntax :
--
--
--
-- kflag slider16tablef ichan, ioutTable, ioffset, ictlnum1, imin1, imax1,
-- init1, ifn1, icutoff1,...., ictlnum16, imin16, imax16, init16, ifn16, icutoff16
--
--
--
--
-- Stores a bank of 16 different MIDI control messages to a table,
-- filtered before output.
--
--
slider16tablef :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider32table
-- - syntax :
--
--
--
-- kflag slider32table ichan, ioutTable, ioffset, ictlnum1, imin1,
-- imax1, init1, ifn1,...., ictlnum32, imin32, imax32, init32, ifn32
--
--
--
--
-- Creates a bank of 32 different MIDI control messages to a table.
--
--
slider32table :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider32tablef
-- - syntax :
--
--
--
-- kflag slider32tablef ichan, ioutTable, ioffset, ictlnum1, imin1, imax1,
-- init1, ifn1, icutoff1,...., ictlnum32, imin32, imax32, init32, ifn32, icutoff32
--
--
--
--
-- Creates a bank of 32 different MIDI control message numbers, filtered
-- before output.
--
--
slider32tablef :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider64table
-- - syntax :
--
--
--
-- kflag slider64table ichan, ioutTable, ioffset, ictlnum1, imin1,
-- imax1, init1, ifn1,...., ictlnum64, imin64, imax64, init64, ifn64
--
--
--
--
-- Creates a bank of 64 different MIDI control messages to a table.
--
--
slider64table :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- |
-- - opcode : slider64tablef
-- - syntax :
--
--
--
-- kflag slider64tablef ichan, ioutTable, ioffset, ictlnum1, imin1, imax1,
-- init1, ifn1, icutoff1,...., ictlnum64, imin64, imax64, init64, ifn64, icutoff64
--
--
--
--
-- Stores a bank of 64 different MIDI MIDI control messages to a table,
-- filtered before output.
--
--
slider64tablef :: Irate -> Irate -> Irate -> [Irate] -> Krate
-- | Real-time MIDI Support
module CsoundExpr.Opcodes.Midi
-- | Short-time Fourier Transform (STFT) Resynthesis
module CsoundExpr.Opcodes.Spectral.SiggenStft
-- |
-- - opcode : tableseg
-- - syntax :
--
--
--
-- tableseg ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]
--
--
--
--
-- tableseg is like linseg but interpolate between values in a stored
-- function tables. The result is a new function table passed internally
-- to any following vpvoc which occurs before a subsequent tableseg (much
-- like lpread/lpreson pairs work). The uses of these are described below
-- under vpvoc.
--
--
tableseg :: [Irate] -> SignalOut
-- |
-- - opcode : pvadd
-- - syntax :
--
--
--
-- ares pvadd ktimpnt, kfmod, ifilcod, ifn, ibins [, ibinoffset]
-- [, ibinincr] [, iextractmode] [, ifreqlim] [, igatefn]
--
--
--
--
-- pvadd reads from a pvoc file and uses the data to perform additive
-- synthesis using an internal array of interpolating oscillators. The
-- user supplies the wave table (usually one period of a sine wave), and
-- can choose which analysis bins will be used in the re-synthesis.
--
--
pvadd :: (K k0, K k1) => [Irate] -> k0 -> k1 -> String -> Irate -> Irate -> Arate
-- |
-- - opcode : pvbufread
-- - syntax :
--
--
--
-- pvbufread ktimpnt, ifile
--
--
--
--
-- pvbufread reads from a pvoc file and makes the retrieved data
-- available to any following pvinterp and pvcross units that appear in
-- an instrument before a subsequent pvbufread (just as lpread and
-- lpreson work together). The data is passed internally and the unit has
-- no output of its own.
--
--
pvbufread :: K k0 => k0 -> Irate -> SignalOut
-- |
-- - opcode : pvcross
-- - syntax :
--
--
--
-- ares pvcross ktimpnt, kfmod, ifile, kampscale1, kampscale2 [, ispecwp]
--
--
--
--
-- pvcross applies the amplitudes from one phase vocoder analysis file to
-- the data from a second file and then performs the resynthesis. The
-- data is passed, as described above, from a previously called pvbufread
-- unit. The two k-rate amplitude arguments are used to scale the
-- amplitudes of each files separately before they are added together and
-- used in the resynthesis (see below for further explanation). The
-- frequencies of the first file are not used at all in this process.
-- This unit simply allows for cross-synthesis through the application of
-- the amplitudes of the spectra of one signal to the frequencies of a
-- second signal. Unlike pvinterp, pvcross does allow for the use of the
-- ispecwp as in pvoc and vpvoc.
--
--
pvcross :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> Irate -> k2 -> k3 -> Arate
-- |
-- - opcode : pvinterp
-- - syntax :
--
--
--
-- ares pvinterp ktimpnt, kfmod, ifile, kfreqscale1, kfreqscale2,
-- kampscale1, kampscale2, kfreqinterp, kampinterp
--
--
--
--
-- pvinterp interpolates between the amplitudes and frequencies, on a bin
-- by bin basis, of two phase vocoder analysis files (one from a
-- previously called pvbufread unit and the other from within its own
-- argument list), allowing for user defined transitions between analyzed
-- sounds. It also allows for general scaling of the amplitudes and
-- frequencies of each file separately before the interpolated values are
-- calculated and sent to the resynthesis routines. The kfmod argument in
-- pvinterp performs its frequency scaling on the frequency values after
-- their derivation from the separate scaling and subsequent
-- interpolation is performed so that this acts as an overall scaling
-- value of the new frequency components.
--
--
pvinterp :: (K k0, K k1, K k2, K k3, K k4, K k5, K k6, K k7) => k0 -> k1 -> Irate -> k2 -> k3 -> k4 -> k5 -> k6 -> k7 -> Arate
-- |
-- - opcode : pvoc
-- - syntax :
--
--
--
-- ares pvoc ktimpnt, kfmod, ifilcod [, ispecwp] [, iextractmode]
-- [, ifreqlim] [, igatefn]
--
--
--
--
-- Implements signal reconstruction using an fft-based phase vocoder.
--
--
pvoc :: (K k0, K k1) => [Irate] -> k0 -> k1 -> String -> Arate
-- |
-- - opcode : pvread
-- - syntax :
--
--
--
-- kfreq, kamp pvread ktimpnt, ifile, ibin
--
--
--
--
-- pvread reads from a pvoc file and returns the frequency and amplitude
-- from a single analysis channel or bin. The returned values can be used
-- anywhere else in the Csound instrument. For example, one can use them
-- as arguments to an oscillator to synthesize a single component from an
-- analyzed signal or a bank of pvreads can be used to resynthesize the
-- analyzed sound using additive synthesis by passing the frequency and
-- magnitude values to a bank of oscillators.
--
--
pvread :: K k0 => k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : tablexseg
-- - syntax :
--
--
--
-- tablexseg ifn1, idur1, ifn2 [, idur2] [, ifn3] [...]
--
--
--
--
-- tablexseg is like expseg but interpolate between values in a stored
-- function tables. The result is a new function table passed internally
-- to any following vpvoc which occurs before a subsequent tablexseg
-- (much like lpread/lpreson pairs work). The uses of these are described
-- below under vpvoc.
--
--
tablexseg :: [Irate] -> SignalOut
-- |
-- - opcode : vpvoc
-- - syntax :
--
--
--
-- ares vpvoc ktimpnt, kfmod, ifile [, ispecwp] [, ifn]
--
--
--
--
-- Implements signal reconstruction using an fft-based phase vocoder and
-- an extra envelope.
--
--
vpvoc :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Arate
-- | Linear Predictive Coding (LPC) Resynthesis
module CsoundExpr.Opcodes.Spectral.Lpcresyn
-- |
-- - opcode : lpfreson
-- - syntax :
--
--
--
-- ares lpfreson asig, kfrqratio
--
--
--
--
-- Resynthesises a signal from the data passed internally by a previous
-- lpread, applying formant shifting.
--
--
lpfreson :: K k0 => Arate -> k0 -> Arate
-- |
-- - opcode : lpinterp
-- - syntax :
--
--
--
-- lpinterp islot1, islot2, kmix
--
--
--
--
-- Computes a new set of poles from the interpolation between two
-- analysis.
--
--
lpinterp :: K k0 => Irate -> Irate -> k0 -> SignalOut
-- |
-- - opcode : lpread
-- - syntax :
--
--
--
-- krmsr, krmso, kerr, kcps lpread ktimpnt, ifilcod [, inpoles] [, ifrmrate]
--
--
--
--
-- Reads a control file of time-ordered information frames.
--
--
lpread :: K k0 => [Irate] -> k0 -> String -> MultiOut
-- |
-- - opcode : lpreson
-- - syntax :
--
--
--
-- ares lpreson asig
--
--
--
--
-- Resynthesises a signal from the data passed internally by a previous
-- lpread.
--
--
lpreson :: Arate -> Arate
-- |
-- - opcode : lpslot
-- - syntax :
--
--
--
-- lpslot islot
--
--
--
--
-- Selects the slot to be use by further lp opcodes.
--
--
lpslot :: Irate -> SignalOut
-- | Non-standard Spectral Processing
module CsoundExpr.Opcodes.Spectral.Nonstand
-- | Tools for Real-time Spectral Processing (pvs opcodes)
module CsoundExpr.Opcodes.Spectral.RealTime
-- | ATS Spectral Processing
module CsoundExpr.Opcodes.Spectral.ATS
-- |
-- - opcode : ATSinfo
-- - syntax :
--
--
--
-- idata ATSinfo iatsfile, ilocation
--
--
--
--
-- atsinfo reads data out of the header of an ATS file.
--
--
atsInfo :: Irate -> Irate -> Irate
-- |
-- - opcode : ATSread
-- - syntax :
--
--
--
-- kfreq, kamp ATSread ktimepnt, iatsfile, ipartial
--
--
--
--
-- ATSread returns the amplitude (kamp) and frequency (kfreq) information
-- of a user specified partial contained in the ATS analysis file at the
-- time indicated by the time pointer ktimepnt.
--
--
atsRead :: K k0 => k0 -> Irate -> Irate -> MultiOut
-- |
-- - opcode : ATSreadnz
-- - syntax :
--
--
--
-- kenergy ATSreadnz ktimepnt, iatsfile, iband
--
--
--
--
-- ATSreadnz returns the energy (kenergy) of a user specified noise band
-- (1-25 bands) at the time indicated by the time pointer ktimepnt.
--
--
atsReadnz :: K k0 => k0 -> Irate -> Irate -> Krate
-- |
-- - opcode : ATSbufread
-- - syntax :
--
--
--
-- ATSbufread ktimepnt, kfmod, iatsfile, ipartials[, ipartialoffset,
-- ipartialincr]
--
--
--
--
-- ATSbufread reads data from and ATS data file and stores it in an
-- internal data table of frequency, amplitude pairs.
--
--
atsBufread :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> SignalOut
-- |
-- - opcode : ATSinterpread
-- - syntax :
--
--
--
-- kamp ATSinterpread kfreq
--
--
--
--
-- ATSinterpread allows a user to determine the frequency envelope of any
-- ATSbufread.
--
--
atsInterpread :: K k0 => k0 -> Krate
-- |
-- - opcode : ATSpartialtap
-- - syntax :
--
--
--
-- kfrq, kamp ATSpartialtap ipartialnum
--
--
--
--
-- ATSpartialtap takes a partial number and returns a frequency,
-- amplitude pair. The frequency and amplitude data comes from an
-- ATSbufread opcode.
--
--
atsPartialtap :: Irate -> MultiOut
-- |
-- - opcode : ATSadd
-- - syntax :
--
--
--
-- ar ATSadd ktimepnt, kfmod, iatsfile, ifn, ipartials[, ipartialoffset,
-- ipartialincr, igatefn]
--
--
--
--
-- ATSadd reads from an ATS analysis file and uses the data to perform
-- additive synthesis using an internal array of interpolating
-- oscillators.
--
--
atsAdd :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> Arate
-- |
-- - opcode : ATSaddnz
-- - syntax :
--
--
--
-- ar ATSaddnz ktimepnt, iatsfile, ibands[, ibandoffset, ibandincr]
--
--
--
--
-- ATSaddnz reads from an ATS analysis file and uses the data to perform
-- additive synthesis using a modified randi function.
--
--
atsAddnz :: K k0 => [Irate] -> k0 -> Irate -> Irate -> Arate
-- |
-- - opcode : ATScross
-- - syntax :
--
--
--
-- ar ATScross ktimepnt, kfmod, iatsfile, ifn, kmylev, kbuflev, ipartials
-- [, ipartialoffset, ipartialincr]
--
--
--
--
-- ATScross uses data from an ATS analysis file and data from an
-- ATSbufread to perform cross synthesis.
--
--
atsCross :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> Irate -> Irate -> k2 -> k3 -> Irate -> Arate
-- |
-- - opcode : ATSsinnoi
-- - syntax :
--
--
--
-- ar ATSsinnoi ktimepnt, ksinlev, knzlev, kfmod, iatsfile, ipartials
-- [, ipartialoffset, ipartialincr]
--
--
--
--
-- ATSsinnoi reads data from an ATS data file and uses the information to
-- synthesize sines and noise together.
--
--
atsSinnoi :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> k1 -> k2 -> k3 -> Irate -> Irate -> Arate
-- | Loris Opcodes
module CsoundExpr.Opcodes.Spectral.Loris
-- |
-- - opcode : lorisread
-- - syntax :
--
--
--
-- lorisread ktimpnt, ifilcod, istoreidx, kfreqenv, kampenv, kbwenv[, ifadetime]
--
--
--
--
-- lorisread imports a set of bandwidth-enhanced partials from a
-- SDIF-format data file, applying control-rate frequency, amplitude, and
-- bandwidth scaling envelopes, and stores the modified partials in
-- memory.
--
--
lorisread :: (K k0, K k1, K k2, K k3) => [Irate] -> k0 -> String -> Irate -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : lorismorph
-- - syntax :
--
--
--
-- lorismorph isrcidx, itgtidx, istoreidx, kfreqmorphenv, kampmorphenv, kbwmorphenv
--
--
--
--
-- lorismorph morphs two stored sets of bandwidth-enhanced partials and
-- stores a new set of partials representing the morphed sound. The morph
-- is performed by linearly interpolating the parameter envelopes
-- (frequency, amplitude, and bandwidth, or noisiness) of the
-- bandwidth-enhanced partials according to control-rate frequency,
-- amplitude, and bandwidth morphing functions.
--
--
lorismorph :: (K k0, K k1, K k2) => Irate -> Irate -> Irate -> k0 -> k1 -> k2 -> SignalOut
-- |
-- - opcode : lorisplay
-- - syntax :
--
--
--
-- ar lorisplay ireadidx, kfreqenv, kampenv, kbwenv
--
--
--
--
-- lorisplay renders a stored set of bandwidth-enhanced partials using
-- the method of Bandwidth-Enhanced Additive Synthesis implemented in the
-- Loris software, applying control-rate frequency, amplitude, and
-- bandwidth scaling envelopes.
--
--
lorisplay :: (K k0, K k1, K k2) => Irate -> k0 -> k1 -> k2 -> Arate
-- | Spectral Processing
module CsoundExpr.Opcodes.Spectral
-- | Tables of vectors operators
module CsoundExpr.Opcodes.Vectorial.Vectorialtables
-- |
-- - opcode : vtablei
-- - syntax :
--
--
--
-- vtablei indx, ifn, interp, ixmode, iout1 [, iout2, iout3,...., ioutN ]
--
--
--
--
-- This opcode reads vectors from tables.
--
--
vtablei :: Irate -> Irate -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vtable1k
-- - syntax :
--
--
--
-- vtable1k kfn,kout1 [, kout2, kout3,...., koutN ]
--
--
--
--
-- This opcode reads vectors from tables at k-rate.
--
--
vtable1k :: (K k0, K k1) => k0 -> [k1] -> SignalOut
-- |
-- - opcode : vtablek
-- - syntax :
--
--
--
-- vtablek kndx, kfn, kinterp, ixmode, kout1 [, kout2, kout3,...., koutN ]
--
--
--
--
-- This opcode reads vectors from tables at k-rate.
--
--
vtablek :: (K k0, K k1, K k2) => k0 -> k1 -> k2 -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vtablea
-- - syntax :
--
--
--
-- vtablea andx, kfn, kinterp, ixmode, aout1 [, aout2, aout3,...., aoutN ]
--
--
--
--
-- This opcode reads vectors from tables at a-rate.
--
--
vtablea :: (K k0, K k1) => Arate -> k0 -> k1 -> Irate -> [Arate] -> SignalOut
-- |
-- - opcode : vtablewi
-- - syntax :
--
--
--
-- vtablewi indx, ifn, ixmode, inarg1 [, inarg2, inarg3,...., inargN ]
--
--
--
--
-- This opcode writes vectors to tables at init time.
--
--
vtablewi :: Irate -> Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vtablewk
-- - syntax :
--
--
--
-- vtablewk kndx, kfn, ixmode, kinarg1 [, kinarg2, kinarg3,...., kinargN ]
--
--
--
--
-- This opcode writes vectors to tables at k-rate.
--
--
vtablewk :: (K k0, K k1, K k2) => k0 -> k1 -> Irate -> [k2] -> SignalOut
-- |
-- - opcode : vtablewa
-- - syntax :
--
--
--
-- vtablewa andx, kfn, ixmode, ainarg1 [, ainarg2, ainarg3,...., ainargN ]
--
--
--
--
-- This opcode writes vectors to tables at a-rate.
--
--
vtablewa :: Arate -> Arate -> Irate -> [Arate] -> SignalOut
-- |
-- - opcode : vtabi
-- - syntax :
--
--
--
-- vtabi indx, ifn, iout1 [, iout2, iout3,...., ioutN ]
--
--
--
--
-- This opcode reads vectors from tables.
--
--
vtabi :: Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vtabk
-- - syntax :
--
--
--
-- vtabk kndx, ifn, kout1 [, kout2, kout3,...., koutN ]
--
--
--
--
-- This opcode reads vectors from tables at k-rate.
--
--
vtabk :: (K k0, K k1) => k0 -> Irate -> [k1] -> SignalOut
-- |
-- - opcode : vtaba
-- - syntax :
--
--
--
-- vtaba andx, ifn, aout1 [, aout2, aout3,...., aoutN ]
--
--
--
--
-- This opcode reads vectors from tables at a-rate.
--
--
vtaba :: Arate -> Irate -> [Arate] -> SignalOut
-- |
-- - opcode : vtabwi
-- - syntax :
--
--
--
-- vtabwi indx, ifn, inarg1 [, inarg2, inarg3,...., inargN ]
--
--
--
--
-- This opcode writes vectors to tables at init time.
--
--
vtabwi :: Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vtabwk
-- - syntax :
--
--
--
-- vtabwk kndx, ifn, kinarg1 [, kinarg2, kinarg3,...., kinargN ]
--
--
--
--
-- This opcode writes vectors to tables at a-rate.
--
--
vtabwk :: (K k0, K k1) => k0 -> Irate -> [k1] -> SignalOut
-- |
-- - opcode : vtabwa
-- - syntax :
--
--
--
-- vtabwa andx, ifn, ainarg1 [, ainarg2, ainarg3,...., ainargN ]
--
--
--
--
-- This opcode writes vectors to tables at a-rate.
--
--
vtabwa :: Arate -> Irate -> [Arate] -> SignalOut
-- | Operations Between a Vectorial and a Scalar Signal
module CsoundExpr.Opcodes.Vectorial.Vectorialscalar
-- |
-- - opcode : vadd
-- - syntax :
--
--
--
-- vadd ifn, kval, kelements [, kdstoffset] [, kverbose]
--
--
--
--
-- Adds a scalar value to a vector in a table.
--
--
vadd :: (K k0, K k1, K k2) => [k0] -> Irate -> k1 -> k2 -> SignalOut
-- |
-- - opcode : vmult
-- - syntax :
--
--
--
-- vmult ifn, kval, kelements [, kdstoffset] [, kverbose]
--
--
--
--
-- Multiplies a vector in a table by a scalar value.
--
--
vmult :: (K k0, K k1, K k2) => [k0] -> Irate -> k1 -> k2 -> SignalOut
-- |
-- - opcode : vpow
-- - syntax :
--
--
--
-- vpow ifn, kval, kelements [, kdstoffset] [, kverbose]
--
--
--
--
-- Raises each element of a vector to a scalar power
--
--
vpow :: (K k0, K k1, K k2) => [k0] -> Irate -> k1 -> k2 -> SignalOut
-- |
-- - opcode : vexp
-- - syntax :
--
--
--
-- vexp ifn, kval, kelements [, kdstoffset] [, kverbose]
--
--
--
--
-- Performs power-of operations between a vector and a scalar
--
--
vexp :: (K k0, K k1, K k2) => [k0] -> Irate -> k1 -> k2 -> SignalOut
-- |
-- - opcode : vadd_i
-- - syntax :
--
--
--
-- vadd_i ifn, ival, ielements [, idstoffset]
--
--
--
--
-- Adds a scalar value to a vector in a table.
--
--
vadd_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vmult_i
-- - syntax :
--
--
--
-- vmult_i ifn, ival, ielements [, idstoffset]
--
--
--
--
-- Multiplies a vector in a table by a scalar value.
--
--
vmult_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vpow_i
-- - syntax :
--
--
--
-- vpow_i ifn, ival, ielements [, idstoffset]
--
--
--
--
-- Raises each element of a vector to a scalar power
--
--
vpow_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vexp_i
-- - syntax :
--
--
--
-- vexp_i ifn, ival, ielements[, idstoffset]
--
--
--
--
-- Performs power-of operations between a vector and a scalar
--
--
vexp_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- | Operations Between two Vectorial Signals
module CsoundExpr.Opcodes.Vectorial.Vectorialvectorial
-- |
-- - opcode : vaddv
-- - syntax :
--
--
--
-- vaddv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]
--
--
--
--
-- Performs addition between two vectorial control signals
--
--
vaddv :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vsubv
-- - syntax :
--
--
--
-- vsubv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]
--
--
--
--
-- Performs subtraction between two vectorial control signals
--
--
vsubv :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vmultv
-- - syntax :
--
--
--
-- vmultv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]
--
--
--
--
-- Performs mutiplication between two vectorial control signals
--
--
vmultv :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vdivv
-- - syntax :
--
--
--
-- vdivv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]
--
--
--
--
-- Performs division between two vectorial control signals
--
--
vdivv :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vpowv
-- - syntax :
--
--
--
-- vpowv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]
--
--
--
--
-- Performs power-of operations between two vectorial control signals
--
--
vpowv :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vexpv
-- - syntax :
--
--
--
-- vexpv ifn1, ifn2, kelements [, kdstoffset] [, ksrcoffset] [,kverbose]
--
--
--
--
-- Performs exponential operations between two vectorial control signals
--
--
vexpv :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vcopy
-- - syntax :
--
--
--
-- vcopy ifn, ifn2, kelements [, kdstoffset] [, ksrcoffset] [, kverbose]
--
--
--
--
-- Copies between two vectorial control signals
--
--
vcopy :: (K k0, K k1) => [k0] -> Irate -> Irate -> k1 -> SignalOut
-- |
-- - opcode : vmap
-- - syntax :
--
--
--
-- vmap ifn1, ifn2, ielements [,idstoffset, isrcoffset]
--
--
--
--
-- Maps elements from a vector onto another according to the indeces of a
-- this vector
--
--
vmap :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vaddv_i
-- - syntax :
--
--
--
-- vaddv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]
--
--
--
--
-- Performs addition between two vectorial control signals at init time.
--
--
vaddv_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vsubv_i
-- - syntax :
--
--
--
-- vsubv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]
--
--
--
--
-- Performs subtraction between two vectorial control signals at init
-- time.
--
--
vsubv_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vmultv_i
-- - syntax :
--
--
--
-- vmultv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]
--
--
--
--
-- Performs mutiplication between two vectorial control signals at init
-- time.
--
--
vmultv_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vdivv_i
-- - syntax :
--
--
--
-- vdivv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]
--
--
--
--
-- Performs division between two vectorial control signals at init time.
--
--
vdivv_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vpowv_i
-- - syntax :
--
--
--
-- vpowv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]
--
--
--
--
-- Performs power-of operations between two vectorial control signals at
-- init time.
--
--
vpowv_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vexpv_i
-- - syntax :
--
--
--
-- vexpv_i ifn1, ifn2, ielements [, idstoffset] [, isrcoffset]
--
--
--
--
-- Performs exponential operations between two vectorial control signals
-- at init time.
--
--
vexpv_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : vcopy_i
-- - syntax :
--
--
--
-- vcopy_i ifn, ifn2, ielements [,idstoffset, isrcoffset]
--
--
--
--
-- Copies a vector from one table to another.
--
--
vcopy_i :: [Irate] -> Irate -> Irate -> Irate -> SignalOut
-- | Vectorial Envelope Generators
module CsoundExpr.Opcodes.Vectorial.EnvelopeGenerators
-- |
-- - opcode : vlinseg
-- - syntax :
--
--
--
-- vlinseg ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]
--
--
--
--
-- Generate linear vectorial segments
--
--
vlinseg :: Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vexpseg
-- - syntax :
--
--
--
-- vexpseg ifnout, ielements, ifn1, idur1, ifn2 [, idur2, ifn3 [...]]
--
--
--
--
-- Generate exponential vectorial segments
--
--
vexpseg :: Irate -> Irate -> [Irate] -> SignalOut
-- |
-- - opcode : vcella
-- - syntax :
--
--
--
-- vcella ktrig, kreinit, ioutFunc, initStateFunc,
-- iRuleFunc, ielements, irulelen [, iradius]
--
--
--
--
-- Unidimensional Cellular Automata applied to Csound vectors
--
--
vcella :: (K k0, K k1) => [Irate] -> k0 -> k1 -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- | Limiting and wrapping of vectorial control signals
module CsoundExpr.Opcodes.Vectorial.Vectorialimiting
-- |
-- - opcode : vlimit
-- - syntax :
--
--
--
-- vlimit ifn, kmin, kmax, ielements
--
--
--
--
-- Limits elements of vectorial control signals.
--
--
vlimit :: (K k0, K k1) => Irate -> k0 -> k1 -> Irate -> SignalOut
-- |
-- - opcode : vwrap
-- - syntax :
--
--
--
-- vwrap ifn, kmin, kmax, ielements
--
--
--
--
-- Wraps elements of vectorial control signals.
--
--
vwrap :: (K k0, K k1) => Irate -> k0 -> k1 -> Irate -> SignalOut
-- |
-- - opcode : vmirror
-- - syntax :
--
--
--
-- vmirror ifn, kmin, kmax, ielements
--
--
--
--
-- Reflects elements of vectorial control signals on thresholds.
--
--
vmirror :: (K k0, K k1) => Irate -> k0 -> k1 -> Irate -> SignalOut
-- | Vectorial Control-rate Delay Paths
module CsoundExpr.Opcodes.Vectorial.Vectorialdelay
-- |
-- - opcode : vdelayk
-- - syntax :
--
--
--
-- kout vdelayk iksig, kdel, imaxdel [, iskip, imode]
--
--
--
--
-- Variable delay applied to a k-rate signal
--
--
vdelayk :: K k0 => [Irate] -> Irate -> k0 -> Irate -> Krate
-- |
-- - opcode : vport
-- - syntax :
--
--
--
-- vport ifn, khtime, ielements [, ifnInit]
--
--
--
--
-- Generate a sort of vectorial portamento
--
--
vport :: K k0 => [Irate] -> Irate -> k0 -> Irate -> SignalOut
-- |
-- - opcode : vecdelay
-- - syntax :
--
--
--
-- vecdelay ifn, ifnIn, ifnDel, ielements, imaxdel [, iskip]
--
--
--
--
-- Generate a sort of vectorial delay
--
--
vecdelay :: [Irate] -> Irate -> Irate -> Irate -> Irate -> Irate -> SignalOut
-- | Vectorial Random Signal Generators
module CsoundExpr.Opcodes.Vectorial.Vectorialrandom
-- |
-- - opcode : vrandh
-- - syntax :
--
--
--
-- vrandh ifn, krange, kcps, ielements [, idstoffset] [, iseed] [, isize] [, ioffset]
--
--
--
--
-- Generates a vector of random numbers stored into a table, holding the
-- values for a period of time. Generates a sort of 'vectorial
-- band-limited noise'.
--
--
vrandh :: (K k0, K k1) => [Irate] -> Irate -> k0 -> k1 -> Irate -> SignalOut
-- |
-- - opcode : vrandi
-- - syntax :
--
--
--
-- vrandi ifn, krange, kcps, ielements [, idstoffset] [, iseed] [, isize] [, ioffset]
--
--
--
--
-- Generate a sort of 'vectorial band-limited noise'
--
--
vrandi :: (K k0, K k1) => [Irate] -> Irate -> k0 -> k1 -> Irate -> SignalOut
-- | Vectorial Opcodes
module CsoundExpr.Opcodes.Vectorial
-- | Zak Patch System
module CsoundExpr.Opcodes.Zak.Top
-- |
-- - opcode : zacl
-- - syntax :
--
--
--
-- zacl kfirst, klast
--
--
--
--
-- Clears one or more variables in the za space.
--
--
zacl :: (K k0, K k1) => k0 -> k1 -> SignalOut
-- |
-- - opcode : zakinit
-- - syntax :
--
--
--
-- zakinit isizea, isizek
--
--
--
--
-- Establishes zak space. Must be called only once.
--
--
zakinit :: Irate -> Irate -> SignalOut
-- |
-- - opcode : zamod
-- - syntax :
--
--
--
-- ares zamod asig, kzamod
--
--
--
--
-- Modulates one a-rate signal by a second one.
--
--
zamod :: K k0 => Arate -> k0 -> Arate
-- |
-- - opcode : zar
-- - syntax :
--
--
--
-- ares zar kndx
--
--
--
--
-- Reads from a location in za space at a-rate.
--
--
zar :: K k0 => k0 -> Arate
-- |
-- - opcode : zarg
-- - syntax :
--
--
--
-- ares zarg kndx, kgain
--
--
--
--
-- Reads from a location in za space at a-rate, adds some gain.
--
--
zarg :: (K k0, K k1) => k0 -> k1 -> Arate
-- |
-- - opcode : zaw
-- - syntax :
--
--
--
-- zaw asig, kndx
--
--
--
--
-- Writes to a za variable at a-rate without mixing.
--
--
zaw :: K k0 => Arate -> k0 -> SignalOut
-- |
-- - opcode : zawm
-- - syntax :
--
--
--
-- zawm asig, kndx [, imix]
--
--
--
--
-- Writes to a za variable at a-rate with mixing.
--
--
zawm :: K k0 => [Irate] -> Arate -> k0 -> SignalOut
-- |
-- - opcode : zkcl
-- - syntax :
--
--
--
-- zkcl kfirst, klast
--
--
--
--
-- Clears one or more variables in the zk space.
--
--
zkcl :: (K k0, K k1) => k0 -> k1 -> SignalOut
-- |
-- - opcode : zkmod
-- - syntax :
--
--
--
-- kres zkmod ksig, kzkmod
--
--
--
--
-- Facilitates the modulation of one signal by another.
--
--
zkmod :: (K k0, K k1) => k0 -> k1 -> Krate
-- |
-- - opcode : zkr
-- - syntax :
--
--
--
-- kres zkr kndx
--
--
--
--
-- Reads from a location in zk space at k-rate.
--
--
zkr :: K k0 => k0 -> Krate
-- |
-- - opcode : zkw
-- - syntax :
--
--
--
-- zkw ksig, kndx
--
--
--
--
-- Writes to a zk variable at k-rate without mixing.
--
--
zkw :: (K k0, K k1) => k0 -> k1 -> SignalOut
-- |
-- - opcode : zkwm
-- - syntax :
--
--
--
-- zkwm ksig, kndx [, imix]
--
--
--
--
-- Writes to a zk variable at k-rate with mixing.
--
--
zkwm :: (K k0, K k1) => [Irate] -> k0 -> k1 -> SignalOut
-- |
-- - opcode : zir
-- - syntax :
--
--
--
-- ir zir indx
--
--
--
--
-- Reads from a location in zk space at i-rate.
--
--
zir :: Irate -> Irate
-- |
-- - opcode : ziw
-- - syntax :
--
--
--
-- ziw isig, indx
--
--
--
--
-- Writes to a zk variable at i-rate without mixing.
--
--
ziw :: Irate -> Irate -> SignalOut
-- |
-- - opcode : ziwm
-- - syntax :
--
--
--
-- ziwm isig, indx [, imix]
--
--
--
--
-- Writes to a zk variable to an i-rate variable with mixing.
--
--
ziwm :: [Irate] -> Irate -> Irate -> SignalOut
-- | Zak Patch System
module CsoundExpr.Opcodes.Zak
-- | DSSI and LADSPA for Csound
module CsoundExpr.Opcodes.Plugin.Dssi4cs
-- |
-- - opcode : dssiinit
-- - syntax :
--
--
--
-- ihandle dssiinit ilibraryname, iplugindex [, iverbose]
--
--
--
--
-- dssiinit is used to load a DSSI or LADSPA plugin into memory for use
-- with the other dssi4cs opcodes. Both LADSPA effects and DSSI
-- instruments can be used.
--
--
dssiinit :: [Irate] -> Irate -> Irate -> Irate
-- |
-- - opcode : dssiactivate
-- - syntax :
--
--
--
-- dssiactivate ihandle, ktoggle
--
--
--
--
-- dssiactivate is used to activate or deactivate a DSSI or LADSPA
-- plugin. It calles the plugin's activate() and deactivate() functions
-- if they are provided.
--
--
dssiactivate :: K k0 => Irate -> k0 -> SignalOut
-- |
-- - opcode : dssilist
-- - syntax :
--
--
--
-- dssilist
--
--
--
--
-- dssilist checks the variables DSSI_PATH and LADSPA_PATH and lists all
-- plugins available in all plugin libraries there.
--
--
dssilist :: SignalOut
-- |
-- - opcode : dssiaudio
-- - syntax :
--
--
--
-- aout1 [, aout2, aout3, aout4] dssiaudio ihandle, ain1 [,ain2, ain3, ain4]
--
--
--
--
-- dssiaudio generates audio by processing an input signal through a
-- LADSPA plugin.
--
--
dssiaudio :: [Arate] -> Irate -> Arate -> MultiOut
-- |
-- - opcode : dssictls
-- - syntax :
--
--
--
-- dssictls ihandle, iport, kvalue, ktrigger
--
--
--
--
-- dssictls sends control values to a plugin's control port
--
--
dssictls :: (K k0, K k1) => Irate -> Irate -> k0 -> k1 -> SignalOut
-- | VST for Csound
module CsoundExpr.Opcodes.Plugin.Vst4cs
-- |
-- - opcode : vstinit
-- - syntax :
--
--
--
-- instance vstinit ilibrarypath [,iverbose]
--
--
--
--
-- vstinit is used to load a VST plugin into memory for use with the
-- other vst4cs opcodes. Both VST effects and instruments (synthesizers)
-- can be used.
--
--
vstinit :: [Irate] -> Irate -> Irate
-- |
-- - opcode : vstmidiout
-- - syntax :
--
--
--
-- vstmidiout instance, kstatus, kchan, kdata1, kdata2
--
--
--
--
-- vstmidiout is used for sending MIDI information to a VST plugin.
--
--
vstmidiout :: (K k0, K k1, K k2, K k3) => Irate -> k0 -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : vstnote
-- - syntax :
--
--
--
-- vstnote instance, kchan, knote, kveloc, kdur
--
--
--
--
-- vstnote sends a MIDI note with definite duration to a VST plugin.
--
--
vstnote :: (K k0, K k1, K k2, K k3) => Irate -> k0 -> k1 -> k2 -> k3 -> SignalOut
-- |
-- - opcode : vstinfo
-- - syntax :
--
--
--
-- vstinfo instance
--
--
--
--
-- vstinfo displays the parameters and the programs of a VST plugin.
--
--
vstinfo :: Irate -> SignalOut
-- |
-- - opcode : vstbankload
-- - syntax :
--
--
--
-- vstbankload instance, ipath
--
--
--
--
-- vstbankload is used for loading parameter banks to a VST plugin.
--
--
vstbankload :: Irate -> Irate -> SignalOut
-- |
-- - opcode : vstprogset
-- - syntax :
--
--
--
-- vstprogset instance, kprogram
--
--
--
--
-- vstprogset sets one of the programs in an .fxb bank.
--
--
vstprogset :: K k0 => Irate -> k0 -> SignalOut
-- |
-- - opcode : vstedit
-- - syntax :
--
--
--
-- vstedit instance
--
--
--
--
-- vstedit opens the custom GUI editor widow for a VST plugin. Note that
-- not all VST plugins have custom GUI editors. It may be necessary to
-- use the --displays command-line option to ensure that Csound handles
-- events from the editor window and displays it properly.
--
--
vstedit :: Irate -> SignalOut
-- | Plugin Hosting
module CsoundExpr.Opcodes.Plugin
-- | OSC
module CsoundExpr.Opcodes.OSCNetwork.OSC
-- |
-- - opcode : OSCinit
-- - syntax :
--
--
--
-- ihandle OSCinit iport
--
--
--
--
-- Starts a listening process, which can be used by OSClisten.
--
--
oscInit :: Irate -> Irate
-- |
-- - opcode : OSClisten
-- - syntax :
--
--
--
-- kans OSClisten ihandle, idest, itype [, xdata1, xdata2,...]
--
--
--
--
-- On each k-cycle looks to see if an OSC message has been send to a
-- given path of a given type.
--
--
oscListen :: X x0 => Irate -> Irate -> Irate -> [x0] -> Krate
-- |
-- - opcode : OSCsend
-- - syntax :
--
--
--
-- OSCsend kwhen, ihost, iport, idestination, itype [, kdata1, kdata2,...]
--
--
--
--
-- Uses the OSC protocol to send message to other OSC listening
-- processes.
--
--
oscSend :: (K k0, K k1) => k0 -> Irate -> Irate -> Irate -> Irate -> [k1] -> SignalOut
-- | Network
module CsoundExpr.Opcodes.OSCNetwork.Network
-- |
-- - opcode : sockrecv
-- - syntax :
--
--
--
-- asig sockrecv iport, ilength
-- asigl, asigr sockrecvs iport, ilength
-- asig strecv Sipaddr, iport
--
--
--
--
-- Receives directly using the UDP (sockrecv and sockrecvs) or TCP
-- (strecv) protocol onto a network. The data is not subject to any
-- encoding or special routing. The sockrecvs opcode receives a stereo
-- signal interleaved.
--
--
sockrecv :: Irate -> Irate -> Arate
-- |
-- - opcode : socksend
-- - syntax :
--
--
--
-- socksend asig, Sipaddr, iport, ilength
-- socksends asigl, asigr, Sipaddr, iport, ilength
-- stsend asig, Sipaddr, iport
--
--
--
--
-- Transmits data directly using the UDP (socksend and socksends) or TCP
-- (stsend) protocol onto a network. The data is not subject to any
-- encoding or special routing. The socksends opcode send a stereo signal
-- interleaved.
--
--
socksend :: Arate -> String -> Irate -> Irate -> SignalOut
-- | Remote Opcodes
module CsoundExpr.Opcodes.OSCNetwork.Remote
-- |
-- - opcode : remoteport
-- - syntax :
--
--
--
-- remoteport iportnum
--
--
--
--
-- Defines the port for use with the insremot, midremot, insglobal and
-- midglobal opcodes.
--
--
remoteport :: Irate -> SignalOut
-- | OSC and Network
module CsoundExpr.Opcodes.OSCNetwork
-- | Mixer Opcodes
module CsoundExpr.Opcodes.MixerOpcodes.MixerOpcodes
-- |
-- - opcode : MixerSend
-- - syntax :
--
--
--
-- MixerSend asignal, isend, ibuss, ichannel
--
--
--
--
-- Mixes an arate signal into a channel of a buss.
--
--
mixerSend :: Arate -> Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : MixerReceive
-- - syntax :
--
--
--
-- asignal MixerReceive ibuss, ichannel
--
--
--
--
-- Receives an arate signal that has been mixed onto a channel of a buss.
--
--
mixerReceive :: Irate -> Irate -> Arate
-- |
-- - opcode : MixerSetLevel
-- - syntax :
--
--
--
-- MixerSetLevel isend, ibuss, kgain
--
--
--
--
-- Sets the level at which signals from the send are added to the buss.
-- The actual sending of the signal to the buss is performed by the
-- MixerSend opcode.
--
--
mixerSetLevel :: K k0 => Irate -> Irate -> k0 -> SignalOut
-- |
-- - opcode : MixerSetLevel_i
-- - syntax :
--
--
--
-- MixerSetLevel_i isend, ibuss, igain
--
--
--
--
-- Sets the level at which signals from the send are added to the buss.
-- This opcode, because all parameters are irate, may be used in the
-- orchestra header. The actual sending of the signal to the buss is
-- performed by the MixerSend opcode.
--
--
mixerSetLevel_i :: Irate -> Irate -> Irate -> SignalOut
-- |
-- - opcode : MixerGetLevel
-- - syntax :
--
--
--
-- kgain MixerGetLevel isend, ibuss
--
--
--
--
-- Gets the level at which signals from the send are being added to the
-- buss. The actual sending of the signal to the buss is performed by the
-- MixerSend opcode.
--
--
mixerGetLevel :: Irate -> Irate -> Krate
-- |
-- - opcode : MixerClear
-- - syntax :
--
--
--
-- MixerClear
--
--
--
--
-- Resets all channels of a buss to 0.
--
--
mixerClear :: SignalOut
-- | Mixer Opcodes
module CsoundExpr.Opcodes.MixerOpcodes
-- | Signal Flow Graph Opcodes
module CsoundExpr.Opcodes.SignalFlowGraphOpcodes.SignalFlowGraphOpcodes
-- |
-- - opcode : outleta
-- - syntax :
--
--
--
-- outleta Sname, asignal
--
--
--
--
-- Sends an arate signal out from an instrument to a named port.
--
--
outleta :: String -> Arate -> SignalOut
-- |
-- - opcode : outletk
-- - syntax :
--
--
--
-- outletk Sname, ksignal
--
--
--
--
-- Sends a krate signal out from an instrument to a named port.
--
--
outletk :: K k0 => String -> k0 -> SignalOut
-- |
-- - opcode : inleta
-- - syntax :
--
--
--
-- asignal inleta Sname
--
--
--
--
-- Receives an arate signal into an instrument through a named port.
--
--
inleta :: String -> Arate
-- |
-- - opcode : inletk
-- - syntax :
--
--
--
-- ksignal inletk Sname
--
--
--
--
-- Receives a krate signal into an instrument from a named port.
--
--
inletk :: String -> Krate
-- |
-- - opcode : ftgenonce
-- - syntax :
--
--
--
-- ifno ftgenonce ip1dummy, ip2dummy, isize, igen, iarga, iargb,...
--
--
--
--
-- Generate a function table from within an instrument definition,
-- without duplication of data.
--
--
ftgenonce :: Irate -> Irate -> Irate -> Irate -> [Irate] -> Irate
-- | Signal Flow Graph Opcodes
module CsoundExpr.Opcodes.SignalFlowGraphOpcodes
-- | Image processing opcodes
module CsoundExpr.Opcodes.Imageopcodes.Top
-- |
-- - opcode : imagecreate
-- - syntax :
--
--
--
-- iimagenum imagecreate iwidth, iheight
--
--
--
--
-- Create an empty image of a given size. Individual pixel values can
-- then be set with. imagegetpixel.
--
--
imagecreate :: Irate -> Irate -> Irate
-- |
-- - opcode : imagesize
-- - syntax :
--
--
--
-- iwidth iheight imagesize iimagenum
--
--
--
--
-- Return the width and height of a previously opened or created image.
-- An image can be loaded with imageload. An empty image can be created
-- with imagecreate.
--
--
imagesize :: Irate -> MultiOut
-- |
-- - opcode : imagegetpixel
-- - syntax :
--
--
--
-- ared agreen ablue imagegetpixel iimagenum, ax, ay
-- kred kgreen kblue imagegetpixel iimagenum, kx, ky
--
--
--
--
-- Return the RGB pixel values of a previously opened or created image.
-- An image can be loaded with imageload. An empty image can be created
-- with imagecreate.
--
--
imagegetpixelA :: Irate -> Arate -> Arate -> MultiOut
-- |
-- - opcode : imagegetpixel
-- - syntax :
--
--
--
-- ared agreen ablue imagegetpixel iimagenum, ax, ay
-- kred kgreen kblue imagegetpixel iimagenum, kx, ky
--
--
--
--
-- Return the RGB pixel values of a previously opened or created image.
-- An image can be loaded with imageload. An empty image can be created
-- with imagecreate.
--
--
imagegetpixelK :: (K k0, K k1) => Irate -> k0 -> k1 -> MultiOut
-- |
-- - opcode : imagefree
-- - syntax :
--
--
--
-- imagefree iimagenum
--
--
--
--
-- Frees memory allocated for a previously loaded or created image.
--
--
imagefree :: Irate -> SignalOut
-- | Image processing opcodes
module CsoundExpr.Opcodes.Imageopcodes
-- | Miscellaneous opcodes
module CsoundExpr.Opcodes.Miscopcodes.Top
-- |
-- - opcode : system
-- - syntax :
--
--
--
-- ires system_i itrig, Scmd, [inowait]
-- kres system ktrig, Scmd, [knowait]
--
--
--
--
-- system and system_i call any external command understood by the
-- operating system, similarly to the C function system(). system_i runs
-- at i-time only, while system runs both at initialization and
-- performance time.
--
--
system :: (K k0, K k1) => [k0] -> k1 -> String -> Krate
-- |
-- - opcode : modmatrix
-- - syntax :
--
--
--
-- modmatrix iresfn, isrcmodfn, isrcparmfn, imodscale, inum_mod,
-- inum_parm, kupdate
--
--
--
--
-- The opcode can be used to let a large number of k-rate modulator
-- variables modulate a large number of k-rate parameter variables, with
-- arbitrary scaling of each modulator-to-parameter connection. Csound
-- ftables are used to hold both the input (parameter) variables, the
-- modulator variables, and the scaling coefficients. Output variables
-- are written to another Csound ftable.
--
--
modmatrix :: K k0 => Irate -> Irate -> Irate -> Irate -> Irate -> Irate -> k0 -> SignalOut
-- | Miscellaneous opcodes
module CsoundExpr.Opcodes.Miscopcodes
-- | Csound opcodes
module CsoundExpr.Opcodes
-- | basic combinators and types
--
-- Imports all Base modules, but
-- CsoundExpr.Base.UserDefined and CsoundExpr.Base.Pitch.
module CsoundExpr.Base
-- | Csound pitch constants
module CsoundExpr.Base.Pitch
type Pitch = Irate
type Octave = Int
-- | low shifts pitch one octave lower
low :: Pitch -> Pitch
-- | high shifts pitch one octave higher
high :: Pitch -> Pitch
-- | lower shifts pitch by n octaves lower
lower :: Octave -> Pitch -> Pitch
-- | higher shifts pitch by n octaves higher
higher :: Octave -> Pitch -> Pitch
c :: Pitch
cs :: Pitch
d :: Pitch
ds :: Pitch
e :: Pitch
es :: Pitch
f :: Pitch
fs :: Pitch
g :: Pitch
gs :: Pitch
a :: Pitch
as :: Pitch
b :: Pitch
bs :: Pitch
cb :: Pitch
db :: Pitch
eb :: Pitch
fb :: Pitch
gb :: Pitch
ab :: Pitch
bb :: Pitch
-- | Library csound-expression allows csound code construction in
-- functional way.
--
-- It has two parts CsoundExpr.Base and CsoundExpr.Opcodes.
-- First part Csound.Base contains essential functionality of the
-- package. Second part Csound.Opcodes contains opcode
-- definitions.
--
-- This module provides overview of the library. For examples see
-- sources, folder examples
module CsoundExpr